RevenantX / LiteEntitySystem

Pure C# HighLevel API for multiplayer games
Apache License 2.0
190 stars 22 forks source link

Switch & Future? #4

Closed genaray closed 1 year ago

genaray commented 1 year ago

First of all, this looks great! :)

Im currently using your LiteNetLib in a c# gameserver and implemented the rest of the logic by myself. E.g. Once an entity moved, its written to the NetManager using .SendNetSerializable<T>(...) and similar calls. Sending the stuff is happening once during the frame.

This is already working fine, however this add on looks very promising. I wonder how those two compare. E.g. are there any performance benefits from using LiteEntitySystem? Or does LiteEntitySystem allocate garbage or is even slower/faster in particular situations? ^^ When does it make sense to switch? And how long will you support this, what are the plans for the future?

RevenantX commented 1 year ago

@genaray this is Logic/Multiplayer Engine using LiteNetLib as transport. This isn't comparable things. LiteNetLib is like LLAPI (low level api) in Unity. This is highlevel api that has entities, players, controllers and all stuff needed for implementing games. It use similar concepts like Quake/Unreal/Source(CS:GO, HL, Dota).

Or does LiteEntitySystem allocate garbage or is even slower/faster in particular situations?

It allocates when you create new game entity. But in default loop after some little warmup it works without allocations/garbage.

When does it make sense to switch?

When you want perfect networking architecture that battle-tested for years :) And don't want impement it by yourself

And how long will you support this, what are the plans for the future?

I use this for my game and work project and i plan to support it forever because this is just like simpliest and open implementation of classic working architecture and i don't need more. This is really enough for all my projects (and future too). Also for questions better join discord https://discord.gg/FATFPdy