30 October 2010
After a few projects I'm still keeping a lid on, for now, I've decided to start something else, which I can blog about from the start. I hope to describe my process of developing the game with fairly regular updates.
Typically, my game-creation process starts with an interesting idea. This may be a way of generating an effect, of doing some process very efficiently, or an aspect of gameplay I'd like to explore. I make something to test this out. If it looks like it has potential, I spend some time thinking about how to make this into a full game and fully explore its potential.
I then move on to full development, and develop the game engine from the inside, out. That is, first I get something which draws the screen (usually with placeholder graphics), then some sort of game loop, then progressively more of the game itself. Making the game fun is critical - I abandon concepts early on if I can't get the gameplay to work. If the basic game works, I try to push it as far as it'll go, or at least pick all the low-hanging fruit. Then I stop, before I repeat myself. When I see what I've got I then add the non-game stuff like the title menu, options, the loading screen and so on. That way they don't need to be updated as the game develops.
Because I always aim to make something which is different, I don't have much of a code library. I find that actually typing in code is only a very small proportion of game development anyway - understanding what is needed in the first place is most of the effort.
Polishing is the final thing to do, which always takes a long time. This involves tweaking the level progression, optimising code, and playing the game through for bugs. I also try to get friends to playtest the game and watch what they do. On a sidenote here - balancing is fantastically important, but it can't be done at an early stage. It seems to be a common mistake amongst beginners to think that game components can be balanced in isolation before the game code is even written. If you can't solve the three body problem, you won't be able to predict the feel of a game with many interacting objects. Just as you shouldn't waste your time with premature optimisation, you shouldn't attempt to balance gameplay until you have the full context.
I expect most of the material in this series to be in the early stages of this process, about how I plan the game and develop assets - I won't detail the boring stuff.
The project idea
It occurred to me that I have lots of game icons on my front page, and it would be fun to make one of them a game itself. This lead to me challenging myself to make a serious game in 64 by 64 pixels. There may be lots of good reasons not to do this, but I'm doing it anyway. On the plus side, I'm not worried about people copying the basic idea, so I can safely blog everything.
In fact, it would be very interesting if anyone else were to take the Keyhole Challenge!
Making the game dimensions small does have some advantages. The graphics can be within my limited drawing capacity. (The down-sides I'll document as I go along.)
Thinking about this restriction some more, I decided to make a game about exploration. I've previously found that a small view onto a larger environment can make it much more intriguing. Mazes become something to explore rather than to trace. Small 2D platformers have been done before - for example, Knytt (free, PC download), but I'm hoping to approach things from a different angle.
A problem I have with platform games (and indeed, games in general) is the almost universal focus on killing things. Why is that? I don't mind the occasional gung-ho game, but why to the exclusion of all else?
One concept I've wanted to incorporate into a game for many years is the ability to take photos. This fits really well with exploration, and there are many possibilites for development of this.
A game which covers both these points is Beyond Good and Evil.
This had gorgeous, lush environments to explore, and photography was integral to the gameplay. Indeed, you could build a collection of pictures you'd taken of every type of creature you met.
But frustratingly, this was interspersed with combat - often wiping out those creatures. It ended up feeling a bit... well, "travel the world, meet interesting people - then kill them."
Therefore, I hope to have the player not killing anything. Some of the animals may be dangerous, but the player is a traveller in their world, not an invader.
I think that's probably enough to begin with, next time I'll talk about my approach to generating a massive, detailed and interesting environment.