This week was another heavy tech week with a lot more success. We finished working out the remaining bugs in the possession system, completed the parasite controls including walking up and jumping from all surfaces, and have a visualization of the jump arc in the works.

Programming

Possession

This week was spent squashing some bugs that were left over from our earlier sprint to get to a playtestable state. The following describes an overview of bugs we tackled in getting possession working:

Camera wouldn’t update/player wouldn’t move: our current implementation of the human is akin to that of a GTA5 car that the parasite players hop into – once you get in the car, you kick out anyone inside. However, this requires updating a host of parameters, such as disabling/reenabling certain scripts, making sure the camera is properly disabled so we don’t have multiple cameras per client, and reenabling turning on the proper prefab.

One time possession bug: a bug that took me an embarrassingly long amount of time to fix. Basically, possession would work a single time and then fail – instead of slotting someone new into the mech human, it would delete the human and dump the parasite on the floor. After some misleading errors lead to thinking that it was a nasty race condition between receiving the possession message and deleting the prefab, I did the usual and placed Debug.Log everywhere, and lo and behold: [Image 2 here] We keep a dictionary with the prefab status of our players, and we never actually set the human back into a parasite when performing possession. The actual fix was a single line (the last one).

Up next is getting tasks working for the individual and global objectives. The current aim is to have one global objective and one individual objective per player lead to a win state – this should allow us to build a framework for adding future tasks and objectives, whilst also allowing us to test our win states.

Parasite Controls

We wanted the parasite to be able to walk on walls and ceilings in order to maximize their ability to hide and surprise the human player. We managed to get a system working fairly well that augments the motion of the parasite (when not physically ragdolled) to be in the tangent space of the mesh it is sitting on, letting us slide along all surfaces at all angles.

Art/Characters

Our next big step is finishing up the character models and players

We have a viewmodel (the first person perspective of the baseball bat arms and animations) and a ragdoll model for the parasite in the works, but they aren’t ready to show yet.

Level Design

We’ve added more props to the levels which by next update should let us replace our basic demo level. We have lights, terminals, and more physics props such as phones and desks.

Game Mechanics

We’ve created a generic interaction and “Win Condition” system which lets us arbitrarily place interactable tasks for the human player to complete, as well as an option to make a task “Global” or “Individual” depending on who needs to complete the task in order to win.

Leave a Reply