netEngineX - MMO Server Architecture using C# and Unity (using lidgren as UDP layer)

797 views
Skip to first unread message

Luiz Alberto Zaiats

unread,
May 21, 2018, 3:59:30 PM5/21/18
to lidgren-network-gen3
Hi all! I've been working on a new tool (lib) to help me and my team on our current project and I just wanted to share it with you!


All feedback is appreciated!

---

Welcome to netEngineX (temporary name) showcase! A distributed MMO server architecture using C# and Unity (other game engines soon)!

Basically, netEngineX consists of three parts:
1) State Server (entities and infrastructure management)
2) Workers (unity instances for world simulation)
3) Clients (unity instances for players)

This is a simple demo to show the current state of this technology:
1) We start a spectator client @ 10 statesyncs per second (no player controlled character for this demo)
2) We spawn 50 dumb AIs with one CharacterController each;
3) We spawn 1 Worker and assign the 50 AIs to its simulation;
4) We spawn more 550 dumb AIs and assign to this Worker simulation;
5) As you can see, the Worker FPS is low due to 600 CharacterControllers...
6) We spawn 2 more Workers and divide the simulation over the 3 Workers;
7) Now the load is distributed over the 3 Workers \o/
8) Now we show some more cool features like: Auto Worker Assignment when Worker dies, Stopped game simulation without Workers and other stuff... =)

* One client is connected as spectator so you can see that all the entities redistribution works seamlessly...

** netEngineX have built-in Network LOD using groups to save bandwidth...

*** This is not a real game, but if you can imagine all the possibilities =) All Workers are running locally, but yes, they can be run across the network... We are using CharacterController (heavy) to simulate AIs so we have a more close simulation of (600) player controlled characters...

Suggestions and questions, feel free to email me!

Thanks for watching!

Johnny Longstockings

unread,
Nov 7, 2018, 11:32:14 PM11/7/18
to lidgren-network-gen3
What is the network bandwidth usage of your state syncs?

Luiz Alberto Zaiats

unread,
Nov 8, 2018, 9:14:58 AM11/8/18
to lidgren-ne...@googlegroups.com
Hi Johnny,

The state sync on this example is the size of a Vector3, Quaternion and Float (for testing purposes only). The size of the state sync is "defined" by you when you extend the StateSyncMessage with your entity properties.

LZ

--
You received this message because you are subscribed to the Google Groups "lidgren-network-gen3" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lidgren-network-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Johnny Longstockings

unread,
Nov 8, 2018, 9:55:29 PM11/8/18
to lidgren-network-gen3
Got a version that doesn't require Unity?  Not everyone likes Unity or it's approach with MonoBehaviors.  A separated module of the core networking and a unity integration would be ideal.


On Monday, May 21, 2018 at 1:59:30 PM UTC-6, Luiz Alberto Zaiats wrote:

Johnny Longstockings

unread,
Nov 8, 2018, 9:56:52 PM11/8/18
to lidgren-network-gen3
Oh nevermind, just realized that there is no information on it being public/open sourced.


On Monday, May 21, 2018 at 1:59:30 PM UTC-6, Luiz Alberto Zaiats wrote:
Reply all
Reply to author
Forward
0 new messages