Well, the fact that I got this far must signify something.
This is my first Ludum Dare (the first for my partner too) and I’m pretty happy with the results. At 4:00 P.M on Sunday I was pretty sure this was going to be an absolute flop – but somehow it actually worked itself out. So without further ado, I’ll introduce the game concept and a few other details.
Game concept: It was heavily inspired by Chronotron, a game where players can go back in time and solve puzzles by making their former selves do part of the work. I played Chronotron a while back and didn’t really think much of it at first. But then… I realized there might just be something to this game that could be applied elsewhere. As in, the concept of time travel. Before Chronotron, I’d never really heard of a game which used time travel as a gameplay element. Turns out there are a few, but most of them don’t implement it like Chronotron.
So we decided to give time travel a second chance and incorporate it into a turn-based semi-strategy game. You would have as much time as you wanted to think about your actions, and then you would execute them. I even had ideas for a kind of time-travel portal device (past portal and future portal).
All in all, the game ended up having the art style of Geometry Wars, controls like a roguelike, puzzles like Sokoban, and gameplay like Chronotron.
And the name of the game: Timing is Everything
What went well:
- During the early part of game development, I was just churning out code. My partner was drawing pretty well (I’m have the artistic skills of a planarian) and a lot of the early code was working flawlessly on the first test.
- The art style was definitely influenced by games like Geometry Wars and Pew-Pew. One would think that it would have no place in such a strategic game. But it actually fit in quite nicely.
- Some levels were quite creative. My partner designed all of them (although I did help out). The ideas of paradox avoidance shows up in the later levels and was well executed.
- Libgdx proved to be pretty easy to use as well as cross-platform.
What didn’t go so well:
- Time travel was a real pain to deal with. To make it easier on ourselves, we had started with a goal of making ANY game entity capable of traveling through time (just in case that time-portal device ended up being used). When I actually got to coding the player’s interactions with the time machine I hit problems. Originally, we wanted the player to be able to specify how far back in time they wanted to travel. This ended up creating a lot of annoying bugs and glitches, and the little framework which I had written didn’t suffice. So, we ended up ditching a huge chunk of code and going back to doing things Chrontron style – you can only go back to second 0. And after a lot of modification, we got that to work. The other problem was being able to use the time machine more than once. And the idea that when former selves went into the time machine, they had to DISAPPEAR but still get reverted later on. One of my ideas that never ended up completely working was that former selves could be linked to their future selves via some kind of linked list starting at the current player. In the end, annoying bugs and glitches made a game with more than two instances of the player impossible, and we ended up compromising and only allowing the players to use the time machine twice. If we had thought through the implications of time-travel ahead of time, we could have made a far simpler and more efficient framework which would have been able to handle that.
- Some of the early levels were a bit too hard. Level 2 should have been level 8. And level 10 was too easy (at first). Some levels were designed with only 1 solution… so if you made one wrong move or if you forgot to sprint, you would inevitably fail.
- The code eventually disintegrated into an absolute mess in the later hours. Best to look at the actual code if you want to see what an “absolute mess” looks like. Some code was unused.
- Real life got in the way. This is probably the busiest time of the year for me, and to shove everything to the side for the Dare was not easy. In reality, we only put about 20 hours of work into this entry in the 72 hours we had to make it.
- Porting issues. While they say “Port later” in the guide, be careful. If you want to make a web game, prototype on your browser frequently. I didn’t and I had an 1 hr and 45 mins to figure out Libgdx’s GWT port. And it didn’t work, so sometime this week when I have time, I’ll have to make a web port.
Anyways, if you haven’t yet played it, try it out here.