Releases: RevenantX/LiteEntitySystem
Releases Β· RevenantX/LiteEntitySystem
1.2.0
What's Changed
- Add SyncQueue by @s-rayleigh in #28
- Add a way to access a parent of a
SyncableFieldby @s-rayleigh in #32 - Tons of changes
Full Changelog: 1.0.1...1.2.0
1.1.0
What's Changed
Input rework
- Simplify and optimize input logic. InputProcessor<> logic moved inside HumanControllerLogic.
ReadInputremoved now you can just useHumanControllerLogic.CurrentInputand apply that input inisde Controlled entity or insideBeforeControlledUpdateGenerateInputremoved. Now to generate input you can callref var pendingInput = ref ModifyPendingInput()insideHumanControllerLogicthat returns reference to pending input packet that will be applied on next tick
Other changes
- Read tickrate from server (client don't need to set FPS)
- Better jitter calculation which makes better lerp-buffer size calculation
- Childs now synchronized with rollback support (from server->client)
- Improve
AddPredictedEntity - Add
EntityManager.GetEntityTypeFromClassId(ushort classId)method that returns Type from classId - Add
EntityManager.GetEntitySyncVarInfo(InternalEntity entity, IEntitySyncVarInfoPrinter resultPrinter)that allows read all syncvar values of entities. Can be used for debug tools - Add SyncQueue by @s-rayleigh in #28
- Optimize rollback code when there is many owned entities
- Remove
EntityList<T>. Now AVLTree or any other collection can be used to store Entites. - Many small optimizations
- More documented methods and enums
Full Changelog: 1.0.1...1.1.0
LiteEntitySystem 1.0.1 hotfix
- Fix possible error in Destroy logic
- Store controller actual (on ReadInput) input as variable (HumanControllerLogic.CurrentInput)
- Update docs
- Check for HumanControllerLogic instead of ControllerLogic in AddController
- Reduce client lerp buffer default size (from 100ms to 50ms) this can be adjusted in ClientEntityManager.PreferredBufferTimeHighest
- Fix method name typo in
AddSingleton
LiteEntitySystem 1.0.0
Initial release with all planned features
- .NET Standard 2.1 and pure C# (but with some IL magic)
- Can be used with Unity (2021.2 and later), Godot, Monogame or just pure .net
- Can be used for creation any multiplayer game (2d,3d,4d,...)
- Works with Unity IL2CPP
- Lag compensation
- Serialization of custom types (like strings,lists,arrays,jsons,etc)
- Synchronized variables (with optional notifications on change)
- Client-side prediction
- Client-side spawn prediction (for projectiles)
- Remote procedure calls (RPC) with compile-time checks
- Client input system
- Basic hierarchy system (childs, parent)
- Controllers and Pawns concept
- Interpolation system
- Delta-compressed state synchronization and input
- LZ4 compression of initial world state
- Also works as game logic engine
- LiteNetLib as default transport, but you can implement any other transport
- Also you can enable or disable sync of specific entities