drakekin

LD29

24 hour recap

So, I started the compo with an idea about fighting over mining rigs deep in the atmosphere of a gas giant, with an awesome modular ship editor and stealth combat and multiplayer, and…

wtf

 

And then this happened. This is what happens when you try and use an obscure 3D graphics library, using an entirely untested wrapper, in a game jam. Although I’d been estatic about using Python, and the library, and ODE for physics, I had to reconsider everything. I didn’t want to try and make a twitch-based multiplayer game in JS (my backup idea), so that idea was out straight away.

So I floundered a bit, and then thought “Everyone is doing submarine games, what if you’re hunting something ‘Beneath the Surface’?” And thus the idea of hunting swimming kaiju from giant flying battleships was born. It should be an asymmetric multiplayer game where one player plays the kaiju (which has hidden movement, and a single powerful attack) and all the rest of the players play three of the big battleships and a number of smaller scout flyers. Action happens frozen synapse style, with each player performing their turns, and then they’re all played out at once and then everyone makes their new turns.

Screenshot 2014-04-27 03.24.45

I have a sketch of the server, some of the engine code and the models for the ship and the flyers done. This is the first time I have successfully textured an object without basically assembling a papercraft in Google Sketchup. Tomorrow, more actual game, more server, deploy the server etc. Onwards to victory!

 

LD32

I’m IN

I’ll be making my game in Pycharm, using javascript and Three.JS (most likely). I’ll be committing my work on a regular basis to https://github.com/Drakekin/LD32 if you want to watch along at home.

You Only Dare Thrice: Wrapup and Post-mortem

This was my third ludum dare (in which I submitted something) and the second in which I actually produced anything resembling a finished product (the first entry was pretty but did not contain a game and barely ran on anyone’s computers but my own, it also ran awfully and took so long to load and generate the map that a lot of people assumed it wasn’t working and closed the tab, only to discover that it *locked up the browser* whilst loading! Quite a feat). This time I planned my time carefully pre-dare, taking off the Friday beforehand (so that I wouldn’t be coming home from work tired) and the Monday after (so that I could work up to the deadline if needed). Actual chronological order might be different from what is presented here due to the fallibility of human memory, but the actual events are mostly true.

I had planned on staying up to the theme announcement (2am local), planning for an hour or two and then going to bed, expecting to be up fairly early to start work. I had planned breaks around midday on both days to go to the shops to get me out of the house, ensure I didn’t spend the entire weekend staring at a tiny screen and to give me some enforced time to mull things over. This was, personally, invaluable, especially on day 2 when I was starting to doubt I was ever going to get over my coordinate woes (more on that later).

2am rolled around and the theme was announced! I was actually making a cup of tea at the time and started planning about 2:10. About twenty minutes of brainstorming later, and I’d settled on the idea of a bunch of spies trying to steal unconventional weapons. For this I’d need a map, some places for spies to steal from and randomly generated people to steal from/talk to. Originally it was going to be on a city scale, but then I decided a per-building scale would be better. Having written this all down, I went to bed thinking of all the things I could do with AI spies running around, the wonderful maps I’d make and so on and so forth.

Woke up, had a cup of tea, wrote down some of my thoughts from the night and headed out. Came back, ate bacon and then got to work. I cribbed some setup code from the three.js docs and set to work on the various maps (texture, bump, specular). I made a rough and ready slope detection map that let me mark certain areas as being too steep to put buildings on that I’d like to explore more of in the future. I briefly experimented with using a mesh for height instead of bump mapping (as the fact it’s actually flat becomes really obvious once you start putting things on the map) but had issues getting the mesh to line up with the texture. After wasting an hour on this, I ordered a curry and gave myself until the curry arrived to fix it. The curry arrived and I reverted to the bump map.

Having gotten map generation to a point where it wasn’t awful and having added a day/night cycle I went to bed around 1am. Woke up about nine, went out to the shops, ate bacon and poached eggs and got back to work. I added camera movement, rotation, improved the map a few times. Whilst I was working on the camera movement I wasted almost an hour on correct camera rotation only to discover everything was actually at 90 degrees and that I’d gotten my coordinates in the wrong order. However, I quickly realised that I was running out of time and I didn’t actually have a game.

Plans got paired down repeatedly and after some procrastination (which I justified to myself as not getting burned out) I stopped about half eleven with the game as it was submitted, where it was finally possible to “win”. It was quite far from the game I’d set out to make, but it was a game (for some definition of game) and I’d made it in 48 hours.

Really, I should have started at it backwards. Get the AI, the game logic, the actual mechanics of the game in first and then, if I had time, add the nice shiny bits. The game as I envisaged it would have worked 90% of the way as a text adventure, so I should have started with that. You can see a bit of what I wanted the game to be in the psuedo-real time aspects, really I should have made talking to people take a random amount of time as well, but hey ho I didn’t. I had considered making procedural textures for the buildings, but had to abandon that as well.

All in, I’m massively chuffed that I finished something. If I manage to beat my ranking last time I’ll be happy, and hopefully I’ll be better prepared for LD33.

You Only Dare Thrice: please have a go and rate it, instructions can be found in the description.

LD33

Prison Break Postmortem

I made a game called Prison Break for LD33 for the theme of You are the Monster. Pre-dare, I made this snazzy spreadsheet about the top twenty candidate themes and resolved to come up with a bunch of ideas that fit each theme.

IDEAS!

I think if it had been One Rule I would have actually cried. You are the Monster wasn’t that much better (In hindsight I totally could have spun it for Asteroidblitzkrieg and should have made that game. Space nazis! Nazis in space! First Ludum Dare game banned in Germany! On second thought…) but I woke up on Saturday morning with this idea that you play a space fighter pilot in a group of fighters and a few bigger ships and you are attacking another convoy and you realise that you’re attacking unarmed civilians and you turn on your comrades. I preferred this to both Kraken Hunting (too cliche, didn’t want to do the player being a literal monster) or Black Hole (which I couldn’t actually think of a lose condition for).

Anyway, building a space combat game is something I’ve wanted to do for ages.

I also learned how to make gifs, which is neat

I also learned how to make gifs, which is neat

So I go away and I make a neat prototype where you can fly a sphere around. I roughly get the flight mechanics down. It’s kind of newtonian, but also there’s drag so things behave like people expect them to. I build some space ships and try and keep them vaguely circular to make collision detection easy. I make a UI, but it’s a bit shit because I forget how to make progress bars. I also make everything about a hundred times bigger than it needs to be, and forget what contextual information is. I built a neat thing to handle player input and AI, where the player AI just happens to know what buttons the user is pressing on their keyboard.

This was an early mock-up of what the fighter looked like. I should have stuck to my early fish theme.

This was an early mock-up of what the fighter looked like. I should have stuck to my early fish theme.

Thing is, it got to about midday on day two and I barely had anything resembling a game. I was fighting endlessly with maths issues (rotation is hard!) and the fact that when I got the AI even remotely working, tiny bugs meant it occastionally completely locked up for just long enough to be completely game breaking for the player and when I fixed that the AI were 100% perfect and even being outnumbered 3-1 creative thinking on the player couldn’t beat overwhelming, perfectly accurate firepower.

Adding the "explode everyone but you" button was awful for productivity but great for morale

Adding the “explode everyone but you” button was awful for productivity but great for (my) morale. Probably terrible for morale amongst whoever piloted those ships.

So I doubled down on making dogfighting kind of work, cludged in a bunch of things (like making collisions do damage instead of just blowing both people up, adding rockets and missiles) and making enemies respawn and adding a rough scoring system. But suddenly it was nearing 8pm and I had six hours remaining and now I was debugging weird issues where I was loading two meshes and everything was fine. Try to load in the missile mesh I’d built? Nope. Half the player model disappears and suddenly the game crashes when I try and fire a missile. Also, the game I wanted to make originally has been sacrificed on the alter of “Oh Shit I Spent Five Hours Debugging The Fact I Don’t Actually Remember How To Use Quaternions”.

There's a whole host of features you can see on this screenshot that only make sense if you saw the entire development effort. That's really bad.

There’s a whole host of features you can see on this screenshot that only make sense if you saw the entire development effort. That’s really bad. Also why did I justify that text? And what was I thinking with that capital ship design!?

Whilst I submitted with a whole three hours left, I was feeling kind of shit about both myself and my game and kind of wanted to sleep and forget everything. You see the thing about mental health issues is you don’t get to pick and choose when they burst in and go “You’re shit!”. I started the jam specifically wanting to go for the philosophical aspect of the theme and left the integration with the theme far too late (same mistake as last time) and now I was beating myself with it. I worked through the worst of it to get the game into a playable state and shoehorn some stupid story about stealing a spaceship and mowing down police GTA style to pretend it fit the theme (fooling no-one).

Certainly didn't fool this person.

Certainly didn’t fool this person. (sorry for picking out your comment, colozz, and I’m honestly grateful for your feedback)

But. Despite all of this, I made a game! Worst case scenario, Prison Break and it’s thousand lines of unorganised javascript sit in a repository for the rest of time as a testament to that time I MADE A 3D SPACE DOGFIGHTING GAME IN UNDER 48 HOURS.

This feels suspiciously like tooting my own horn, but fuck it.

This feels suspiciously like tooting my own horn, but fuck it, some people said nice things about my game and I should celebrate this.

Not everyone liked my game. A fair number of people who played it had serious concerns with it (which have been in my eyes so far entirely true, I’ve not had any feedback yet that I’ve considered unfounded, mean or unconstructive, here or elsewhere). Maybe next time I’ll try and make the theme something central to the game instead of making it something you can take or leave. Also maybe next time I should consider the Jam instead.

Here’s a kitten for getting this far

Anyway, thanks for reading this (if you got this far) and a huge thank you to all the people who played my game. I’m at a bit of a disadvantage as I can only play web games in chrome right now, but I’m doing my best to play ten games a day for the next week and I’m trying to leave a helpful comment on every game I play.

See you next time!

Ludum Dare 37

Abandon Ship – A Ludum Dare 37 Postmortem

TL;DR I made a game about abandoning a space ship with wonkey controls and I’ve love it if you played it: http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=21100

Screenshot 2016-12-12 02.11.36

I think it’s safe to say everyone ends a jam with a list of cut features bigger than the game itself. This was my first LD using unity, with a theme I wasn’t thrilled about, but I still think my idea was solid. You’re on a spaceship, there’s no gravity, the ship is about to explode, and there’s only one room that matters: the escape pod room.

The original plan was to construct a multi-level ship, generate a couple of routes through the ship (which could require going and getting other things) and adding a couple of random events. I knew some (or most) of this would never get done, ships ended up being a single level. I never got back to the ship generation algorithm, so ships are literally mazes. And rather poor mazes at that. I wanted to do something clever with the player hitbox, but after getting it to be “good enough” I moved on to other things. I wanted the ship to feel lived in, and even started work on some assets for other rooms (you can see the start of this with the ops room) but never finished that either. The whole game is an exercise in “is this good enough for me to move on to the next feature?”.

Whilst I’ve been playing with unity for a few months now, this is the first finished anything I’ve done with it. I had to learn how to do menus, use multiple scenes, fought stupid compiler bugs. (Can’t thank the good denizens of #unity3d on freenode for their last minute “it works on my pc” panic help) I learned a huge amount about how unity prefabs work, about the sketchup importer. I am going to be fucking ready for LD38 I tell you.

But, I finished a game (and finished it on time). I beat Ludum Dare. There are still some bugs, especially to do with the WebGL version, but it’s a game and it’s there! You can play it (if you can get around the control scheme, which a) was designed for more 3D environments and b) never quite finished, you’re supposed to be able to walk along surfaces and latch on when you jump).

I still think the idea is solid. I think I am going to try to make a version two, resurrect some of the ideas from the original concept, bigger better ships, more interactivity, an art style that isn’t “oh gods I’m running out of time”.