23. @grip_digital
facebook.com/gripdigital
Light rendering
• The interactive lights are those lights which affect
player, ghosts and other actors in the game
• It's not easy to use 3D lights on 2D scene
• But we needed one specific type of the light…
28. @grip_digital
facebook.com/gripdigital
Light rendering
• But this solution wasn't still good for next part of the game
• We had to create the volumetric lights which can cast nice
shadows
• Why? Occluding lights and shadows are part of the game
mechanic
31. @grip_digital
facebook.com/gripdigital
Light rendering
• To increase “real” feeling from the
scenes
• We had to create normal maps
• Those normal maps were not correct
compared to the real world
• We just needed normal maps which
will create nice effect in 2D world
34. @grip_digital
facebook.com/gripdigital
Light collisions
• Easy to say, not easy to implement
• Deferred rendering in UE4 works really great, but for this is
not the best
• Because when you are drawing an object you still don't
know if you are lit or not (lights are applied as “post FX”)
38. @grip_digital
facebook.com/gripdigital
Light collisions
• Some data are pushed into the GPU from the CPU memory, like
locations of characters (mapped to 2D canvas of the screen) and
others (with unique IDs)
• Shader writes lights IDs, detects when is actor inside the light
and write actor ID into the RT
• And CPU will read back those informations (separated thread, in
specific intervals or at some events)
42. @grip_digital
facebook.com/gripdigital
Sprites
• It was easy but we had to split logic into editor and runtime
• We created meshes (shared) in editor for texture, with specific
material which had an support for various effects
51. @grip_digital
facebook.com/gripdigital
Cloth simulation
• Painting and creating blocking volumes was easy
• But most time consuming was to fine tune every
single vertex to behave exactly as we wanted
• Also we have still “nightmares” when we started using
APEX Cloth with skeletal animations
54. @grip_digital
facebook.com/gripdigital
Conclusion
• Our vision was to iterate really quickly
• Also we wanted to create “breath-taking” visual
• Combined with interesting mechanics and puzzles
• And Unreal Engine 4 did a great job and it was perfect choice