userIan Hendersoncancel
branchrust_reboot/main/syncvarscancel

43 Commits over 120 Days - 0.01cph!

3 Days Ago
Generation fixes
3 Days Ago
Allow sending sync vars to specific players Correct send info from client -> server
3 Days Ago
Turn packing off by default (this is so the server can send packets to different endpoints, eg player x, or y)
3 Days Ago
Protobuf support for sync vars
3 Days Ago
Throw error if too many sync vars are defined
3 Days Ago
Developer logging and disconnect/kick for incorrect replications on both client/server
3 Days Ago
Some fixes for client authoritative queue packing
3 Days Ago
Seperate client and server packing queues due to listen servers messing everything up Client now uses packed sending Cleanup
3 Days Ago
Batching system when sending packed sync vars. If all packed syncvars require a larger bitmask then split it over multiple send cycles
3 Days Ago
Swap syncvar system over to using bytes rather than ushorts. We will never reach max 255 per entity as the current queue limit is 32 (due to the bitmask), even if we split the queue its fine
3 Days Ago
Server receive packed sync var methods
3 Days Ago
main ➡️ syncvars
4 Days Ago
Ensure child classes of SyncVar are picked up in SyncVar Codegen Initial profiling pass. Virtually no memory overhead for send/receive, and very little for the queue (pooled)
4 Days Ago
Fix non packed syncvars attempting to use the cheap int ids used with regular packed sync vars (will try and incorporate this before release)
4 Days Ago
Locally cache a reference to queue sending action for each entity that needs it - use that for invoke repeating and cancel invoke
4 Days Ago
Cleanup start/stop queue methods Return hashset to the pool on stop
4 Days Ago
Conditional sync vars now force sending. We use force here due to memory. onditionals could be added to the queue for specific values, and then by the time the queue processes it the value may have changed. Invoking force prevents us from having to maintain a dictionary of values for every entity
4 Days Ago
Server -> Client Syncvars properly syncing up via a fixed repeating queue Cancel repeating invoke on entity destroy Bitmask setup as a uint - 32 sync vars max per class
5 Days Ago
Some minor fixes Experimenting with different queue implementation
6 Days Ago
main ➡️ syncvars
6 Days Ago
Setup queuing and packing methods. SyncVars are added to each entities queue. Setup Sync() and SyncImmediate(), behaves similarly to SendNetworkUpdate() and SendNetworkUpdateImmediate() Setup standardised getter method to retreive sync vars current values without using reflection or any pre existing list.
6 Days Ago
Swap syncvars to send shorts instead. (Id is class relative so no problem with duplicates)
7 Days Ago
Equal, do not subscribing to delegate. Reduces some allocations.
7 Days Ago
Pregenerate field name ids rather than running it through string pool at runtime Very initial setup to support packed syncvars
7 Days Ago
Fixed client write and send methods trying to use server write and send Fixed server recieve method being hooked up wrongly
7 Days Ago
Can mark SyncVars as [ClientAuthority] This changes the ifdef blocks used in the resulting replicate and sync methods Changed test code to include a client -> server Syncvar
7 Days Ago
Add server receive methods Add CLIENT & SERVER preprocessor tags in generation step
7 Days Ago
main ➡️ syncvars
8 Days Ago
Missed files
8 Days Ago
First compiling example of cheaper single server -> client sync vars 🎉 Ensure base entity initialises SyncVar hooks Clearer naming for handlers, Sync and Replicate
8 Days Ago
Missed files
8 Days Ago
Client.Connection receive methods. Initial code generator to hook SyncVar OnValueChanged method to our SendSyncVar method (server only) Only give a damn about single SyncVars for now
8 Days Ago
BaseEntity Single SyncVar header, object and send methods Minor SyncVar code cleanup Enable encryption
8 Days Ago
main ->syncvars
19 Days Ago
main -> syncvars
3 Months Ago
+ BaseEntity.SyncVar (doesn't compile)
3 Months Ago
Added implicit conversion operators
3 Months Ago
Add correct list of allowed types
3 Months Ago
Proper client receive method
3 Months Ago
main -> syncvars
4 Months Ago
Runtime hash set to check for allowed types. This should be done in code gen instead
4 Months Ago
Added SyncVarConditional, this ensures a Func successfully return true before calling OnValueSync
4 Months Ago
Created base SyncVar class. Use generics and hook the getter/setter instead to save on memory