umbra ignite 2015: thor gunnarsson & reynir hardarson – nailing aaa quality in vr: a creative...
TRANSCRIPT
Thor Gunnarsson
S. Reynir Hardarson
Our mission:
Create and publish AAA VR games and
experiences that thrill players, define the
medium and establish our company as
the world´s leading developer of virtual
reality entertainment.
Founders ex CCP Games (EVE Online).
CONFIDENTIAL
CONFIDENTIAL
We have identified 4 design principles that we believe will define the
quintessential VR product.
Any of our product candidates needs to score high on these principles
to go forward in production.
:
Suspension of disbelief requires AAA quality in the physicality of
the world with respect to the quality of graphics, animation and
sound design.
Subject matter should play upon the strength of VR such as sense
of scale and sense of presence.
:
VR performance requirements lead to compromises in visual
fidelity. Inexperience leads to content with poor presence.
:
Team must have extensive experience in AAA pipelines coupled
with strong artistic and technical direction to make the right
compromises.
A pure VR focus is needed to create killer content for virtual reality.
:
Freedom to explore and continuity of worlds makes them
believable.
:
First person navigation is prone to motion sickness. Third person
navigation breaks immersion.
This has led many VR developers to shy away from true
exploration.
:
We have converged on a new navigation paradigm where we
combine limited 1st person mobility with a 3rd person bird’s eye
view, offering larger scale mobility.
We believe this to be a true VR solution to an important problem
that allows us to have a true sense of exploration in our worlds.
:
To make worlds believable, you need to have a sense of agency
within the world such that you can change it and it can react to
you.
:
Purely static or scripted experiences break immersion and have
very poor replayability value.
:
From CCP, we have extensive experience in designing sandbox
games and systems.
We design worlds where you can interact with and modify your
environment. Object and creatures are real and behave as
expected. All actions have consequences.
:
Sharing an experience with another human is always emotionally
stronger than interacting with an NPC.
:
Avatar-based social experiences inevitably fall into the “Uncanny
Valley”, where our expectations of interaction fail on subtle
missing physical cues.
:
From EVE Online we have authoritative experience on how true
social gameplay emerges from other factors than physical
presence.
Furthermore, the sharing of gestures, head position and voice
goes a long way in bridging the uncanny valley, as the brain
quickly accepts the unmistakable ‘humanity’ of these signals.
@ 100% consistent 90 fps.
2160x1200 resolution absolute minimum
(140%-160% supersampling preferred).
including double overhead all over the place because of
stereo (~40% fps drop).
… running on a GTX 970 min spec.
Crazy expensive or does not work:
Point lights with dynamic shadows
Lit translucency
Motion blur
Bokeh DOF
Lens flares (don’t work right anyway)
Particle lights
Dynamic tessellation
Each will use around 10%-20% of your total budget on a GTX 970.
So, pick carefully:
Skylight
SSAO
SSR
Atmospheric fog
Temporal AA
Bloom
Refraction
Directional light with dynamic cascaded shadow maps (1 cascade)
Spotlight with dynamic shadows
Light shafts
Eye adaptation
Gaussian DOF
Subsurface scattering
Instanced foliage
Dual sided foliage shading
Physics
Destructible meshes
GPU particle systems - with particle collision
Vector fields
Morph targets
Skeletal animations
Physical materials
Decals
Parallax mapping
Height fog
Audio!
Lightmass baked lighting
Lightmass indirect lighting probes
Old school cool shader trickery:
Cubemap reflections (fire off render targets at begin play).
Fresnel, everywhere!
BDRF lookup tables
Animated UVs normal maps
Old school dot products to fake lit transparency
Make the shaders dance!
Turn everything you are not using off, else it is costing you.
Pick the appropriate quality setting for rendering features.
Keep the transform count low.
Merge static meshes in the scene wherever possible.
Distance culling to get the transforms fast out of the rendering loop.
LODs on everything, everywhere. 4-5 stages. Allows for high detail up close.
Fill rate is usually the bottleneck for particle systems, not particle count. Use
more, but smaller GPU particles.
Skeletal meshes can get very expensive, very fast. Don´t update animations
and skeletons when not needed.
command-shift-, all the time!
Dont’ create your own engine
Largest engine team in history working now on Unity.
Unreal has hundreds and hundreds of man years behind it.
Kill all sacred cows: Not built here, every pixel/polygon made here.
Use off the shelf tech, tools and middleware
(Unity, UE4, Simplygon, PhysX, Lightmass, Umbra, WWise etc)
Don’t draw pictures of horses
(Turbosquid, GameTextures)
If it is not in the box, you probably don't need it. Developing complex tech is
risky and takes away precious time from building the game itself.
Innovate where you get the most out of it without risking the whole
project/company on it.
All tech we have created was all first prototyped in Blueprint and was then
rewritten in C++ for optimisation purposes.
Extremely rapid prototyping. Blueprints allow EVERYONE on the team to
make gameplay.
No technology silver bullets. At the end of the day, some proprietary
technology is not going to make or break your game. Your game will.
Era of the mega teams is over.
Small teams are the future. Keep the headcount down.
Small teams have more velocity. Less overhead. More
autonomy, greater participation and greater satisfaction.
Skyscraper analogy. Less $ risk. Greater upside potential.
Everyone has to wear many hats and carry responsibilities.
No room for super egos. Don't pamper any prima donnas -
fire them now.
There is no room for whiners on the longship.