Grid Runners post-mortem
I always try to do the post-mortem ASAP so it doesn't get cold, even if the emotions still run high and that could influence my writing. I couldn't do it this time as I finished the game too exhausted to keep thinking on it.
As the days went by I felt less and less keen to write it, so this post-mortem is going to be shorter than usual.
What went right
The idea for "Grid Runners" came from a previous PyWeek (16?). At that time the theme was not what was I was hoping and I didn't use it. I thought that the idea had potential but I never implemented it as a non-pyweek game. The 8-bit theme is not very inspiring, but it is quite open and it's not impossible to adapt your idea so it fits.
More or less I implemented what I had planned, so that was something that definitely went right.
I'm getting very effective with the tools I use: Gimp, Tiled, Audacity, Schism Tracker (new this PyWeek, replaced the old SoundTracker in my tool-set) and Pyglet (more about this one in what went wrong).
My workflow regarding animations in Gimp is not the best (anything but the most basic animations are difficult to test and adjust). Getting the grid runners' animation right was slow, although it turned out quite nice at the end.
I spent a lot of time polishing the game even before it was a game, and I think it was a good idea. In PyWeek 17 I left the music and audio to the last minute and it affected the final result. This time I tried to allocate time to work on every aspect of the game, although I didn't succeeded completely because I couldn't start with the level design until Saturday afternoon. Close enough!
What went wrong
I got stuck a couple of times with Pyglet/OpenGL related stuff. For example I used a shader for the first time and that was a bad idea because I wasted a lot of time getting it right (although it looks great at the end!). Also I had a lot of problems to get the viewport right so the graphics were scaled properly to get a nice pixel-art effect. I knew how to do it but I was getting artifacts and pixel-bleeding and after all the efforts that didn't feel right; I narrowed down the problem to some sort of issue related to the viewport being multiple of 2 or the tile size, so I found a workaround that seems to work making the game look nice both in a window and in full screen.
Besides that I had a couple of W-T-F issues related to the fact that I'm a OpenGL-newbie, but I managed to carry on with a workaround or changing the implementation of that feature. In fact the game has a couple of glitches because last minute fixes (they don't affect the gameplay at all, so it's OK).
I made a mistake not planing the AI of the enemies during the week because I had never done it before and when I started working on it on Saturday I was already tired and it doesn't help that you know that you shouldn't invest more than a couple of hours or you won't have time to do the levels. The end result works, but it can be improved (and I did it in a post-compo version).
Finally I think the game was a little bit too ambitious for a week, and it was definitely too risky doing the levels Saturday afternoon when I was quite tired. I love Tiled and it's a wonderful tool but when I finished the last level I swear I don't want to have to deal with its interface in some time.
I'm quite proud of the end result: the music, the graphics and the gameplay. It was hard work but totally worth it!