The quick answer:
Nevertheless, if you do choose to make an MMO you have many questions and choices to make and need some guidance.
But there is a single truth behind all of these questions, and a single great answer to solve practically all of them …
But first … why this post?
A list of largely irrelevant questions regarding network choice and CCUs for an MMO recently reached me on my Discord channel.
I intend to use this post as a go-to spot in the future because I’ve been giving feedback to motivated MMO developers for 20+ years.
There’s but one general consensus: see the meme.
Let’s first set your head straight and then I’ll hand you the single most important advice for aspiring MMO developers.
ONE does not simply …
No, YOU alone won’t simply make one!
Period. End of story.
You will be hard pressed to find more than one or two solo-developed MMO games that have or had anything close to a sustainable player base with an active lifetime measured in years.
What makes you think that yours will make it?
To meet the “massive” adjective one has to put similarly massive amounts of content in the game to get players interested AND hooked for a long time.
And most of that isn’t programming work!
No one person can simply make content on that scale. Not even if you buy a lot of assets – you’d still be extremely busy for years putting it all together into the world and make it a coherent whole.
But maybe you’ve got that figured out. Somehow. Creative content creation through generative algorithms and artificial intelligence?
Regardless, you are likely heavily focused on making the right technical choices if you came to read this article. Commonly involving choices for databases, server hosting, realtime networking and all that …
So, here’s what you REALLY need to know:
The ONE thing to do …
Separate your project from technology choices as much as possible.
Defer picking the “best technology” as long as possible.
A sound software architecture makes that possible. If you have little to no idea at this point how to do so … you’re out. Sorry.
If you have little to no idea how to write code that not only allows you to defer making the database and networking technology choices, but also let’s you swap out one for another without much friction, you have a long road ahead of you learning the software architectural patterns that make this possible.
Once you got that expertise you can go back to making that MMO game you wanted to start two or three years ago.
Technology matters not
Nevertheless: you can still learn a lot! So don’t let that stop you, just stop dreaming about the game ever hitting hundreds of CCUs.
And if you think you can make all the right technology choices from the start, you’re sadly mistaken.
One .. just .. can’t. No matter how hard you research.
The best approach is to be prepared for changes!
Accept, as an inevitable course of action, that you can take your MMO implementation only so far before you’ll have to start all over again.
But this time you can apply all the wisdom you gained from that first project. And before you know it, you’ll be in your third rewrite. And then a fourth. Such is the life of any aspiring game developer.
For MMO developers this gets scaled up MASSIVELY.
Do you STILL need to look for that technology that gets you past 500 CCUs?
Experience matters most!
Just get going with whatever choices make it easy for you to make progress!
You will first have to gain experience making MMOs.
Then, maybe, you’ll get the experience of having a published MMO that caters to a very, very, diminishingly small audience.
Perhaps your friends and their peers and families and all together, if you’re lucky, you’ll get to reach 50 CCUs at a single point in time due to a coordinated event.
Just setting your head straight. This will be a MASSIVE success for you, nevertheless!
One last thing!
You may still be adamant to make sound technological choices.
After all, you’ve got enough software development experience under your belt.
Okay, in this case …
It still doesn’t matter! Most of these choices are superficial anyway. Most of the available technologies WILL allow you to take the game far enough!
Any networking framework can do hundreds of CCUs easily. Any database can easily have millions of records and transactions. Any rented server can run and serve multiple instances of your game.
The differences are marginal and heavily depend on the implementation.
It mostly depends on how you use the technology, not what technology you use.
With a couple hundred players, it is ENTIRELY up to you to program your game efficiently so it doesn’t tank. Definitely way before you hit any technology roadblocks (aka ‘hard limits’).
And when you think you’ve actually hit a hard limit, tempting you to switch database or networking tech, you should spend time on analyzing and profiling your SQL queries and your network traffic.
More often than not you’ll realize you’ve done something terribly stupid that wastes performance by a factor of ten to ten thousand!
Such as querying the database for a single record at a time, hundreds of times, every frame.
Or synchronizing every projectile’s position in the game among all connected players, hundreds of players, every tick.
Yeah, that ought to sound like the stupid dumb sh1t that it is.
Still, you’ll be writing code like that without knowing it. For the simple reason that you have no experience with one of the technologies in your game.
Multiply that by the number of technologies and features you have no experience with. You’ll have to accept that the number one roadblock for a decent performance of your game is …
It is entirely up to YOU!
If you are most concerned with how your MMO’s performance scales, spend 99% of your time profiling and optimizing your own code!
Prototype and analyze various approaches to implementing a given feature. These give you the most insights.
The underlying tech stack actually matters very little. Stop wasting time on analyzing the performance of the various technology choices available to you.
The differences you’ll be able to measure are extremely unlikely to ever affect your project in a negative way.
You are only wasting time on technology concerns because subconsciously, you want to be stuck in analysis paralysis. Deep down inside, you know that you’re in way over your head.
Like the saying goes … ONE does not simply make an MMO. 😉
But don’t let that stop you. If you’re in it for the experience, then that’s what makes it worth doing!