Ludum Dare 38 -- Eine Kleine Insektmusik

Monkey Archive Forums/Monkey Projects/Ludum Dare 38 -- Eine Kleine Insektmusik

Superfluous(Posted May) [#1]
My team developed a game in 72 hours for this year's Ludum Dare game jam. I'm our developer and all the code was written in Monkey X, so I figured I'd share it here.

https://ldjam.com/events/ludum-dare/38/eine-kleine-insektmusik

Since it's a game jam game, there are a lot of compromises here, mainly that there's not a lot of content. It's a music-based game and we only have one ~1-minute-long piece of music. I feel pretty good about it as a proof of concept though, and we're hoping to keep expanding on it post-jam.


Jesse(Posted May) [#2]
Hahaha! that was funny. I like it.


wick(Posted May) [#3]
Thanks for sharing! How did you get the right keys to line up with the notes?


Superfluous(Posted May) [#4]
Thanks for checking it out!

All of the music in the game is generated using midi files. I export the midi to an mp3 and to a csv file. I tweak some track metadata in the csv to determine which tracks/octaves will be used in-game. I have some code to process the csv into notes/timings, and then I just hit play on the mp3 and loop through the processed csv data in the game loop. The mp3 and the game loop stay in sync based on prayers, magic, and hope.


Gerry Quinn(Posted May) [#5]
Ironically, this is probably the one genre (aside from 3D) in which Monkey might cause some issues. Crypt of the Necrodancer was started in Monkey, but as I understand things they eventually had to hack it severely in order to get better control of music synchronisation. The system is not set up for anything fancy in terms of sound control. (Not sure whether Monkey 2 is different.)

Well done anyway - a fun idea and seems to have been pretty well-received. Maybe Monkey can actually do all you need here - I'm just saying you should check into the above to see what you need in terms of synchronisation before getting too deep into developing the graphics etc.


Superfluous(Posted May) [#6]
Absolutely. It was my main worry going into this, so I told my team "I'm going to take until noon the first day to see if this syncs up, if not we're resorting to Plan B". Luckily it worked out! We'll have to see if other targets behave as well... I'm having other issues building for non-HTML5.

One thing in our favor is that, unlike Necrodancer, we don't need a lot of precision. Since user inputs don't have to correspond to beat timings, we probably get a whole order of magnitude difference in how much offset would feel good to the player. We're also not trying to process/beatmap music files, which simplifies our problems significantly.

Thanks!