After We Saved the World: Post-Mortem
Originally posted on ludumdare.com
After We Saved the World is a tactical RPG with a twist: you start out with all of the characters, all of the best items, and all of the most powerful skills, and you must return everything back to the way it was when you lived in generic fantasy village #3. All in all, I’m counting this one as a success, but it was a rough ride.
What went wrong
- Stubborn refusal to use an existing game engine. That’s right: the game is built on nothing more than WebGL and a couple random libraries like howler.js. Worse still, I came into this project with front-end development skills that were novice at best, so I had to sink a lot of time into learning how to use node.js and gulp and things like that.
- Bad timing with work. I know—I’m who’s running this Mini LD, and I could have just chosen a week where I didn’t have as much of a conflict with work! But I just didn’t plan everything out well enough. A bit of stress and overwork had me on a bad sleep schedule before the project even started, but by the end of the week I managed to get some consistent good nights of sleep in.
- Large scope. This is the perennial problem with Ludum Dare games, or games in general, or heck, software projects. A tactical RPG, what, was I insane? It turns out I just had barely enough time to get combat and basic game structure working before the end of the week.
What went right
- Creative Commons assets. Even though I had always made my own assets for Ludum Dare in the past, I decided to go the Creative Commons route for almost everything except for music and a few odd UI elements. I managed to find some great sprites, textures, and icons on opengameart.org. Not only is it better than what I could have done by myself, but the whole thing even looks like it was supposed to fit together.
- Rolling my own WebGL code. I know that this is also in the “what went wrong” column, but I’ve been doing OpenGL for long enough that my first thoughts after picking a genre were along the lines of, “ah, I know how I want to batch this data”, and “these are the shaders I need.” I even managed to simplify the pointer hit test code: rather than write a bunch of geometry code to calculate which tile the player clicked on, I just read the coordinates out of a special WebGL buffer.
- Choosing a concept that is both new and fun. I love tactical games, and that enjoyment transferred well to the project. But I had never made a tactical RPG before—to be honest, I only ever played Avernum—and that meant I wasn’t rehashing a game that I had made before.
I’d post a link to my game, or a screenshot, but something is wrong with the time vortex. Check back later.