Dead End Job

Dead End Job is a puzzle comedy game where you play as a reaper with the goal of indirectly using the environment claim unsuspecting souls. Players can track their progress using a picture book that captures every unique method of dealing with the target. We worked on this prototype over a few weeks as a team of 4 artists and 3 programmers.

Player Character & Possessing Objects

There is little that the player character to do directly in the game. They phase through most static and dynamic objects in the level with exception of the fences that restrict the play area. Instead, the player’s primary means of influence is their ability to possess any simulated object in the scene, many of which have unique properties or interactions.

Since we needed many different objects that could be possessed I created a pawn actor that used a provided data asset to derive most of its properties. For many simple possessable assets this essentially meant setting a static mesh, object name, and type of death caused. The base actor handed some of the more common interactions between objects and the target character, and could be set to respond to those actions through the data asset instead of creating a child possessable class.

Target Character

I programmed the target character in the level using a behaviour tree, and set his default activity to patrolling around the garden in a loop. One of the earlier systems I developed was the targets ability to notice items in the level that had been moved. Since the only objects that could move were all possessables, this meant that they were all pawns and Unreal’s perception system could be used to easily track them. The objects themselves would keep track of their state using a movement history component and if the character noticed that an item was out of place, he would pick it up and return it. Initially we thought this might be an interesting way to get the player into inaccessible areas by returning a moved object, but ultimately decided against keeping it.

The parts of the character behaviour that did remain were its various AI states. By default, the character moves around in a defined patrol loop, but various triggers can snap him into a different state. Piggybacking off the character’s existing ability to perceive possessables, I created a cookie item that could be used to lure the character. This would put him in a state of following the cookie until he lost sight of it, or it was consumed. The compliment to this is the character’s fleeing state which can be triggered when he notices hazards in the environment. To better communicate the behaviour of the character to the player, he will print his current thoughts above his head.

Systems & Hazards

To work in tandem with the innate properties of the existing possessables, I assembled a number of systems that provided additional options for how the player can reach their goal. A beehive in the garden can be disturbed by physically hitting it with an any simulated object. If the target is close to the hive it will trigger a death, otherwise it will prompt the character to enter a fleeing state which can be used to direct them into to other traps.

On a road outside of the explorable map a paper boy continuously loops by the house, throwing a newspaper roll into the garden. The boy always tries to throw the the roll just above the bird bath, so by possessing the bath its possible to direct the place at which the roll is thrown to potentially have it hit the target character or trigger the bee hive. Water sources such as the fountain can be put in an electrified state when in contact with a source of electricity such as the eel.

Grandma Trades

The neighbouring grandma character introduces a mechanic that provides players with a way to trade one object for another. These trades can be inferred by reading the lines that she speaks, which uses the same text system as the target character. To initiate a trade, the player can possess an item and leave it unpossessed by the fence next to the grandma. After a delay the item will be swapped out with the trade. This way, the player can trade items like newspapers for cookies, or rat poison for suspicious cookies which may have adverse effects on one’s health.

Death Types

Each unique cause of death has a type that is used to determine how the target character reacts and animates in response to the the instigator. For many simple objects, this is just a death caused by blunt physical impact but it allowed us to specify many other causes ranging from being swarmed by bees to being hit by the newspaper specifically when it was thrown by the paper boy.

Certain causes of death like electrocution, acid and immolation, have a slightly more involved system to allow them to toggle states due to interactions with other objects and hazards.


Of all the prototypes I worked on with this group we spent the least amount of time on this one. We had a good time during the ideation phase brainstorming ideas for the project but as we got deeper into development we had a difficult time finding the fun. When you do discover a new death the game can be really amusing, but a lot of the gameplay around that feels like it’s missing a level of depth that we probably needed more time to explore.