Skip to content

Releases: RevenantX/LiteEntitySystem

1.2.0

02 Feb 11:26

Choose a tag to compare

What's Changed

Full Changelog: 1.0.1...1.2.0

1.1.0

02 Feb 11:25

Choose a tag to compare

What's Changed

Input rework

  • Simplify and optimize input logic. InputProcessor<> logic moved inside HumanControllerLogic.
  • ReadInput removed now you can just use HumanControllerLogic.CurrentInput and apply that input inisde Controlled entity or inside BeforeControlledUpdate
  • GenerateInput removed. Now to generate input you can call ref var pendingInput = ref ModifyPendingInput() inside HumanControllerLogic that 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

19 Nov 17:08

Choose a tag to compare

  • 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

13 Nov 11:49

Choose a tag to compare

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