- Remove DeSerialization, RPC and Sync code
- Use Godot's built-in Rpc and Rset methods
- Use built-in Multiplayer with Root set to World
- Add World class, handles spawning,
getting players and blocks
- No more custom packets
- No more reflection or attributes
- Reintroduce LocalPlayer scene
- Keep it simple, stupid!
- Add SaveRegistry and SaveAttribute
- Add Save, which handles Saving / Loading
- Add SpawnRegistry and SpawnAttribute
Allows spawning objects by ID or Type
- PropertyDeSerializer handles de/serialization
of any [Sync] and [Save] properties
- Removing objects now done by
removing it from the scene tree
- Add "World" tab to EscapeMenu
- Modify Heartbit font's 1 and V characters
Splits NetworkSync into 4 distinct classes.
- SyncRegistry handles attribute related lookups
- Sync is now an abstract instance class
available through the Game instance
- Specialized implementations are available
for the Server and Client, one handling
changing and setting of synced objects,
the other simply handling Sync packets
- Can now re-open singleplayer server
so other players can join over internet
- Multiplayer menu supports all this
- Fix issue where players would also
send other players' position as RPCs
"Singleplayer" now connects to an integrated server
which runs in a completely separate scene tree
- Update to Godot 3.3.0
- Reorganize code into multiple subfolders & files
- Add Client and Server scenes & scripts, extend Game
- Add NetworkSync, syncs state for networked objects
- Add NetworkRPC, allows for C#-friendly RPC by
adding attribute to instance and static methods
- Replace most packets with RPC
- Allow de/serialization of Node / synced objects
- Remove LocalPlayer for now, add IsLocal to Player
- Add BlockPos and Facing structs