You are currently viewing The Lessons from my First GameJam Project “Disruptive Dave”

The Lessons from my First GameJam Project “Disruptive Dave”

I made a game where you earn points by screaming. The goal is to disrupt the park and run away from security guards, as well as your neighbour who is also there and hates you.

This was my submission for the GameDev.TV 2025 Gamejam. I spent a month preparing for it by taking their courses in Pixel Art and the Godot engine and then spent 10 days creating the game.

The game is full of mechanics created specially because I couldn’t solve an issue. Guards would get stuck in a corner, and I needed a way to keep the gameplay interesting if this were to happen, so I created a character who always chases you. I gave this character a backstory, and then he became the main antagonist.

The Finished Game

In game screen shot of player screaming and alerting guards and NPCs
Screaming to disrupt the peace

In Disruptive Dave you must scream to earn points but this alerts nearby NPCs who will become concerned and get the guards.

The game features an original parody soundtrack of songs such as “Premier Inn for Christmas” (inspired by Chris Rea) and “I’m Known” (inspired by Radiohead). There are 5 songs in total, and an in game music player so you can listen to them while running around. A music tab was also created so each song could be listened to individually.

I aimed for Disruptive Dave to be absurd but with a surprising amount of polish. This game does not need an original soundtrack that explains the story and I banked on that to create an experience that sticks with players.

How I Navigated the Ideas Phase and Got Started

I’m an overthinker, and I know I have a tendency to go overboard so I forced myself to start simple: just a character who can move and scream. I quickly created all the animations and then set up the player in engine.

The first issue was getting the scream perfect. I wanted the player to be stationary while screaming to create some challenge however this started messing with the animations. If I screamed and then moved left, the player would remain in the scream animation which took me ages to solve. Turns out it was the way I was calling the function upon the scream button being held down.  

An issue I couldn’t figure out was a dynamic scream radius that expands the longer you scream. This is because it was controlled through a Collisionshapes radius data which cannot be changed in real time. I could set it but couldn’t make it into a variable that can then be multiplied (such as “every 2 seconds = radius x 2”).

After a day of work I had the player, the scream mechanic, and the guard reacting to the scream mechanic, all set up and I was ready to start building out a level.

How I created Interesting Enemies (while having no idea how to implement basic functions)

The story of the game follow Disruptive Dave, a vegan Tik Toker who goes lives and screams at non vegans. This keeps his neighbour up at night, so he called Daves mum who kicked him out of the house. Dave stayed the night at a nearby Premier Inn hotel however was chased away from there due to screaming in the stairwell at 2am (old habits die hard). He’s chased into a local park the next day where the ultimate showdown begins.

Screaming earns you points and screaming in the radius of an enemy earns you a point multiplier which keeps gameplay interesting. NPCs earn you a plus 3, guards earn you a plus 5, and the neighbour earns you a plus 10.

a picture of all the characters and locations in the game
All of the characters and locations in the game

Making Security Guards Chase You

I wanted the security guards to be mockable characters so made them tubby and look a little silly. This presented an interesting challenge when it came to animating movement since I had to simulate fat wobbling through shadows. This took some time to get right but I then had fat enemies who moved like fat people.

I avoiding creating a finite state machine since I didn’t understand it and knew I didn’t have time to learn / implement during the game jam. Instead, I faked it by calling different functions. While this method was not scalable, it worked for the game jam.

The security guards will stand in a position until alerted, either by an NPC or the player, and will then chase the player. This is a simple “Move Toward Position” with each guard constantly updating the players position. They will chase for a randomised time between 3-7 seconds, before stopping and standing in place.

This system visually works however does lead to issues of guards getting stuck or trap each other. I couldn’t figure out pathfinding in time, so had to rely on this simple system for chasing. I used bools and some conditions to ensure everything starts and stops at the correct time, however, under the surface, it is a mess.

Making the NPCs Alert the Guards

Comedy is a big aspect of Disruptive Dave, so I wanted there to be “innocent” people who are effected by his actions. NPCs were the solution to this, and they were surprisingly easy to get working.

Like the Security Guard characters, the behind the scenes is a mess of simple mechanics that come together to create something cohesive. NPCs each have an assigned security guard who they will run to when alerted which follows the simple “Move Toward Position” logic. However, an NPC will then trigger the guards chase player mechanic which was a little harder to do.

I had planned to have NPCs stroll around the park and then organically be disrupted by the player before returning to their strolling. However, since I couldn’t get pathfinding to work, this was changed to the NPCs stands in a spot, alerts a guard, and then remains in the new spot. This sometimes leads to them blocking the guard but also creates moments where an NPC later moving across the map to alert their guard which creates challenges when being chased. For example, if you’re on the right side of the map moving to the left, an NPC may have alerted a guard on the left side who is now right in front of you.

Making the Neighbour a Threat

The neighbour was my solution to no other characters being near the player. This character will begin chasing you whenever you scream regardless of distance. He’s intended to always keep you on your feet and will even appear to flank you depending on map location.

The neighbour is Disruptive Dave’s nemesis in the lore, and I aimed to reflect that in his design. He is an elderly man with balding hair and a neutral expression. However, his gameplay provides him with a lot of character as he’ll often rush into the action. I believe this is because I had attempted to make him a slower enemy, but that number became an initial speed boost. This is likely due to me creating movement through velocity, but honestly, I have no idea why this is the case.

Behind the scenes he’s essentially the same as a guard. I had tried to implement some of the NPCs alerting mechanics by having the neighbour “activate” any guard it passes on his pursuit, but I couldn’t get this working.

Regardless of my programming shortcomings, the neighbour acts as a consistent threat and even has a song about him detailing his side of the story.

How I Designed the Map

Picture of the map including guard and npc layout
The final map of the game

I had intended to master creating tile sheets and then creating a hotel map for the game however, as I came to painfully discover, I’m not very good at background art yet so I had to rethink. I instead used the Ninja Adventure Asset Pack to create the basic park scene with 2 days left of the gamejam.

I wanted to give the map character but also allow for organic gameplay moments. I had envisioned a picnic area where multiple NPCs would hang out, as well as a guard station and maybe even a few other landmarks. I instead went with a guard post location, a lake, and a rough picnic area with more NPCs clumped together.

Character layout was then the next challenge because each “area” needed a mix of guards and NPCs. I mixed up the NPCs assigned guards with some going to nearby guards, and some going to guards in the next “area”. This created situations where the player would be running, and guards would be coming at them from all directions. The effect is compounded with the neighbour rushing in to join the chase.

Upon playtesting I was pleased to find that the NPCs assignments worked well. Almost every NPC creates a reasonable challenge that keeps the player moving. The inclusion of the neighbour, who begins in the left middle of the map also assists with this since the first scream is often in the centre. This leads to the player being confronted from both sides.

How I Created an Original Soundtrack

Creating parody songs is a time consuming process however is actually quite simple.

The trick is to manipulate pronunciation and speed of words to match up with the original lyrics syllables. For example, in “Premier inn for Christmas” which goes “I’m in the Premier Inn for Christmas”, I placed pronunciation on the “I’m”, “the” and dragged the S in “Christmas” so it fit with the backing track.

I then went line by line through various songs I liked and repeated this process. For recording, I screen recorded the backing track from YouTube, inserted it into Capcut, and then sang using the Audio tool. Reduced the volume of the backing track and then exported the project. I then used AudioConverter for IOS to convert the video into a WAV file and then emailed the file to myself.

I found this method to be time consuming but very simple to follow.

picture of the music page for the game
I put all of the music into a page so each track could be listened to individually

The Finished Product

Overall, the finished product is a messy under the surface but functional to the naked eye. The player will encounter some issues, such as being able to hide in between the guard stations and no one being able to get to them, or how you can get several multiples of points by screaming for a second at a time by characters, but these issues are few and far between.

Should I remake the game and expand it into a full release, I would work on the mechanics first to make everything scalable by developing finite state machines for everyone so behaviour is organic, and I would work on Pathfinding so guards can flank or perform other manoeuvrers to make the game harder.

If you want to play Disruptive Dave then you can through the link below

https://jambuckett.itch.io/disruptive-dave