Commit Graph

8 Commits

Author SHA1 Message Date
107c6a7382 [Add] Dynamic world chunk loading. 2025-09-17 20:07:02 +01:00
ad2a540554 [Refactor] Unify client and server player classes.
A bit of an architectural change before we progress further. Moved
player code into a shared PlayerBass class to elimnate some severe code
duplication while i was getting things working.
2025-09-16 00:10:35 +01:00
c083df9958 [Change] Implement 3D character controls/rotation. 2025-09-15 21:28:17 +01:00
f653c34baf [Change] Switched to an input-based reconcilation
Replaced the previous correction models with a full "Reconciliation by
Replaying Inputs system".
2025-09-14 04:25:10 +01:00
9b4aa84a30 feat(network): Server reconciliation and fix UDP messaging.
Initial implementation of server-side reconciliation for player
movement.

Clients respect the server as the authoritative source for game state.
In 'process_game_state', the client compares its locally predicted pos
with the state received from the server and snaps to the server's
position if they diverge.

Had to add a defensive check to the server-side Player constructor to
fix a bug where the first connecting client was incorrectly assigned an
ID of 0. This prevented it from sending or recieving any game data.
2025-09-14 01:33:35 +01:00
a2a8b052af feat(network): hybrid TCP/UDP networking model.
Moving from a TCP only model to a hybrid TCP/UDP system. This is
required to achieve a responsive, real-time multiplayer experience.
2025-09-14 00:52:18 +01:00
39a06147c8 feat(server): Implement game state broadcasting. 2025-09-13 17:49:09 +01:00
bd6281c9bc feat(server): Implement server-side game state.
* Added Player class to represent players on the server.
* Added Game class to manage the overall game state.
* Server now adds new players to the game state when they connect.
* Server now updates the players position in the game state on receiving
  a PlayerPosMessage.
2025-09-13 17:10:55 +01:00