Pål Schakonat


Director System


Directing for a dramatic curve

This project is an short experimental piece inspired by the director system from the zombie shooter Left 4 Dead. The director in L4D observes the game and controls the spawning of zombies to match dramas you usually see in movies.


I wanted to research how I could implement this system myself. I created a room generator that spawns different loot: common, uncommon, epic and legendary. My director observes what type of loot that has been spawning and changes the outcome according to a basic three act structure, with some special events. You can see an overview in the flow chart below.

Three act flow chart V3.png

Behaviour tree structure

The biggest insight from the pre-production research was the need of a behaviour tree structure for the director. The director needed to behave like an AI. This guided me to structure my code in a comprehensible way. I made a flowchart that represented the framework of the director system before implementation. I discovered some flaws beforehand because of this workflow. 

Director Flow Chart V2.3png

Near-miss Implementation

 The  concept of near miss

This is a short description on how I implemented the concept of a near miss. I took this quote to explain the near miss from the paper "The frustrating effects of just missing the jackpot: slot machine near-misses trigger large skin conductance responses, but no post-reinforcement pauses."

"Near-misses in slot machines resemble jackpot wins but fall just short. Previous research has demonstrated that near-misses are behaviourally reinforcing despite the absence of monetary reward."

Near-misses lack the feeling of control

We know that the experience of almost getting a reward is highly engaging. The biggest problem I see with near misses is the lack of control. What if we could harness the strong engagement of near misses while still letting the player feel in control: I wanted to gamify near misses.

My inspiration was the treasure goblins from Diablo 3. They appear randomly in the game and try to run away from you and if you kill the treasure goblin you get a great reward. You have a chance of killing them, but they try to get away. The player is usually able to kill the goblin in Diablo 3. If you make it harder to kill the treasure goblin, it would be equated to the concept of a near miss. Unlike a near-miss on a slot machine the player in my implementation could dictate the outcome with their skills instead, which creates a sense of control.

"Unlike a near-miss on a slot machine the player in my implementation could dictate the outcome with  their skills instead, which creates a sense of control" 

How to create a feeling of control

My implementation: I first added a warning (see the yellow that appear around the door in GIF) before you entered the room, I didn't want the player to feel unprepared and that the game had fooled them. When you enter the room, the loot will fly away into the walls to random positions around the room. The player needs to hover over the quickly disappearing loot to pick them up.

This was a short project, so it was hard for me to measure engagement with this system. My personal experience though, was a strong engagement. I felt a sense of rush when I saw the loot disappear in front of my eyes as I tried to catch it.

Debug the Director

"I think the success of a good director depends on how well designers are able to debug it."

Debugging features

I think the success of a good director depends on how well designers are able to debug it. I only had a simple debug solution for this piece because of scope. I made it as easy as possible to run through the game quickly. I also made some custom print functions to print out data on rolls. For example, I found that near miss events could override the legendary room at the cave-to-temple transition. If I would re do this piece I would implement the debug feature of running through the game quick earlier in production.    

Print function

Print in game