Time flies fast; way faster than one perceives it on a daily manner. Days and weeks may sometimes seem long and boring, but months fade away mostly unnoticed, and with them, years. A few days ago Alexland turned three years old. I must say I am a bit surprised (and ashamed, since I haven't really finished any other project since then) at how quick this came. Still, this might be a good time to reflect on a few things.
How to make a game: just do it
Considering what I wrote about failing to release anything new, Alexland is a rather nice example of a game created quickly and without any major problems. The first version of the game was created in about three months, out of which some time was spent more or learning how to properly use the libraries, instead of writing truly game-related code. The code itself, looking at it now, is complete crap. Procedural, everything declared globally, with lots of magic numbers. But hey, unlike other (unfinished) projects, it works! This leads me to a simple conclusion: do not spend too much time thinking about the code. Just make it work. Unless you create an overly complex computing horror which will cause the game to run at 10FPS, having a poorly written gameplay is worth a thousand times more than having done only half of your ultra-well organised code. Optimizing is hell, yes; but you gotta have anything to optimize first.
My way or the highway
It's always good to share ideas. One of the reasons Alexland turned out, in my opinion, quite good in design is that ŻbiX and me discussed almost everything. Yes, he did the pixels, I did the code, he didn't tell me how to keytap, I didn't tell him how to draw, but most aspects of the game directly related to user experience have a bit of consensus to them. Sometimes he said something behaves a bit odd, sometimes I said I don't really like a particular look.
The more, the merrier... or is it?
To be interesting, the game world should be diverse. But it's also remember that diversity consists of many factors. A player encountering hordes of monsters differing only by their looks is going to get bored quickly. That's why it's important for them to behave differently, to challenge the player in various ways. But no matter how attractive the idea, you must always think whether it will fit into the gameplay. For some time, we thought about different enemy types having different resistances towards weapons. This would require the player to change his weapons and make the game more challenging. But then we thought to ourselves, that many game weapons handle completely differently - whereas the game, in the first place, should be enjoyable for as many people as possible. What's more, changing weapons would require them to be easily accessible - and randomly dropped definitely doesn't fit into this definition. In the end, we decided it's better not to force the player to anything and just rely on the random god. This way, a new player seeing a weapon drop for the first time will be tempted to try it, whereas an experienced player will know whether he wants it or not. And, yeah, if an experienced player gets a bad score, he can always blame it on not getting his favourite weapon. A perfect reason to play again, isn't it?
Look what I did, ma!
Quite possibly you don't want anyone around to know you're making a game. Maybe you don't want to bring false hopes on a project you may not finish, or maybe you want to astonish everyone with your work. But still, you're going to need playtesters. Actually this is one mistake we've made with Alexland, as it didn't have any playtesters besides ŻbiX and me - and, oh well, as an author, one is always less critical towards his work. Some of the things people were complaining about after we released the first version of the game were fairly obvious and would have been improved if we only showed the game to a handful of friends. The first patch focused mainly on improving user experience, rather than removing bugs.
No, wait, come back!
You probably want to keep people playing your game. To do so, you should, of course, react to their opinions. If people are annoyed by an aspect of gameplay you find essential to the game, consider creating another game mode or difficulty level than changes this behaviour. In short: create new content. Providing players with new things to check out will strengthen their present interest, but many people who become dissatisfied will not to bothered to come back. Don't expect people to come pouring back when you throw in something new. That said, it may be better to keep the news coming in small doses, but steadily, rather than making big updates. Partly one of the reasons Alexland's net scores are almost empty: a feature implemented too late, when the interest already started to fade.
I beat the big bad, now what?
In a nutshell: hidden content is nice. You may feel like adding stuff most players will not see, but hey - if they don't like the game, they probably won't even see most of the basic content. Unlocking content feels rewarding, feels good. If it didn't, we wouldn't have achievements in almost every major game coming out nowadays. So yeah, give the player reasons to stay with you for a while. Again, a mistake we made: the achievement system was introduced too late.
Yeah man, those were the times
I think that, even after all this time, the game didn't really get much old; it's still quite enjoyable. Or is it? I would love to listen to any opinions you guys might have. (No files in the download section; only external links in the game description. Sorry about that.) They may help me when working on some new projects. Hell, maybe we could even do an Alexland 2 one day? Time will show.