How do you design your project so that you can never finish it?
Dream big! That’s all it takes. Think about all the millions of people out there that are going to love your game, then think about everything you’ll need to do to support that!
In general, when I design a program, I hate to box myself in early. I always want to make everything as flexible as possible so that later, I can do anything I want. This is a recipe for, if not disaster, at least a very long development time. Flexibility, in many cases, is complex, especially if it has to be robust. Planning for everything takes a very long time.
With this project, I have to keep reminding myself that I’m not making World of Warcraft, as much as I might like to. It would be overwhelming, to say the least, if my customer base came even within two orders of magnitude of theirs. I have to keep my design to a reasonable scale. Is it likely the game will have 100,000 customers? Only one indie* game that I’m aware of has reached that many subscribers. No, I don’t think it’s likely. Is it more likely the ceiling is somewhere around 10,000 subscribers? Yes, it’s more likely, though there haven’t been many indie MMO’s that have done that well, either.
There is a big difference in the amount of code necessary to support the difference between those two numbers, though, and if I were to spend my time aiming for the larger one, I might never get finished as I add functionality to support the larger numbers of servers required.
The thing is, I like figuring out the scale types of problems. It’s fun. But going down that road would be a project killer, and I have to keep reminding myself of that.
So, with that in mind, here is what I need to keep telling myself when designing the project:
Design for 1000 concurrent players. More is a waste of time.
* My definition of indie is a couple of people, no more than ten, coding in their bedroom for years, hosting it themselves, and never involving a publisher.
