1 / UNITY - Psyop

gamgutturalΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

109 εμφανίσεις

REALTIME
1 / UNITY
Thursday, August 1, 13
WHY REALTIME?
Thursday, August 1, 13
INTERACTIVE
Thursday, August 1, 13
RESPONSE TIME
BOUNDARIES
USER AGENCY
Thursday, August 1, 13
PROCEDURAL GENERATION
Thursday, August 1, 13
FREEDOM
Thursday, August 1, 13
FEEDBACK
Thursday, August 1, 13
INTERACTIVITY  GRAPHICS
Thursday, August 1, 13
2001 - PRE-RENDERED
Thursday, August 1, 13
2001 - REALTIME
Thursday, August 1, 13
2013 - REALTIME
Thursday, August 1, 13
CONSTRAINTS
Thursday, August 1, 13
60 FRAMES PER SECOND
OR 16.6 MS PER RENDER
Thursday, August 1, 13
WHAT’S WORSE THAN A
LOW FRAME-RATE?
Thursday, August 1, 13
AN INCONSISTENT
FRAME-RATE.
Thursday, August 1, 13
“BETTER NEVER, THAN LATE”
Thursday, August 1, 13
USABILITY
INTERACTIVITY
FEEDBACK
UI / UX
AUDIO
GRAPHICS
Thursday, August 1, 13
PERFORMANCE
&
DEVELOPMENT TIME
Thursday, August 1, 13
UNITY
Thursday, August 1, 13
AWESOME

High performance 3D rendering

Cross-platform

Rapid application development & preexisting tools

Great profiling tools

C / .net

Abstracts away hardware BS
Thursday, August 1, 13
AWFUL

UI Library & 2D

Some half implemented features & gotchas (terrain, particles,
LOD)

Garbage Collector (true of all managed languages)
Thursday, August 1, 13
ALTERNATIVES

Flash / Air for 2D

Unreal - not as general purpose

Open source native engines - have fun...

Write your own engine - not for rapid stuff

HTML5 / WebGL? - too many gotchas, slow and stupid.

Others?
Thursday, August 1, 13
PROTOTYPING SETUP
Thursday, August 1, 13
TECH

Unity

Git / SVN

testflightapp.com

Photoshop / Maya

Unity Asset Store
Thursday, August 1, 13
ASSET PIPELINE

Textures (flattened psds with alpha)

Textures get compressed to DXT / PVRTC for GPUs
anyway

Most 3D formats, but use FBX

FK Animation

Audio as aiff / wav (compressed in engine)

Custom data using BinaryReader (MSDN)
Thursday, August 1, 13
EXTERNAL HARDWARE

Oculus Rift

Leap Motion

Kinect

Google Glass (through native launcher)
Thursday, August 1, 13
PLAY FANTA: SAVING
THE SOURCE
Thursday, August 1, 13
REQUIREMENTS

2D or 3D?

Operation: Ajax

Run on low-end devices

Lots of animation, high res artwork, 49 pages

Other cool features? Video? Games?
Thursday, August 1, 13
THE ENGINE

Unity? Flash / Air may have been easier...

Better low-level performance in Unity

Better GPU support in Unity

Full 3D matrix support, for 3D animation

Definitely an edge case for Unity - which is why it’s interesting
Thursday, August 1, 13
THE TEAM

1 Engineer (me)

2 Animators

1 Intern (layer slicing / combining)

Producer / Creative Directors

Art was already finished
Thursday, August 1, 13
TIMELINE

Prototype - 1 week

Tools - 1 month

Animation - 4 months

QA, deployment, builds - 1 month
Thursday, August 1, 13
ASSET PREP

Splitting and combining layers

Performance limits (fill rate)
Thursday, August 1, 13
OVERDRAW
Exists on all GPU accelerated platforms
Biggest limitation of mobile hardware (right now)
Thursday, August 1, 13
BEATING OVERDRAW
Solid geometry, not alpha
not always possible
Thursday, August 1, 13
BEATING OVERDRAW
Simple Shaders
Make the fill cheap
Thursday, August 1, 13
BEATING OVERDRAW

You might consider rendering to a low-res buffer, and blitting
to screen, but RTT is expensive on mobile

You could render the WHOLE app at a lower resolution

Cut elements as close as possible

Do less - precombine, render sprite sequences, etc
Thursday, August 1, 13
CUSTOM ANIMATION SYSTEM

We could never keyframe that much animation in time

Needed a code solution

Lots of stateful logic - needed to communicate with animation
system

Fast Forward

Rewind
Thursday, August 1, 13
UI WORK

Tray

Custom Gesture Support

Mimic iOS interface guidelines, springback
Thursday, August 1, 13
SHADERS

Open GL ES 1.1 - Fixed Function (1.1 now obsolete)

Blending (Normal, Add, Multiply, Multiply 2X  overlay, None)

32 bit, 8 bit, 24 bit

Depth Mask Shader - Colormask 0, ZWrite On
Thursday, August 1, 13
GOOGLE ANALYTICS

Spoofed the browser, faster and more flexible than integrating
native plugins on two platforms

Per page data

Event tracking

Directly comparable with website data
Thursday, August 1, 13
DEPLOYMENT

170 mb

Over 50mb is wifi only

Over 50mb requires custom asset loading code for google
play store (difficult to test, may have caused Android
problems)
Thursday, August 1, 13