A General Solution to Multiplayer Online Non-streaming Games

I have spent three years working on a project called World_Gate. It is a platform where you can build, run and share a multi-agent strategic environment, i.e., a world.
And along the way I think I got a general solution to multiplayer online non-streaming games. So I’d like to share what I’ve got so far.

Due to the bulk of the contents, I’ll discuss it in several articles. The index will be:

  1. System & Session
  2. Synchronization
  3. Field of View
  4. Realtime Strategy
  5. Network exception
  6. Security
  7. Scale Out

The first one deals with the architecture about this solution. 2-4 are about game logic. 5-7 are about network.
Although I designed it with strategy game in mind, it can be applied to other types such as RPG or puzzle, as long as it is not of streaming nature.

What do I mean by “streaming” and “non-streaming”? It may be hard to explain unless you understand the architecture of the solution. But I can give a few examples here for the time being.
Board games, turn-based strategy/rgp (e.g. Hearthstone), puzzle games (all match-3), RTS (e.g. Age of Empire), MOBA (League of Legends) are generally non-streaming games.
ACT (e.g. King of Fighters), FPS (e.g. Counter Strike) are generally streaming games.

In fact the commonly used game type doesn’t matter in this solution, since I defined strategy in a very broad sense. Strategy is making decisions to reach certain goals under restricted conditions.
In this sense, RPG is also strategy games. You click somewhere(making decision) to move your character(goal) inside the map(condition).
We’ll talk about it more in the “Realtime Strategy” article.

In these articles I will refer to World_Gate from time to time. This shouldn’t be surprising since World_Gate is an implementation of this solution. By showing something working, I can demonstrate my point better.
However, I will not go into details on how to use World_Gate to make games. The focus is architecture and design choice. For the same reason there’s no coding in these articles.
As long as the things, games or academic research, you want to make falls into my definition of strategy, you can use World_Gate to achieve that with minimum cost. But that’s out of the scope of these articles. You can check the tutorials here.

I claim this solution can:

  • Solve any multiplayer online non-streaming games
  • Work properly even under poor network conditions
  • Handle millions of users at the same time(TBD)

The first point is just restating it is a general solution to multiplayer online non-streaming games.
The second point is important for programs of online nature. I personally verified that users can still play games normally when the network speed is 10-20 kbps with occasionally packet loss.
The third point holds in theory but not yet examined by practice. Up to the time this article is written, World_Gate only has very few users. So that is to be determined.