Divergence

NOTE: This title is still in development!

The Game

Divergence is a third-person action-adventure game in which Petra, a young archaeologist, finds herself on a strange Greek island with advanced technology. Armed with her plasma rifle and the ability to rewind time, she must take down powerful robotic enemies and uncover the mysteries that await her.

The Team

Timesink is a team of 30 people. The team is comprised of various sub-teams, which are organized by artistic, technical, and design disciplines.

Development

Divergence was developed using Unreal Engine 4, with the sound engine implemented with Wwise. The primary gameplay mechanic is to rewind time in order to rebuild destroyed platforms and to spawn a clone that can act as a decoy to draw enemy fire away from the player. In addition to the player character, there are two basic enemy types and a boss, all of which have unique attack patterns and animations.

The player has the ability to rewind time and spawn decoys.

My Contribution

Animation Programming

Finite State Machine for the final boss, complete with transitions. The boss has four primary attacks, each with their own specific design parameters and entry/exit conditions.

After my experience with Ceramic Soul, I felt ambitious enough to be the team’s animation programmer. In addition to being the liaison between the animators and the engine, my role involved constructing animation blueprints for each character. This was a highly iterative process, as the design team would constantly come up with new ideas for what the enemies could do, and the animators had to constantly update their rigs and animations. This gave me a lot of experience in writing blueprints, event graphs, and finite state machines.

Parallax Occlusion Mapping (POM) Decal

To simulate terrain damage, I worked with artists to make a POM decal. Using a texture and a normal map provided by our art team, I wrote a material function and material blueprint that would create the illusion of a 3-dimensional impact on any spot shot at by the player.

Dissolve Material

In order to destroy game objects in a more visually appealing way, I created a dissolve material and material function. This effect was used to cause the player’s divergence clone to dissolve (as can be seen to the right), and to de-spawn enemy projectiles.