SlideShare une entreprise Scribd logo
1  sur  112
Going Off the Rails:
The Making of Bullet Train
Ryan Vance
Senior Rendering Programmer, Epic Games
HOW DID WE GET HERE?
Elemental VR
Released at E3 2013
Our first foray into getting UE4 to
render stereoscopic images and VR
hardware support. We ported the
“Elemental” tech demo which debuted
at GDC that year.
Strategy VR
Released at CES 2014
Using the Crystal Cove prototype, we
explored scale and positional
movement in VR by adapting existing
game content.
Couch Knights
Released at GDC 2014
Using the DK2, we explored social
spaces in VR, as well as simple
gameplay.
Showdown
Released at Oculus Connect 2014
Designed to max out the new Nvidia
980 hardware, while running at 90Hz
on the new Crescent Bay hardware.
Content was adapted from the
“Samaritan” and “Infiltrator” demos.
Thief in the Shadows
Released at GDC 2015
Collaboration with Weta Digital’s
R&D team to understand how film
content could be adapted to real time
VR experiences.
What do all of our previous
efforts have in common?
What do all of our previous
efforts have in common?
Adapted Content.
We have something new in the
Oculus Touch, so we should create
something new on the content side.
Bullet Train
Released at Oculus Connect 2015
Our first foray into serious, only-
possible-in-VR gameplay using motion
controllers.
Design Considerations for Bullet Train:
● Raise the visual bar over “Showdown”
● …while running on the Oculus recommended
spec hardware.
● Interesting environment / architecture
● Motion Controls
● Test the engine, rendering improvements
So, what should we do?
Airports (RDU in Raleigh, NC)
Airports (RDU in Raleigh, NC)
European Train Stations
European Train Stations
Early Versions of the Environment
Early Versions of the Environment
Mix and Match!
While the majority of the assets were
custom-built for Bullet Train, we did buy
some assets, and cleaned them up for use
in the level
● Train Exterior
● Weapon Pack
● Character reskinned from “Infiltrator”
Looks good, now what should we
do here?
Option 1: Hogan’s Alley
A standard “shooting gallery” style gameplay
Fun, supports multiplayer easily, but staying in one place is
boring!
Option 2: Action Film!
Move through the world, taking out enemies.
Inspired by action movie “one-shots” like Oldboy and Hard
Boiled
Hard Boiled (1992) Oldboy (2003)
Option 2: Action Film!
The moving “one-shot” is a classic technique for action
sequences
For us, it solves the “movement problem,” because the camera is
moving through the action continuously.
Oldboy (2003)
Anatomy of a Chain
1. Player has two enemies to engage
Anatomy of a Chain
2. Player tosses weapon at enemy
Anatomy of a Chain
3. Player teleports to the downed
enemy, grabs gun out of the air
Anatomy of a Chain
4. Player uses the same gun to shoot
the next enemy
Anatomy of a Chain
Option 2: Action Film!
Advantages:
• Movement through the environment keeps
things interesting
• Constrained in terms of content, animation,
and AI scripting needs
• “Chaining” gameplay
What happened in practice?
When you’re stationary and
interacting with objects in front
of you in the virtual world, the
two trackers have line-of-sight
to your HMD and both
controllers. No problems!
Option 2: Action Film!
When the player is moving
past their targets, it’s easy to
over-rotate!
This causes occlusion of the
hands, and breaks tracking.
Option 2: Action Film!
Option 2: Action Film!
No good! But what did we learn?
• Movement keeps things fun!
• Like in “Showdown,” careful non-player
controlled movement is fun
– Start them moving right away, but fade in!
• We need to control both angle and engagement
distance
Well, at least we learned
something. What now?
Option 3: Magic!
Let’s take the best parts of the previous methods:
• Stationary Shooter: controlled distance, always
facing the action
• Action Film: movement around the environment,
exciting action
Option 3: Magic!
Since you’re already a disembodied set of hands,
why not let you teleport?
Gives us control where the player goes:
– Limits the content needed
– Controls the direction they’re facing
– Less overwhelming to players
Option 3: Magic!
Place teleporters so that the player always face the action.
Option 3: Magic!
It works!
We use trickery to keep the action in the center of the
map, so the player is always facing what’s most
important.
But, there were a few tricks we needed to add to make it
feel right…
Option 3: Magic!
“Teleport Blink”
• A brief fade to white cues the player
• Sound helps immensely!
• We left a trail behind to show you where you’ve
come from
Option 3: Magic!
Teleporter Selection
• Originally, players looked at what they wanted to
teleport to, but that doesn’t work in frantic combat
• Moved teleporter control to the hand, with snapping,
which lets players point at targets
But…how do we get that awesome
action movie feel? Teleporters aren’t
close to the enemies…
Option 3: Magic!
In order to preserve the
hand-to-hand engagement
distances, we added the
“stealth teleport.”
Allows you to “reach out and
punch someone,” as well as
some cool combos.
The Raid: Redemption(2011)
Option 3: Magic!
Teleporters were a nice solution, but they’re not without
their own issues.
• Re-orientation can still confuse players
• People still want to move around their “local space”
• Action doesn’t always keep in the center
• People simply forget they can do it.
So, now we know how we’re going to
get around, but what about gameplay?
We have guns, grenades, and rockets
stubbed in, so how do we make it awesome?
In short, we need to make you feel like a badass.
The Matrix (1999)
Failure is not an option!
Very few have used VR, and even less have
used motion controls.
● No death, only more badass
● Lots of invisible helpers
Anatomy of a Throw
Not many people are great at throwing
things in real life.
However, throwing something and
hitting your mark is really satisfying!
Anatomy of a Throw
● Take the view, and trace
the plausible targets
● Compute path based on
the player’s hand velocity
and angle
● Try a few different arcs to
get it to the destination
● Don’t make it obvious!
Rocket Throwing
The original idea was for players to grab the
rockets, aim them, and then let them fly.
Some people got this, other failed spectacularly.
This worked great when designers played the game!
This worked great when designers played the game!
But when other people played…
Most often, when players failed, they were
trying to throw the rocket overhand.
Solution: Let them throw rockets!
The Mechanics of Rocket Throwing
● Player grabs the rocket
● Average the velocity of the rocket for the
past few frames to get the “intent”
● Hysteresis is your friend (and a great word)
● Add visual flourishes to make it feel less
controlled
This got most of the people most of the way
there…
But some people still had some trouble hitting the
target. What do we do?
(Assist Delay)
“The longer you suck, the less you suck!”
IT LOOKS GOOD, BUT HOW DOES
IT ALL RUN?
Faked Reflections
With our highly reflective
environment, you need
reflections to make objects
feel grounded.
Faked Reflections
Let’s leverage an old trick!
Use underground proxy
geometry (in this case, a quad),
so it skews the same way as the
actual object.
Texture it with a capture of the
object, and then modify the
reflection using the surface
data from the Gbuffer.
Faked Reflections
While we pay a higher base cost for the GBuffer, it lets us
leverage all that information for tricks such as this.
The same technique works for characters, too!
Faked Reflections
In this case, we use two static
meshes attached to the feet as
our proxies.
In the vertex shader, we use
proxy position compared with
the actor position to line up the
proxy geometry to the view, to
allow for cheap “animation”
Faked Reflections
We then blended between two
captures of the leg, one
forward and one to the side, in
the vertex shader, based on the
angle between the leg and the
camera
Faked Reflections
Flattening Materials
Reflections on the enemy
character were now cheap, but
his material was most certainly
not!
Adapting a trick from mobile,
we “flattened” the materials by
baking multiple materials
down to just two.
Flattening Materials
Before: 5 materials, ~270 inst. / mat After: 2 materials, 77 inst. / mat
Flattening Materials
Flattening Materials
Technical Improvements and
Optimizations
WHAT HAPPENS WHEN CONTENT
OPTIMIZATION IS NOT ENOUGH?
Because we had ambitious visual goals, mere
content optimization wasn’t enough.
Time to implement some general optimizations
at the engine level.
• Hidden (and Visible!) Area Meshes
• Instanced Stereo Rendering
Hidden and Visible Area Meshes
There’s a lot of wasted space that you can’t see!
Hidden and Visible Area Meshes
Hidden area meshes were
already covered by Valve’s
Alex Vlachos at GDC
2015.
Here’s how it works…
Hidden and Visible Area Meshes
Draw the hidden area mesh at the near plane before the depth pre-
pass and the base pass
Hidden and Visible Area Meshes
Next, draw the scene as normal. The GPU will reject pixels
already masked out by the mesh, because they depth fail.
Unfortunately, we weren’t
seeing the 10 – 14% gains
that others have seen by
doing that.
But, we pay a lot in post-
processing time!
Hidden and Visible Area Meshes
Use the inverse of the hidden area mesh, and use that for post
processing, instead of a quad.
Hidden and Visible Area Meshes
Much better! With the
two techniques combined,
we were seeing:
Oculus ~0.25 - 0.3 ms
Vive ~0.3 - 0.4 ms
PSVR ~1.0 ms
Hidden and Visible Area Meshes
Instanced Stereo Rendering
In our old way of stereo rendering, we’d duplicate every draw call,
which is easy to implement, but really taxes the CPU
Timothy Wilson proposed a
better technique at SVVR in
2015. Instead of duplicating
everything, let the hardware do
the instancing for us. Each
draw call draws both eyes at
the same time. We save CPU
time!
Instanced Stereo Rendering
By using instancing, we make one draw call draw two times, using
the left and right eye transforms.
Instanced Stereo Rendering
To see how this works step-by-step, let’s draw this simple test scene
using instancing.
Instanced Stereo Rendering
Draw geometry twice using instancing. One instance gets the left eye
uniforms, while the other gets the right eye uniforms.
Instanced Stereo Rendering
Next, since we’re drawing to half the view port, scale things by half
horizontally.
Instanced Stereo Rendering
Then, translate each eye so that they’re in the proper left and right eye
positions.
Instanced Stereo Rendering
Finally, clip the left and right eyes at the center border using user
clipping planes.
Instanced Stereo Rendering
This was a huge win! On Bullet Train, this saved
about 1.5 ms on the CPU, and 0.75 ms on the GPU!
Showdown had about 500 unique draw calls, where
Bullet Train had ~2300!
Instanced Stereo Rendering
Special Thanks:
Nick Whiting, Nick Donaldson, Chad Taylor,
Ryan Brucks, Jerome Platteaux, Tommy
Jacob, Artem Bolgar, and the rest of the
Bullet Train team!
Thanks!

Contenu connexe

Tendances

Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiLuis Cataldi
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis CataldiUnreal Engine
 
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...Codemotion
 
Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Michał Kłoś
 
Technology Pipedream -- Ivan Beram
Technology Pipedream --  Ivan BeramTechnology Pipedream --  Ivan Beram
Technology Pipedream -- Ivan BeramIvan Beram
 
Vision Summit 16 - Tips and Tricks for VR Game Development
Vision Summit 16 - Tips and Tricks for VR Game DevelopmentVision Summit 16 - Tips and Tricks for VR Game Development
Vision Summit 16 - Tips and Tricks for VR Game DevelopmentRafael Ferrari
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSebastien Kuntz
 
Art and design for VR
Art and design for VRArt and design for VR
Art and design for VRChandan Singh
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineMichael Sheyahshe
 
Finding Monsters Adventure VR Experience
Finding Monsters Adventure VR ExperienceFinding Monsters Adventure VR Experience
Finding Monsters Adventure VR ExperienceRafael Ferrari
 
SAE AR/VR - The challenges of creating a VR application with Unity
SAE AR/VR - The challenges of creating a VR application with UnitySAE AR/VR - The challenges of creating a VR application with Unity
SAE AR/VR - The challenges of creating a VR application with UnitySebastien Kuntz
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSebastien Kuntz
 
VR - Creating the ultimate reality
VR - Creating the ultimate realityVR - Creating the ultimate reality
VR - Creating the ultimate realitySebastien Kuntz
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesEpic Games China
 
Developing Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedDeveloping Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedMartin Climatiano
 
[1C7] Developing with Oculus
[1C7] Developing with Oculus[1C7] Developing with Oculus
[1C7] Developing with OculusNAVER D2
 
Improving the VR experience - VRST 2012
Improving the VR experience - VRST 2012Improving the VR experience - VRST 2012
Improving the VR experience - VRST 2012Sebastien Kuntz
 
Dreaming of Superman: Designing Games for Virtual Reality
Dreaming of Superman: Designing Games for Virtual RealityDreaming of Superman: Designing Games for Virtual Reality
Dreaming of Superman: Designing Games for Virtual RealityKeith Makse, PMP
 

Tendances (20)

Making High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis CataldiMaking High Quality Interactive VR with Unreal Engine Luis Cataldi
Making High Quality Interactive VR with Unreal Engine Luis Cataldi
 
Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis Cataldi
 
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...
Virtual Reality gaming: analysis of Yon Paradox development - Fabio Mosca - C...
 
Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4
 
Technology Pipedream -- Ivan Beram
Technology Pipedream --  Ivan BeramTechnology Pipedream --  Ivan Beram
Technology Pipedream -- Ivan Beram
 
Vision Summit 16 - Tips and Tricks for VR Game Development
Vision Summit 16 - Tips and Tricks for VR Game DevelopmentVision Summit 16 - Tips and Tricks for VR Game Development
Vision Summit 16 - Tips and Tricks for VR Game Development
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
 
Alexey Savchenko, Unreal Engine
Alexey Savchenko, Unreal EngineAlexey Savchenko, Unreal Engine
Alexey Savchenko, Unreal Engine
 
Art and design for VR
Art and design for VRArt and design for VR
Art and design for VR
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal Engine
 
Finding Monsters Adventure VR Experience
Finding Monsters Adventure VR ExperienceFinding Monsters Adventure VR Experience
Finding Monsters Adventure VR Experience
 
SAE AR/VR - The challenges of creating a VR application with Unity
SAE AR/VR - The challenges of creating a VR application with UnitySAE AR/VR - The challenges of creating a VR application with Unity
SAE AR/VR - The challenges of creating a VR application with Unity
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
 
VR - Creating the ultimate reality
VR - Creating the ultimate realityVR - Creating the ultimate reality
VR - Creating the ultimate reality
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
 
Developing Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedDeveloping Games For VR - Lessons Learned
Developing Games For VR - Lessons Learned
 
Magictap overview
Magictap overviewMagictap overview
Magictap overview
 
[1C7] Developing with Oculus
[1C7] Developing with Oculus[1C7] Developing with Oculus
[1C7] Developing with Oculus
 
Improving the VR experience - VRST 2012
Improving the VR experience - VRST 2012Improving the VR experience - VRST 2012
Improving the VR experience - VRST 2012
 
Dreaming of Superman: Designing Games for Virtual Reality
Dreaming of Superman: Designing Games for Virtual RealityDreaming of Superman: Designing Games for Virtual Reality
Dreaming of Superman: Designing Games for Virtual Reality
 

En vedette

将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台
将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台
将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台Ning Hu
 
Ue4灯光应用最佳实践
Ue4灯光应用最佳实践Ue4灯光应用最佳实践
Ue4灯光应用最佳实践Ning Hu
 
CGDC 2016 Building paragon in UE4
CGDC 2016 Building paragon in UE4CGDC 2016 Building paragon in UE4
CGDC 2016 Building paragon in UE4Ning Hu
 
A Real-Time Rendered Future
A Real-Time Rendered FutureA Real-Time Rendered Future
A Real-Time Rendered FutureNing Hu
 
Future of unreal
Future of unreal Future of unreal
Future of unreal Ning Hu
 
ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染Ning Hu
 
Kim libreri-siggraph 2015
Kim libreri-siggraph 2015Kim libreri-siggraph 2015
Kim libreri-siggraph 2015Luis Cataldi
 
HUB:BLE-2 06 Day 2 Plenary
HUB:BLE-2 06  Day 2 PlenaryHUB:BLE-2 06  Day 2 Plenary
HUB:BLE-2 06 Day 2 PlenarySpace IDEAS Hub
 
Surviving in the Social Era
 Surviving in the Social Era Surviving in the Social Era
Surviving in the Social EraOscar Gonzales
 
The Bloodhound Supersonic Car: Innovation at 1,000 mph
The Bloodhound Supersonic Car: Innovation at 1,000 mphThe Bloodhound Supersonic Car: Innovation at 1,000 mph
The Bloodhound Supersonic Car: Innovation at 1,000 mphAtkins
 
Water transport and_coastline
Water transport and_coastlineWater transport and_coastline
Water transport and_coastlineewagobis
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationNitin Sharma
 
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...Sok-Tharath CHREUNG
 
European Transport Networks
European Transport NetworksEuropean Transport Networks
European Transport Networkscaglarozpinar
 
Maglev - (bullet train)
Maglev - (bullet train)Maglev - (bullet train)
Maglev - (bullet train)Arabindo Panda
 
Game development using monogame
Game development using monogameGame development using monogame
Game development using monogamePower Wu
 
New Paper Patch Approach by Ed Wosika
New Paper Patch Approach by Ed WosikaNew Paper Patch Approach by Ed Wosika
New Paper Patch Approach by Ed Wosikamtngun
 
Коварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentКоварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentMikalai Alimenkou
 

En vedette (20)

将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台
将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台
将桌面级 VR 通过 Vulkan 和 UE4 移植到移动平台
 
Ue4灯光应用最佳实践
Ue4灯光应用最佳实践Ue4灯光应用最佳实践
Ue4灯光应用最佳实践
 
CGDC 2016 Building paragon in UE4
CGDC 2016 Building paragon in UE4CGDC 2016 Building paragon in UE4
CGDC 2016 Building paragon in UE4
 
A Real-Time Rendered Future
A Real-Time Rendered FutureA Real-Time Rendered Future
A Real-Time Rendered Future
 
Future of unreal
Future of unreal Future of unreal
Future of unreal
 
ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染
 
Kim libreri-siggraph 2015
Kim libreri-siggraph 2015Kim libreri-siggraph 2015
Kim libreri-siggraph 2015
 
HUB:BLE-2 06 Day 2 Plenary
HUB:BLE-2 06  Day 2 PlenaryHUB:BLE-2 06  Day 2 Plenary
HUB:BLE-2 06 Day 2 Plenary
 
Surviving in the Social Era
 Surviving in the Social Era Surviving in the Social Era
Surviving in the Social Era
 
Skytran jerry sanders
Skytran jerry sandersSkytran jerry sanders
Skytran jerry sanders
 
The need for speed bloodhound presentation
The need for speed bloodhound presentationThe need for speed bloodhound presentation
The need for speed bloodhound presentation
 
The Bloodhound Supersonic Car: Innovation at 1,000 mph
The Bloodhound Supersonic Car: Innovation at 1,000 mphThe Bloodhound Supersonic Car: Innovation at 1,000 mph
The Bloodhound Supersonic Car: Innovation at 1,000 mph
 
Water transport and_coastline
Water transport and_coastlineWater transport and_coastline
Water transport and_coastline
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
 
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...
Presentation of Cambodian Railway Development & on Costing and Pricing of Rai...
 
European Transport Networks
European Transport NetworksEuropean Transport Networks
European Transport Networks
 
Maglev - (bullet train)
Maglev - (bullet train)Maglev - (bullet train)
Maglev - (bullet train)
 
Game development using monogame
Game development using monogameGame development using monogame
Game development using monogame
 
New Paper Patch Approach by Ed Wosika
New Paper Patch Approach by Ed WosikaNew Paper Patch Approach by Ed Wosika
New Paper Patch Approach by Ed Wosika
 
Коварный Tracer Bullet Development
Коварный Tracer Bullet DevelopmentКоварный Tracer Bullet Development
Коварный Tracer Bullet Development
 

Similaire à Going Off the Rails: The Making of Bullet Train

Unreal Open Day 2017 The Art of Robo Recall
Unreal Open Day 2017 The Art of Robo RecallUnreal Open Day 2017 The Art of Robo Recall
Unreal Open Day 2017 The Art of Robo RecallEpic Games China
 
Aesthetec at MEIC5, augmenting the world
Aesthetec at MEIC5, augmenting the worldAesthetec at MEIC5, augmenting the world
Aesthetec at MEIC5, augmenting the worldAesthetec Studio
 
Virtual Reality for Training, Learning, Education and Visualisation
Virtual Reality for Training, Learning, Education and VisualisationVirtual Reality for Training, Learning, Education and Visualisation
Virtual Reality for Training, Learning, Education and VisualisationDaden Limited
 
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...AugmentedWorldExpo
 
Make believe - Droidcon UK 2015
Make believe - Droidcon UK 2015Make believe - Droidcon UK 2015
Make believe - Droidcon UK 2015Shanee Nishry
 
2 d gameplaytutorial
2 d gameplaytutorial2 d gameplaytutorial
2 d gameplaytutorialunityshare
 
Web Animations
Web AnimationsWeb Animations
Web Animationsbsuresh2
 
Learning The Rules to Break Them: Designing for the Future of VR
Learning The Rules to Break Them: Designing for the Future of VRLearning The Rules to Break Them: Designing for the Future of VR
Learning The Rules to Break Them: Designing for the Future of VRMichael Harris
 
TalkUX - UX in VR - UNIT9
TalkUX - UX in VR - UNIT9TalkUX - UX in VR - UNIT9
TalkUX - UX in VR - UNIT9Laura Cortes
 
Sleepy Hollow & Narrative In VR
Sleepy Hollow & Narrative In VRSleepy Hollow & Narrative In VR
Sleepy Hollow & Narrative In VRFITC
 
Steve Dann (Amplified Robot): Escape Room VR
Steve Dann (Amplified Robot): Escape Room VRSteve Dann (Amplified Robot): Escape Room VR
Steve Dann (Amplified Robot): Escape Room VRAugmentedWorldExpo
 
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...Nizar Romdan
 
Unity introduction for programmers
Unity introduction for programmersUnity introduction for programmers
Unity introduction for programmersNoam Gat
 
eng.pptx
eng.pptxeng.pptx
eng.pptxZuine
 

Similaire à Going Off the Rails: The Making of Bullet Train (20)

Unreal Open Day 2017 The Art of Robo Recall
Unreal Open Day 2017 The Art of Robo RecallUnreal Open Day 2017 The Art of Robo Recall
Unreal Open Day 2017 The Art of Robo Recall
 
Aesthetec at MEIC5, augmenting the world
Aesthetec at MEIC5, augmenting the worldAesthetec at MEIC5, augmenting the world
Aesthetec at MEIC5, augmenting the world
 
Virtual Reality for Training, Learning, Education and Visualisation
Virtual Reality for Training, Learning, Education and VisualisationVirtual Reality for Training, Learning, Education and Visualisation
Virtual Reality for Training, Learning, Education and Visualisation
 
CES 2018 VRAR
CES 2018 VRARCES 2018 VRAR
CES 2018 VRAR
 
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...
Kalan Ray (Magnopus): Bringing the Land of the Dead to Life: The Making of Co...
 
Make believe - Droidcon UK 2015
Make believe - Droidcon UK 2015Make believe - Droidcon UK 2015
Make believe - Droidcon UK 2015
 
2 d gameplaytutorial
2 d gameplaytutorial2 d gameplaytutorial
2 d gameplaytutorial
 
VR bestpractices
VR bestpracticesVR bestpractices
VR bestpractices
 
Interactive Scene
Interactive SceneInteractive Scene
Interactive Scene
 
Web Animations
Web AnimationsWeb Animations
Web Animations
 
Learning The Rules to Break Them: Designing for the Future of VR
Learning The Rules to Break Them: Designing for the Future of VRLearning The Rules to Break Them: Designing for the Future of VR
Learning The Rules to Break Them: Designing for the Future of VR
 
TalkUX - UX in VR - UNIT9
TalkUX - UX in VR - UNIT9TalkUX - UX in VR - UNIT9
TalkUX - UX in VR - UNIT9
 
VR and google Cardboard
VR and google CardboardVR and google Cardboard
VR and google Cardboard
 
Animation
AnimationAnimation
Animation
 
Sleepy Hollow & Narrative In VR
Sleepy Hollow & Narrative In VRSleepy Hollow & Narrative In VR
Sleepy Hollow & Narrative In VR
 
Steve Dann (Amplified Robot): Escape Room VR
Steve Dann (Amplified Robot): Escape Room VRSteve Dann (Amplified Robot): Escape Room VR
Steve Dann (Amplified Robot): Escape Room VR
 
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...
Virtual arts presentation - Casual Connect Berlin 2017 - Getting your VR game...
 
Unity introduction for programmers
Unity introduction for programmersUnity introduction for programmers
Unity introduction for programmers
 
Unit vi
Unit viUnit vi
Unit vi
 
eng.pptx
eng.pptxeng.pptx
eng.pptx
 

Dernier

MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 

Dernier (20)

MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 

Going Off the Rails: The Making of Bullet Train

  • 1. Going Off the Rails: The Making of Bullet Train Ryan Vance Senior Rendering Programmer, Epic Games
  • 2. HOW DID WE GET HERE?
  • 3. Elemental VR Released at E3 2013 Our first foray into getting UE4 to render stereoscopic images and VR hardware support. We ported the “Elemental” tech demo which debuted at GDC that year.
  • 4. Strategy VR Released at CES 2014 Using the Crystal Cove prototype, we explored scale and positional movement in VR by adapting existing game content.
  • 5. Couch Knights Released at GDC 2014 Using the DK2, we explored social spaces in VR, as well as simple gameplay.
  • 6. Showdown Released at Oculus Connect 2014 Designed to max out the new Nvidia 980 hardware, while running at 90Hz on the new Crescent Bay hardware. Content was adapted from the “Samaritan” and “Infiltrator” demos.
  • 7. Thief in the Shadows Released at GDC 2015 Collaboration with Weta Digital’s R&D team to understand how film content could be adapted to real time VR experiences.
  • 8. What do all of our previous efforts have in common?
  • 9. What do all of our previous efforts have in common? Adapted Content.
  • 10. We have something new in the Oculus Touch, so we should create something new on the content side.
  • 11. Bullet Train Released at Oculus Connect 2015 Our first foray into serious, only- possible-in-VR gameplay using motion controllers.
  • 12.
  • 13. Design Considerations for Bullet Train: ● Raise the visual bar over “Showdown” ● …while running on the Oculus recommended spec hardware. ● Interesting environment / architecture ● Motion Controls ● Test the engine, rendering improvements
  • 14. So, what should we do?
  • 15. Airports (RDU in Raleigh, NC)
  • 16. Airports (RDU in Raleigh, NC)
  • 19. Early Versions of the Environment
  • 20. Early Versions of the Environment
  • 21. Mix and Match! While the majority of the assets were custom-built for Bullet Train, we did buy some assets, and cleaned them up for use in the level ● Train Exterior ● Weapon Pack ● Character reskinned from “Infiltrator”
  • 22. Looks good, now what should we do here?
  • 23. Option 1: Hogan’s Alley A standard “shooting gallery” style gameplay Fun, supports multiplayer easily, but staying in one place is boring!
  • 24. Option 2: Action Film! Move through the world, taking out enemies. Inspired by action movie “one-shots” like Oldboy and Hard Boiled Hard Boiled (1992) Oldboy (2003)
  • 25. Option 2: Action Film! The moving “one-shot” is a classic technique for action sequences For us, it solves the “movement problem,” because the camera is moving through the action continuously. Oldboy (2003)
  • 26. Anatomy of a Chain 1. Player has two enemies to engage
  • 27. Anatomy of a Chain 2. Player tosses weapon at enemy
  • 28. Anatomy of a Chain 3. Player teleports to the downed enemy, grabs gun out of the air
  • 29. Anatomy of a Chain 4. Player uses the same gun to shoot the next enemy
  • 30. Anatomy of a Chain
  • 31. Option 2: Action Film! Advantages: • Movement through the environment keeps things interesting • Constrained in terms of content, animation, and AI scripting needs • “Chaining” gameplay
  • 32. What happened in practice?
  • 33. When you’re stationary and interacting with objects in front of you in the virtual world, the two trackers have line-of-sight to your HMD and both controllers. No problems! Option 2: Action Film!
  • 34. When the player is moving past their targets, it’s easy to over-rotate! This causes occlusion of the hands, and breaks tracking. Option 2: Action Film!
  • 35. Option 2: Action Film! No good! But what did we learn? • Movement keeps things fun! • Like in “Showdown,” careful non-player controlled movement is fun – Start them moving right away, but fade in! • We need to control both angle and engagement distance
  • 36. Well, at least we learned something. What now?
  • 37. Option 3: Magic! Let’s take the best parts of the previous methods: • Stationary Shooter: controlled distance, always facing the action • Action Film: movement around the environment, exciting action
  • 38. Option 3: Magic! Since you’re already a disembodied set of hands, why not let you teleport? Gives us control where the player goes: – Limits the content needed – Controls the direction they’re facing – Less overwhelming to players
  • 39. Option 3: Magic! Place teleporters so that the player always face the action.
  • 40. Option 3: Magic! It works! We use trickery to keep the action in the center of the map, so the player is always facing what’s most important. But, there were a few tricks we needed to add to make it feel right…
  • 41. Option 3: Magic! “Teleport Blink” • A brief fade to white cues the player • Sound helps immensely! • We left a trail behind to show you where you’ve come from
  • 42. Option 3: Magic! Teleporter Selection • Originally, players looked at what they wanted to teleport to, but that doesn’t work in frantic combat • Moved teleporter control to the hand, with snapping, which lets players point at targets
  • 43. But…how do we get that awesome action movie feel? Teleporters aren’t close to the enemies…
  • 44. Option 3: Magic! In order to preserve the hand-to-hand engagement distances, we added the “stealth teleport.” Allows you to “reach out and punch someone,” as well as some cool combos. The Raid: Redemption(2011)
  • 45. Option 3: Magic! Teleporters were a nice solution, but they’re not without their own issues. • Re-orientation can still confuse players • People still want to move around their “local space” • Action doesn’t always keep in the center • People simply forget they can do it.
  • 46. So, now we know how we’re going to get around, but what about gameplay?
  • 47. We have guns, grenades, and rockets stubbed in, so how do we make it awesome?
  • 48. In short, we need to make you feel like a badass. The Matrix (1999)
  • 49. Failure is not an option! Very few have used VR, and even less have used motion controls. ● No death, only more badass ● Lots of invisible helpers
  • 50. Anatomy of a Throw Not many people are great at throwing things in real life. However, throwing something and hitting your mark is really satisfying!
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. Anatomy of a Throw ● Take the view, and trace the plausible targets ● Compute path based on the player’s hand velocity and angle ● Try a few different arcs to get it to the destination ● Don’t make it obvious!
  • 64. Rocket Throwing The original idea was for players to grab the rockets, aim them, and then let them fly. Some people got this, other failed spectacularly.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70. This worked great when designers played the game!
  • 71. This worked great when designers played the game! But when other people played…
  • 72.
  • 73. Most often, when players failed, they were trying to throw the rocket overhand. Solution: Let them throw rockets!
  • 74. The Mechanics of Rocket Throwing ● Player grabs the rocket ● Average the velocity of the rocket for the past few frames to get the “intent” ● Hysteresis is your friend (and a great word) ● Add visual flourishes to make it feel less controlled
  • 75. This got most of the people most of the way there… But some people still had some trouble hitting the target. What do we do?
  • 76.
  • 77.
  • 78.
  • 80. “The longer you suck, the less you suck!”
  • 81. IT LOOKS GOOD, BUT HOW DOES IT ALL RUN?
  • 83. With our highly reflective environment, you need reflections to make objects feel grounded. Faked Reflections
  • 84. Let’s leverage an old trick! Use underground proxy geometry (in this case, a quad), so it skews the same way as the actual object. Texture it with a capture of the object, and then modify the reflection using the surface data from the Gbuffer. Faked Reflections
  • 85. While we pay a higher base cost for the GBuffer, it lets us leverage all that information for tricks such as this.
  • 86. The same technique works for characters, too! Faked Reflections
  • 87. In this case, we use two static meshes attached to the feet as our proxies. In the vertex shader, we use proxy position compared with the actor position to line up the proxy geometry to the view, to allow for cheap “animation” Faked Reflections
  • 88. We then blended between two captures of the leg, one forward and one to the side, in the vertex shader, based on the angle between the leg and the camera Faked Reflections
  • 89. Flattening Materials Reflections on the enemy character were now cheap, but his material was most certainly not! Adapting a trick from mobile, we “flattened” the materials by baking multiple materials down to just two.
  • 91. Before: 5 materials, ~270 inst. / mat After: 2 materials, 77 inst. / mat Flattening Materials
  • 94. WHAT HAPPENS WHEN CONTENT OPTIMIZATION IS NOT ENOUGH?
  • 95. Because we had ambitious visual goals, mere content optimization wasn’t enough. Time to implement some general optimizations at the engine level. • Hidden (and Visible!) Area Meshes • Instanced Stereo Rendering
  • 96. Hidden and Visible Area Meshes There’s a lot of wasted space that you can’t see!
  • 97. Hidden and Visible Area Meshes Hidden area meshes were already covered by Valve’s Alex Vlachos at GDC 2015. Here’s how it works…
  • 98. Hidden and Visible Area Meshes Draw the hidden area mesh at the near plane before the depth pre- pass and the base pass
  • 99. Hidden and Visible Area Meshes Next, draw the scene as normal. The GPU will reject pixels already masked out by the mesh, because they depth fail.
  • 100. Unfortunately, we weren’t seeing the 10 – 14% gains that others have seen by doing that. But, we pay a lot in post- processing time! Hidden and Visible Area Meshes
  • 101. Use the inverse of the hidden area mesh, and use that for post processing, instead of a quad. Hidden and Visible Area Meshes
  • 102. Much better! With the two techniques combined, we were seeing: Oculus ~0.25 - 0.3 ms Vive ~0.3 - 0.4 ms PSVR ~1.0 ms Hidden and Visible Area Meshes
  • 103. Instanced Stereo Rendering In our old way of stereo rendering, we’d duplicate every draw call, which is easy to implement, but really taxes the CPU
  • 104. Timothy Wilson proposed a better technique at SVVR in 2015. Instead of duplicating everything, let the hardware do the instancing for us. Each draw call draws both eyes at the same time. We save CPU time! Instanced Stereo Rendering
  • 105. By using instancing, we make one draw call draw two times, using the left and right eye transforms. Instanced Stereo Rendering
  • 106. To see how this works step-by-step, let’s draw this simple test scene using instancing. Instanced Stereo Rendering
  • 107. Draw geometry twice using instancing. One instance gets the left eye uniforms, while the other gets the right eye uniforms. Instanced Stereo Rendering
  • 108. Next, since we’re drawing to half the view port, scale things by half horizontally. Instanced Stereo Rendering
  • 109. Then, translate each eye so that they’re in the proper left and right eye positions. Instanced Stereo Rendering
  • 110. Finally, clip the left and right eyes at the center border using user clipping planes. Instanced Stereo Rendering
  • 111. This was a huge win! On Bullet Train, this saved about 1.5 ms on the CPU, and 0.75 ms on the GPU! Showdown had about 500 unique draw calls, where Bullet Train had ~2300! Instanced Stereo Rendering
  • 112. Special Thanks: Nick Whiting, Nick Donaldson, Chad Taylor, Ryan Brucks, Jerome Platteaux, Tommy Jacob, Artem Bolgar, and the rest of the Bullet Train team! Thanks!