Disc Jockey Jockey by mildmojo
THIS ENTRY IS NON-FUNCTIONAL. LUDUM FAIL.
I failed spectacularly at the last minute, partly because the game wasn't quite complete, and partly because it turns out the final asset payload causes the game to max out my RAM before the browser stops. Probably needed an entirely different content handling system.
The goal was to manage four broken radio stations, taking DJs on and off the air by muting and unmuting their microphones on time. You do this by listening to the stations and waiting for DJs to harumph a bit to let you know they're about to go on. Tens of minutes of original voice acting that took way too long to record and edit (including some fine, fine contributions from friends).
Apologies for the stub here; I created it early in a vicious bout of optimism.
UPDATE (Sep 15): Post-compo version is still IN PROGRESS. Asset loading/management is HARD. Trying to balance 17 minutes of voice recordings and 80 minutes of music against RAM usage. I'm about to rewrite the asset handling code for the FOURTH time, trying to find a strategy that doesn't chew through memory but also doesn't drown the CPU with on-the-fly decoding. HTML5 WebAudio FTW.
I failed spectacularly at the last minute, partly because the game wasn't quite complete, and partly because it turns out the final asset payload causes the game to max out my RAM before the browser stops. Probably needed an entirely different content handling system.
The goal was to manage four broken radio stations, taking DJs on and off the air by muting and unmuting their microphones on time. You do this by listening to the stations and waiting for DJs to harumph a bit to let you know they're about to go on. Tens of minutes of original voice acting that took way too long to record and edit (including some fine, fine contributions from friends).
Apologies for the stub here; I created it early in a vicious bout of optimism.
UPDATE (Sep 15): Post-compo version is still IN PROGRESS. Asset loading/management is HARD. Trying to balance 17 minutes of voice recordings and 80 minutes of music against RAM usage. I'm about to rewrite the asset handling code for the FOURTH time, trying to find a strategy that doesn't chew through memory but also doesn't drown the CPU with on-the-fly decoding. HTML5 WebAudio FTW.
| Post-compo website (no playable builds) | http://discjockeyjockey.com |
| https://twitter.com/DJJgame | |
| Original URL | https://ludumdare.com/compo/ludum-dare-30/?action=preview&uid=6748 |
Just know that this project exist is already interresting...
This rocks!
Shame, would like to see how this would of turned out
@PaperBlurt, liquidminduk: You're right. While it was non-functional at the deadline, I'm not the boss of you, you're a grown-ass human and will do what you want. =) Description adjusted.
@Cheshyr: A single station definitely would've cut my development time. Besides the recording/editing time (around 2 hours per station), I spent several hours on Saturday trying to work out the DJ scheduling algorithm, which I wouldn't have needed for a single channel. I would've had to figure out how to keep players engaged, though. Less than a minute of DJ followed by a couple minutes of music is a pretty low interaction rate.
It turns out it's really hard to load 98 minutes of audio into the browser in a way that: a) doesn't use all the RAM, b) doesn't use all the browser's disk space, c) doesn't make gameplay stutter horribly while audio loads, and d) doesn't make the code a spaghetti mess of callbacks and timing bugs. Given the post-jam hours I've spent, I never had a chance of getting this working during the jam. I'm about to start my fourth rewrite of the asset loading system.
The most promising method was to store the compressed MP3 files in the browser's IndexedDB storage, retrieve them as blobs on demand, convert the blobs to object URLs (createObjectURL) without decoding the compressed audio, then creating new HTML5 Audio elements (new Audio())and using the object URLs as the element's `src`. HTML Audio elements can be connected to your WebAudio API node network with `audioContext.createMediaElementSource`. The net result is that you can cache all your audio to browser storage, then play back large MP3s without decoding them to RAM first by streaming them through an Audio tag. I just never quite got it all working together.
https://twitter.com/mildmojo/status/587038436835594240
Of course, this is an audio game, and the GIF is silent.
The game looks like this now:
https://twitter.com/mildmojo/status/735537828491362304
And when I take it to events, you play it with real hardware faders:
http://imgur.com/ZgJwLk0
Disc Jockey Jockey was selected for alt.ctrl.GDC this year, so I got to show it off to a ton of awesome fellow developers in the middle of an amazing group of alt.ctrl games! Then, because of that, I was invited to exhibit at IndieCade East 2016 in New York. I built an automated tutorial so I didn't have to stand next to it the entire weekend. Again, I felt like such a rookie around a lot of accomplished developers with much larger and further-developed projects.
There's a non-gameplay teaser!
https://www.youtube.com/watch?v=SmI0Bxc3WXM
And a website, with a press kit!
http://discjockeyjockey.com
And a Twitter account!
https://twitter.com/DJJgame
Now that show season is over and I don't have any more events on the horizon, I'm back in design/development. I'm prototyping a new game mode where you build a radio ad to spec for an advertiser. It's less time-management and more puzzle.
Gotta stay motivated to keep working on it. It's not a chore by any stretch, but it's still a long project and there are plenty of distractions. I'm guessing late 2017 for a release on Linux/Mac/Windows, then probably Android later on. Though, at the pace I've been moving, maybe that's optimistic. =)
Literally nobody is reading this, and this is a terrible place to host a devlog. Need to start a real one of those. =)