Thursday, 28 April 2011

Hello and welcome!

Well, hello, I'm an indie games developer hopeful, and this is my first blog posting ever. I am also a bit of a "cave programmer", so we'll see how it goes, but if there's any interest I will gladly elaborate more on things I have dealt with/done/learned so far in my humble journey.

I intend to use this space both to write a little about my work as an aspiring indie games developer, and also as part of a naive promotional effort to get my stuff noticed, especially since I'm close to pushing out my first game. I also miss the idea of having peers around me in this work I'm doing, and I enjoy reading other game dev blogs around the place, so maybe posting stuff here will give me a sense of connectedness or giving back, or something like that.

Some of my background

I've been into games for a long time. It started with my love for games and demos I had as a child on the Commodore 64, which then turned into a hobby making home-brew games on that platform, and some meddling with the Amiga and a bit of DOS VGA mode 13h stuff. Unfortunately I left game development early in my adulthood, and went instead to work at a real job for several years after finishing uni.

Not all was lost, it was ok there in the corporate wilderness, but now I'm getting myself back on track to follow the original dream of games development, for better or for worse.

Long road back into games

Even though I have not yet released any titles, starting back on this trajectory has already been a long path for me. There was just so much stuff I didn't know about games development, and actually even software development in general when I really looked at myself. That's still an issue to this day, but I'm getting better, and at least I'm not fooling myself much as to what I know and don't know anymore.

My career for a long time did not involve much programming beyond small tools and occasional pieces of specialised algorithms here and there, and then later just enough proper development experience to get me really going before moving on to try games again, but not enough to prepare me for all the trials of developing a larger code-base from scratch. So I began pulling myself up to the next level by reading parts of some decent books and blogs/articles about C++ and patterns and refactoring and all sorts of stuff, and trying to put into practice these things only where they seemed to solve a problem I was having.

There were also deeper decisions that I had to make which challenged all my old ways, such as learning to trust the idea of third party libraries, to not reinvent the wheel as often, to accept STL as being efficient enough for my purposes, etc. It was probably a combination of work environments and mental blocks or denial or something, but it has taken a long time for this C64 coder to make the journey from zero-page memory to shared pointers and growable vectors and deep copies and lists of observers. It still stings when I must let some system library stream an mp3 track while I watch helplessly as it eats my frame rate even though it has hardware decode support. But at least I didn't have to learn how to decode an mp3, or how to implement my own driver for the codec hardware, so it has also been a breath of fresh air really.

So the coding mentality needed lots of attention, but there also turned out to be other skills which I had not thought much about before, such as how to get by with 2D and 3D productivity tools, and which ones to use in the first place, and how to draw anything at all when I'm not an artist, etc. Also I noticed that my maths has gotten rusty and I never was a maths guru, but luckily I still remember enough to get by.

Light at the end

I will continue to struggle with many things, big and small, and on many fronts, not just technical ones. But lately a light seems to be appearing at the end of it all, wherein I have a simple but unique game which is nearing a ready enough state for initial release on the iPhone and iPad. There is also another nearly-done game which has been put on hold until the current game is out there, and both of these games use a shared mass of library code which I have slowly built up over the last 4 years. The current game is a 2D speed-puzzle game (see home page, will update all that soon, with a proper video clip too), the other is a 2.5D platformer fighting game.

It's all nothing grand and it feels like there's not much to show for the years yet, but I'm happy with the small victories and lessons I've had thus far. It's opened my eyes to some things that many devs might think of as basic bread and butter stuff, and still much eye-opening needs to happen, but I'm working at it, and this blog is one more step toward trying to do better and get the dream underway.

Julian Crooke

Boo Radley Games