Game Jam Post Mortem


For this week's Game Jam we had the idea of building a game that puts the player in control of a grim reaper. The idea is to have him run around the city block and carry out grim reaper duties which includes killing people with various items dropped from above or by blowing vehicles up.

The game includes a pause and rewind mechanic to fit the theme of the game jam which is Time Travel.

The target platform we chose is WebGL. We find that by enabling the player to launch the game without downloading it will lead to more plays and feedbacks. We also published Windows, Mac and Linux versions to download.

The game is very physics and graphics heavy, especially for WebGL. Making the NPC deaths realistic involves complex ragdoll physics simulation that requires smooth transition between the Unity Mechanim animation system and the ragdoll state (during pausing and rewinding). Post process camera effects were also needed to visually aid the player distiguish between different "time modes" such as normal, paused and rewind.

As we are only a couple of dudes, both with full time jobs, making the city block, characters and vehicles from scratch (models, textures, etc) in a week was going to be a challenge so we used packages off the Unity Asset Store.

What we learnt:

  • Physics simulation on the browser is very CPU taxing. Getting the game to run smoothly took more time than we anticipated. In the end we had to cut down the number NPCs from a couple of hundred to around 50 and the vehicles from 25 to 16. We also limited the framerate to 30 FPS.
  • NPC deaths are physically simulated via physics rag dolls. This amplified the physics problem we were already facing as each NPC character would have 11 rigidbodies. We have about 50 NPC wandering around the city block.
  • Standard Unity Post Processing was too heavy for the browser to render so we opted for a lightweight post processing package that supports vignette, bloom and tint shifting.
  • For the vehicles navigation, we created a custom built waypoint and traffic light system. Each vehicle will randomly drive down the roads around the blocks while avoiding each other and complying to the traffic light signals.
  • Unity's wheel collider is a BEAST. It was tough to get it to work with the custom built waypoint system for the vehicles.
  • For the Pause mechanic to work, we had to implement our own TimeManager which had it's own delta time, independent of the built in Unity's Time Class. This allows the main character to move about even when everything around him is paused.
  • For the Rewind mechanic to work, we had to record all the states, positions, rotations and rigid body properties for everything that could be rewindable (cars, players, environment items, traffic lights). We had to limit the rewind to 30 seconds to conserve browser memory.
  • We had to combine the meshes of the city blocks to reduce draw calls and increase performance. This reduced our game objects from a few thousand to only around 30.

List of packages we used:

  • City Models: Polygon City
  • Mesh Combiner: Mesh Combine Studio
  • Character Controller: Invector 3rd Person Controller
  • Post Processing: Sleek Render

Do rate and let us know how the game played. We love to hear your feedback.

Files

Archive.zip Play in browser
May 03, 2018
impatient-death-linux-universal.zip 58 MB
Version 2 May 04, 2018
impatient-death-osx.zip 41 MB
Version 2 May 04, 2018
impatient-death-windows-x64.zip 38 MB
Version 2 May 04, 2018
impatient-death-linux-universal.zip 58 MB
Version 1 May 04, 2018
impatient-death-osx.zip 41 MB
Version 1 May 04, 2018
impatient-death-windows-x64.zip 38 MB
Version 1 May 04, 2018

Get Death Waits For No Man

Leave a comment

Log in with itch.io to leave a comment.