“Explore an abandoned lab on an isolated planet. Slash & dash through its hordes of hostile inhabitants to claim the prized artifact that lies deep within.”

My Contributions

  • Node System

  • Event System

Node System

For Divers Descent I was responsible for creating a Node System used for the internal representation of the in game world for logic to run. This internal representation made it easier to reason about the in game world as you could not see it as a 3D array of Nodes with helper functions to convert world positions to node locations and vice versa. This also needed to accurately represent moving nodes which was a little bit harder than expected. The node array got created on Start as well as OnValidate for us to be able to create validation tools for the level designers.

This along with a shortcut tool to make sure all transforms are centered on node origin points made it really easy to make sure all objects in the world conformed to the rules set by the node grid.

Event System

The emphasis in this project was around making optimized systems for mobile development which is why we chose an event based approach as it minimizes unnecessary work and check each frame while still being comfortable to program in.

For us we only needed three events to run our core gameplay loop, this was OnPlayerMove, OnEnemyMove and OnPostMove, all called one after another with the queue being the player requesting a move.

Other gameplay mechanisms were able to tell the Event System to wait for longer as well, calculating travel time or maybe even a cutscene if needed. So first the event gets called then it takes the resulting “wait time“ which is the maximum of the recently received times to finish whatever animation or move or whatever you may have until then calling the next doing the exact same thing. The only time this gets cut of is OnPostMove where we finally unlock the players input and let them do another move continuing the cycle.

I think this system worked really well for Divers Descent and I think it made a lot of sense for the project.


Umbilical Coord

Programmers

David Ek

Jacob Torudd

Liam Sjöholm

Daniel Berg

William Sigurdsson

Artists

Agnes Hallin

William Mårtensson

Hedvig Karlsson

Arian Franzen

Animators

Lee Johansson

Agnes Bok

Level Designers

Martin Trosell

Alexandra Winberg

Music

Dragonfly Audio