Someone asked me how did I make GunFu Deadlands. This is a short post about this.
I came up with the idea during the BIGjam’09.
Until then, I had always failed to finish any of my game projects. The reason is that I have a tendency to think too big. I come up with great ideas for huge games that would take me months to finish. After some weeks of hard work and not seeing the end, I tend to loose motivation and finally abandon them.
The main activity during these jams are the 3h minijams. The idea is simple: We come up with a theme, chosen more or less randomly, and you have 3 hours to finish a game based on it. Just 3 hours. No fancy graphics, no complex mechanics, no elaborate ideas. Just open your editor and rush something. A concept. A prototype. You don’t even have to be very original. Anything will do, the only important thing is to have something to show others after 3 hours of intense work.
It was a mind opener for me.
Not that the games I did during these jams were special in any sense. Nunfusion and Croissant. But, for the first time, I was able to finish something that could be called a game. My flow of thoughts was shifting, and I was starting to find it easier to come up with small ideas for small games. Moreover, I was experiencing first hand how important it is, when you start creating a game, to get to the point of “playability” as fast as you can. The big lesson is that you need to be able to play your own game as soon as possible, polishing comes later.
The famous mantra among developers is “keep it simple”. And yet I still sometimes forget it and go the complex way. Such a tight deadline is a good way to force yourself to “keep it simple”.
While sleeping between the second and third days of the jam, I had the basic idea for GunFu Deadlands. Something small, something simple. A far west shooter with bullet time. With simple graphics, no background story, just action and fun. Something I should be able to finish in around one week of work. If I could come up with that idea, I think now, is because I had been putting my mind in this state during the jam.
I had been introduced to Löve2D while creating Nunfusion. Actually, I learned it while I was making that game. It is a 2D game engine based on lua, which is a language I liked a lot from the beginning, due to its simplicity (at least compared to C++). I decided to use it for GunFu Deadlands.
It took me like a month of calendar time to finish the first beta, but if I count the time I could devote to it, I would say it took me around two weeks. The hardest part was making the graphics. I am not good with that. Even though I wanted to keep them lo-fi, which should make it easier, I still had a hard time. I was never satisfied with the results, and I kept changing them again and again. Since I had set myself a deadline for the beta (which was the 1st of september), I finally decided to go with whatever graphics I had at the moment and not worry any more. If I had not set a deadline, I would probably had not finished the game, ever.
For drawing the graphics I used Paint.Net. It only works on Windows, but still, it’s quite good. I prefer it over Gimp, which I also use sometimes, because the interface is a lot simpler. Given the kind of graphics I have to draw, I don’t really need any of the advanced features of Gimp.
For the audio, I searched for the needed samples at freesound.org. It took a bit of browsing but finally I could find something that would be useful for my needs. For editing the samples, I used Audacity. I needed timestretched slow versions of the samples for the bullet time, Audacity was perfect for that. Also, to compress the samples with OGG instead of the original WAV, so they would not take so much space in disk.
The music was also a bit of a problem. First I tried to contact someone to help me and write the music for me. Unfortunately, everyone I know who makes music that can be used in videogames was too busy, so finally I decided to give it a try and make the music myself. I browsed far-west-themed music wherever I could find, looking for inspiration, and finally I wrote my own song using MilkyTracker. I had played a lot with Fasttracker 2 many years ago, so I was already a bit familiar with this type of software. Surprisingly, it didn’t take so long to create a decend song to use as soundtrack. The important part was to find the right samples/instruments, which I could find in an huge library of old XM songs in a hard drive I still keep.
The beta was ready by the deadline, 1st of september. I showed it to a couple of friends who gave me some early feedback. That was very important for polishing the evident problems with the game. One week later I posted it in the TIGsource feedback forum. My plan was to get some feedback from the people there and use it to improve the game and get the version 1.0 finished. What happened is that at first the game was a bit ignored, but one month later Cactus linked to it in twitter, and then it spread through several websites. It kind of went viral. Which was not exactly what I had planned, I was worried that people would take the beta as the “final version”, so I would not have a chance to present an actual final version. But yet, the feedback scattered through all those websites was very valuable. I spent then another month just polishing the parts where the people were finding problems, and finally, at the middle of december, made version 1.0 available.
Some people have asked for a website where they could upload their maps. I could never find any online service that matched my needs, they are either too big/complex or too simple. I even considered writing my own map database server on Google App Engine, but I never got around to get that done.
And that is the story.
If you are curious about the internals of GunFu Deadlands, the game is free software (GPL), so you can browse the code and download it from the project’s site at sourceforge. The code might not be very clear, since I wrote it for myself, but it could still be interesting to someone.
The fact that I am a software developer, professionaly, makes this hobby definitely easier to me. I actually prefer to code games by writing programs than using one of those point and click frameworks. Not that there is anything wrong with them, they are quite powerful indeed and some of my favorite games have been made with them, but I still think in code and get lost when there are too many buttons and menus for me to click.