Draw Me Something - Sorta Post Mortem, in which I write a book

First off, yay 20 ratings! <3 Thanks everyone who's played.

win2.png

Now, I knew before theme voting was even happening that I wanted to do a game where you somehow drew what was in it. The original idea was that you would just draw the player character and maybe I'd somehow animate that via code? I was hoping for the "You start with nothing" theme, because it's the one that seemed to fit a drawing game the best, but I was going to try to shoehorn my idea in anyway I could. I was pleased with combining genres too, because heck, drawing can be considered a genre.

I decided this time around, I was going to stream my development if I was able. I'd never done a dev stream before, didn't really expect anyone to show up, and half expected that I'd find I was unable to code while on camera. But I wanted to try it anyway.

Friday
Friday was the only night of the jam I didn't have to work, but unfortunately the theme drops late in the evening for my timezone anyway, so I ended up having to do all my coding super late at night anyway. Ended up waiting until two in the morning to start, because I wanted to stream as much of the dev as possible and that was when I would be free to do so.

I managed about two hours of work that night. The entire time was spent getting a rudimentary drawing mechanic down and working out how to save it into a sprite. My original plan was to outright save a screenshot of the drawn area, and then get gamemaker to load it up as a sprite. But that meant html5 was out. But then a friend nudged me in the direction of utilizing "surfaces", a concept I still don't totally understand but that let me directly copy part of the screen into a sprite, which was amazing and let it function on html5. Kinda. There were other things preventing it from actually functioning properly on web, but it wasn't the sprite saving.

Went to bed pretty happy that night.

Saturday
Full day of work. Yay retail.

Anyway, did some art after dinner. Improved the current ui from boxes and lines, to something that could remotely pass as an art app. Paintbrushes and canvases, all that. Also got some fonts in place.

Started streaming and seriously devving around midnight. Went for about five hours that night. Built most of the drawing stages. Got them all assigned to different objects in the game. Figured out what was causing html5 to crap out - apparently html5 is a lot more sensitive about the ways you create your arrays than the windows builds are. Which is fine. Annoying, but fine.

Then spent a bunch of time picking out colors to overwrite the enemies with. The hope was to pick colors that would be distinguishable, even if a player was colorblind, but that still looked good otherwise. Friends helped me google and we sorted out a pallet that we think would work. Didn't really have anyone to test it on though, so it's more of a fingers crossed kinda situation. Also took away the color black so that enemies would have to get a color, and added little feet shadows so you could always see the color they were even if they were drawn all in dark grey.

Ended the night by starting work on the shooting mechanics. Enemies were given a random color, player was given ability to walk around and shoot. A slightly awkward control scheme was born. WASD and Arrows, I dunno, seemed like a good idea at the time, though I think people may find that a little confusing at first.

Sunday
More work, woo.

By this point, I was utterly exhausted, having gotten maybe three hours of sleep each night. Decided that I probably couldn't stream AND dev at the same time that night and opted to just code privately. I knew I wouldn't have time the next day to do much more than last minute bug fixes, so it was going to have to be a "work until it's done" kind of night.

Did some default sprites. What? Bet you didn't know you could skip some of the drawings if you just couldn't be bothered. Or more to the point, I wanted to prevent invisible enemies in case someone hit done by mistake or something. Drew the sprites in the game itself, so they'd have the right (terrible) look, but turned them into actual sprites via screenshot and Paint.NET.

DbbUqRXW4AA1IG1.jpg large.jpg

Got walls in place - originally wanted to have a more interesting arena, but that ended up scrapped for time. But players couldn't escape the box they were in, so there's that. Added two more drawing segments so that the walls could be semi-randomized. If I do any updates to the drawing part, I may mark these two as optional. Because you can totally skip one or both and the game is fine with it.

Walls gained the ability to be painted. Got some really simplistic enemy ai in place. They literally just run at the player. Nothing fancy, and I definitely think it could be improved to look more natural. Buuuuut, it worked. And I got a level timer in place.

Then level definitions. Decided on ten levels. I don't know why ten; it just felt like a nice round number. Levels are actually stored in an array...where every line of the array contains another array. Enemy spawn rate, and the chances for each enemy type. There's probably cleaner ways to do it. I didn't really have any time to really balance this; my only goal was "not impossible", and I think it ended up on the easier side once you get the hang of the controls.

Once all of the game mechanics were in, I started working on the more polishing type things. Ground got painted when you missed a shot. Title screen was created. And KEYBINDINGS! Goodness, I've wanted to do proper keybindings forever. And they worked.

Music and sounds were sorta last minute. Using Sfxr was easy enough for the actual sound effects, but music was more of a challenge. I'm not really a music person. I tried composing a few things on BeepBox, but by this point it was 4:30 in the morning and everything I wrote sounded exactly the same and was really annoying. So I opted to generate some music on Computoser, and I think that worked out well. And while I was polishing things, I added buttons to adjust the music volume and un/mute the sound effects.

I was all set to release.... But then, of course, the html5 version basically explodes on me. No. Really. DbdgKi6WAAA_Y5T.jpg

By this point, it's 6:30 in the morning. Strongly considered just releasing the windows version and trying to fix the port later. But it wouldn't stop bugging me. Manage to get the images to stop skewing by messing with texture groups - just let me tell you, while I love Gamemaker, there's definitely some unintuitive wonkiness with the html5 exporter. Now, the sprites were fixed, but the text on the controls page was still screwy. Lots of digging and experimenting, and it comes down to the html5 version not reporting keyboardlastkey properly, which was going through the "key to text" script I have, and parsing so wrong it wouldn't even display anything. More experimenting, and finally (FINALLY) I get it working with keyboardkey instead.

Finally, by eight in the morning, I had a completed game that worked, looked and sounded good, and had more polish than I'd ever put into a game before. Swore I wasn't touching it for at least a week. So of course someone had a good idea and I had to put it in last minute. And then a few hours later, an unfair bug that damages the player for no reason, so I had to fix that.

Conclusion
Ok, so sleep deprivation is bad. But in this case I don't regret it, even if I'm still feeling the after effects a bit. I learned a TON from making this game. I will probably be referring back to things in it for ages.

If you'd like to play, you can do so here on my game page, though I do have my 20 ratings and you're welcome to pass by if you're looking for people who actually need ratings. And you can find my stream archives Here on youtube if you care, and on the rare occasion I stream I can be found over on Mixer.