--- title: 'Ludum Dare 46: Jamming with friends' description: Recapping the development of *Micromanaged Mike* date: 2020-04-20 tags: - gamejam - ldjam - javascript - project redirect_from: - /post/ebsdjtd9/ - /ebsdjtd9/ aliases: - /blog/2020/04/20/ludumdare46 - /blog/ludumdare46 extra: js_import: - https://platform.twitter.com/widgets.js excerpt: A look back at 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](https://ldjam.com/events/ludum-dare/46) 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.
..and so we started. Day 0 was spend on three tasks: - Deciding the story for our game - Allocating tasks - Building a software framework for the game 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](https://github.com/rsninja722/game.js). On top of that, we also decided to use [SASS](https://sass-lang.com/) for styling, and I designed [a CSS injector](https://github.com/rsninja722/LudumDare46/blob/master/docs/assets/js/injection/cssinjector.js) 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](https://github.com/rsninja722/LudumDare46/tree/0b4a1cdb92e62ff0f9453f6f169f641dd82e8f09)* ## Day 1 ---- Day 1 started with @exvacuum developing a heartrate monitor system for the game:  *Demo image showing off his algorithm* His progress was documented [on his YouTube channel](https://www.youtube.com/watch?v=oqcbO8x0evY). 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: - When queueing audio, the 2 most recent requests are always ignored - Some browsers do not allow me to play multiple audio streams at the same time Due to these issues, I decided to rewrite the audio backend to use [Howler.js](https://howlerjs.com/). I streamed this rewrite [on Twitch](https://www.twitch.tv/videos/595864066). The Howler rewrite was very painless, and made a much nicer interface for playing audio assets. ```javascript // 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:  *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 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.  *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](https://github.com/rsninja722/LudumDare46/tree/84d843880f052fd274d2d14036220e6b591e9ec3)* ## Day 2 & 3 ---- Day 2 started with a new background asset, and a new HUD design:  *The game's new background*  *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](https://www.twitch.tv/videos/596589171)). From then on, development time was just spent tweaking things such as: - A Chrome sound bug - A transition bug when moving from the loading screen to tutorial - Some collision bugs - Adding a new credits screen *The game's progress at the end of Day 2 can be found at commit [b9d758f](https://github.com/rsninja722/LudumDare46/tree/b9d758f4172f2ca251da6f60af713888ef28b5fe)* ## The Game Micromanaged Mike is free to play on [@rsninj722's website](https://rsninja.dev/LudumDare46/).  *Final game screenshot*The theme for Ludum Dare 46 is...
— Ludum Dare (@ludumdare) April 18, 2020
Keep it alivehttps://t.co/APmeEhwjEp #LDJAM pic.twitter.com/bzNYi2zlDG