A photo of Evan Pratten
Evan Pratten

Ludum Dare 46: Jamming with friends

Recapping the development of *Micromanaged Mike*

Over the past weekend I teamed up with @rsninja722, @wm-c, @exvacuum, @marshmarlow, and our friends Sally and Matt to participate in the LudumDare46 game jam. This post will outline the game development process.

Day 0


Starting at 20:30 Friday night, we all anxiously awaited this jam’s theme to be released.

The theme for Ludum Dare 46 is...

Keep it alivehttps://t.co/APmeEhwjEp #LDJAM pic.twitter.com/bzNYi2zlDG

— Ludum Dare (@ludumdare) April 18, 2020

..and so we started.

Day 0 was spend on three tasks:

We decided to program our game in JavaScript (but not without an argument about types) because that is @rsninja722’s primary language, and we can use his JS game engine, game.js. On top of that, we also decided to use SASS for styling, and I designed a CSS injector that allows us to share variables between JS and SASS.

After task allocation, I took on the job of handling sounds and sound loading for the game. I decided to start work on that during day 1, due to homework.

The game’s progress at the end of Day 0 can be found at commit 0b4a1cd

Day 1


Day 1 started with @exvacuum developing a heartrate monitor system for the game:

Heartrate monitor

Demo image showing off his algorithm

His progress was documented on his YouTube channel.

I also started out by writing a sound system that uses audio channels to separate sounds. This system pre-caches all sounds while the game loads. Unfortunately, after getting my branch merged into master, I noticed a few bugs:

Due to these issues, I decided to rewrite the audio backend to use Howler.js. I streamed this rewrite on Twitch. The Howler rewrite was very painless, and made a much nicer interface for playing audio assets.

// The old way
globalSoundContext.playSound(globalSoundContext.channels.bgm, soundAssets.debug_ding);

// The new way
soundAssets.debug_ding.play();

This rewrite also added integration with the volume control sliders in the game settings menu:

Settings menu

Audio Settings screen

Later on in the day, a basic HUD was designed to incorporate the game elements. A bug was also discovered that causes Firefox-based clients to not render the background fill. We decided to replace the background fill with an image later.

V1 HUD

V1 of the game HUD

While developing the sound backend, and tweaking UI, I added sound assets for heartbeats, and footsteps. World assets were also added, and the walking system was improved.

World Mockup

The game with basic world assets loaded

@wm-c and @rsninja722 also spent time developing the game’s tutorial mode.

The game’s progress at the end of Day 1 can be found at commit 84d8438

Day 2 & 3


Day 2 started with a new background asset, and a new HUD design:

Background

The game’s new background

HUD

The game’s new HUD

@rsninja722 also got to work on updating the game’s collisions based on the new assets, while I added more sounds to the game (again, streaming this process on Twitch).

From then on, development time was just spent tweaking things such as:

The game’s progress at the end of Day 2 can be found at commit b9d758f

The Game

Micromanaged Mike is free to play on @rsninj722’s website.

Game screenshot

Final game screenshot