Independent and hobbyist game developer — this story may be familiar to you. As a youth, you borrowed your parents’ Windows 2000 laptop to play some “3D Pinball Space Cadet”, only to discover much better games. Games that connect you to other players on the net. An entirely unique experience at the time, your interest was piqued and you got yourself into the classic online games of the time: World of Warcraft, Maple Story, Ragnarok Online, and many, many others.
“MMORPG” is a blanket term for online multiplayer games that are real-time and have a progression system. And gamers over the years have put a focus on the label and its associations — thousands of hours of content, a deep combat system, and endless ways to interact with your fellow players.
As a game developer, it is easy to also subscribe to these associations. Chances are, you’ve considered developing an MMO as a pipe dream, and chances are you’ve yet to complete such a project. Game development has been democratized, certainly, however for real-time multiplayer frameworks it is a different story. Barrier to entry is high, a working knowledge of network architecture is required, and frameworks are constantly updated and supplanted by the next big release.
So instead, consider an alternative in asynchronous multiplayer games!
In this article we’ll review some of the core concepts of asynchronous multiplayer, common methodologies, and applications.
Asynchronous Multiplayer Explained
What are asynchronous multiplayer games? Where MMOs are broadly considered to be real-time multiplayer, asynchronous games are similarly considered “networked”, but gameplay is usually not in real-time. Popular examples of asynchronous games that rose to fame over the years include FarmVille, Words With Friends, and Hearthstone.
There are plenty of features in games that are asynchronous, but do not classify the game as such. Common examples include leaderboards, “Inbox” style messaging between players, time trial “ghosts”, and others. These are all async ways for players to interact!