Parallel Simaltion Islands

Hello,

I want to write sandox game with Dedicated Server like Realm of the Mad God.
Game would be splitted into serveral locations, that are not connected between each other and could be simulated in different paralell threads.
As I understand, it is not possible to that?

So there are my questions:

  1. How should I organize Dedicated Server so it would be able to eat as much CPU as it is possible per each Application instance.

  2. How should I organize RPC calls like in that case:
    [ClientRpc]
    [ServerRpc]

  3. Is it better to write whole game logic without Unity, and then just use Unity for rendering?

PS: I am pretty new to Unity so please be kind to me :slight_smile:

I can infer as much from your questions. :wink:
The game you intend to make would be a challenge even for the most experienced developer. Scale it down and start with something much simpler than that.
I would advice to first experiment with any kind of multiplayer game, going through the manual and tutorials. It will be a humbling experience just to get the basics right. It‘s one thing to make a game, it‘s five more things on top to make an online game. Don‘t take my word for it, listen to what they are saying. :wink:

https://www.youtube.com/watch?v=vmyxf_coYcA

Hello,
Thank you for response!

I am experienced GameDev, but on other platform. I have no problem with working on multiplayer, and I do understand the amount of work added by adding MP.
Unity is several times easier to work with, than what I do at my full time job.
But anyway thank you for convincing me to go into MP ;).

Anyway I still would like to make MP game.
All I need is knowledge how to make a DS use as much CPU cores, as it could, without involving sharding.

If you really need peak performance then you’ll want to use Netcode for Entities, and the Entities component system. Unity recently released the new Megacity Multiplayer demo built with ECS.

Of course you can still use just the Job system with Netcode for GameObjects.

In any case my initial advice still stands: experiment. Or rather: prototype. :wink:
You want to make sure it’s really the server CPU that is going to be the bottleneck. Because if you have 100+ players running about, and depending on what they do and how optimized bandwidth is, you may be looking at a 10-50 MB/s bandwidth usage on the server side during peak times. And the server could be heavily taxed with CPU tasks within Netcode alone (presumably much less so with NfE).