"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
- Add CreativeBuilding node / script,
handles placing and breaking of blocks
- Move spawn block packets to static
BlockPackets class, add destroy packet
- Move Cursor to its own canvas layer so
its position can be used in other scripts
- Use viewport transform instead of
camera position in Background script
- Allow registering de/serializer "generators"
- Add generators for arrays, lists and dictionaries
- Move de/serialization code into extra file
(still part of NetworkAPI thanks to "partial")
- Synchronize existing blocks to new players
- By default, process everything when paused
- PlayerContainer.PauseMode is set
to Stop when the game starts up
- When multiplayer is on, its
PauseMode is set to Process
- Add background which scrolls with viewport
- Remove box made of blocks, use simple platform
- Players below y > 9000 are teleported back
- Add a couple of Network shorthand properties:
- IsMultiplayerReady - Is multiplayer fully ready?
- IsAuthoratative - Is singleplayer or server?
- Players - Enumerable of all current players
- Make LocalPlayer.Velocity public
- Add LocalPlayer.ResetPosition call
- Rpc and Rset extension methods now use
Network shorthands and Player instances
The high-level multiplayer API in Godot appears
to introduce ways for players to cheat too easily.
As a precaution, players can now hopefully only
send messages to the server, which relays them to
each player, after potentially validating them.
- Player's Name is set to their network ID,
DisplayName accessible through new property
- Add Authenticating NetworkStatus:
This is where new players will send data
about themselves, currently appearance.
- Use _Ready instead of _EnterTree where applicable
- Add Init extension method:
Allows initializing members before the
node has been added to the scene tree.
- Add Rpc/RsetExcept extension methods
- Appearance (name and color) can be changed
- Appearance is synced to other players
- Split tabs into multiple scripts
- Use nameof() where applicable
The escape menu pauses the game and
will allow for creating and connecting to
multiplayer games.
- Move scenes to scene/ folder
- Move scripts to src/ folder
- Add Hearbit font and CREDITS.md
- Remove git integration (we have VS Code)