I read that awful interview with Peter Molyneux last week at Rock, Paper, Shotgun and one thing he said really made me empathize with the situation he finds himself in. It's something I think many people really don't appreciate and it went by pretty fast in that unbelievably long article. I'm not here to defend 22Cans. They've messed up on a grand scale. But I think that one thing he said is worth taking a further moment to consider:
"Anything that involves creativity, you may think it should be a defined process, but it's not. And the reason that it's not a defined process is that the people who work on it aren't robots, and you can't predict whether someone is going to be brilliant and you give them a piece of code to do and they do it in a day, or whether they're going to take a month to do it, and that's the problem with creativity. Being creative is a very, very unpredictable force, and you try your best. You try your best to predict these things but very often you can be wrong." - Peter Molyneux.
I've done a lot of software development. It mostly goes like this: analyze the problem, work out a solution, estimate the tasks, run through them one at a time, do a QA pass, and you have a finished software "something". I'm actually pretty good at estimating that sort of work and ran on or slightly-under budget on whatever I did. If you're making business software or an annual sports title, or a tetris clone, you can predict with reasonable certainty when things will be done.
Now try to do something that nobody has ever done before. Make a God game with extensive interactivity of every object in the world and emergent systems. Make an RTS that lets not four or 8 players play together, but thousands, operating not one, but hundreds of in-game avatars in real-time on a map not a few hundred metres on a side, but hundreds of kilometres on a side. You have 16 milliseconds and 1KB/second bandwidth in each direction. Go!
Making something new requires creativity and invention and occasional brilliance, and those are all things that are surprisingly difficult to predict. Even for people with tons of experience.
Yes, many of the things I've written for Miranda were known quantities and were finished as estimated: the accounting system, asset management, audio, database access and serialization, debugging tools, locale database, networking, OS abstraction, statistics, threading, unit tests, memory management, UI, the list goes on. Miranda is big, over 600 separate components, but big is not the difficulty. Big is not scary. Even big projects can be predictable.
The system I use to replicate unit state between clients and servers has gone through three major revisions, months of work each time. Every other RTS game uses lockstep simulation with input replication. Why not use that in Miranda? Because it doesn't scale to thousands of players and doesn't support join-in-progress (some do, but those solutions are just not viable in an MMO.) I've read of just one other game that uses a system even a little similar to Miranda (and unfortunately that was long after I had to figure out a solution.)
Even something that sounds like it should be a simple, solved problem: developing a delivery system for the game, was a huge challenge. Standard installation solutions just don't scale to hundreds of thousands of files and 50GB of data. This is the realm of companies with extensive MMO development experience like Funcom or Blizzard.
Unit movement in Miranda is like no other game I have ever heard of. Initially I spent months working out how to do long distance pathfinding on my gigantic, demand-loaded map. But that wasn't a complete unit movement system. It also needed collision resolution for hundreds of thousands of props plus hundreds of thousands more player units. So far I've done five months of work on unit movement solely so that players will be able to move hundreds of units into combat without needing a Google fibre connection.
Miranda has taken far longer than I would have imagined when I conceived of it. And until all of its many pieces are in place and I see it all run with thousands of players, I still can't be sure that it will work. That is the risk I've accepted to make something new.
It would have been smarter to simply put together a bunch of known technologies. I could have more accurately predicted what I was getting myself into and the risk would have been much more acceptable to people. But it wouldn't have been Miranda. To build this game I needed time to be creative, to experiment and refine and throw things away when they didn't work.
So when you ask me when it will be done, try to remember: "Being creative is a very, very unpredictable force, and you try your best. You try your best to predict these things but very often you can be wrong."
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.