Commit Graph

11 Commits

Author SHA1 Message Date
c083df9958 [Change] Implement 3D character controls/rotation. 2025-09-15 21:28:17 +01:00
e208f49674 [Add] Gone with 3D renderer instead. added z coord. 2025-09-14 20:26:37 +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
5b30ab67c1 refactor(server): networking and fix mem leak. 2025-09-13 22:21:53 +01:00
5944663017 feat: Implement multiplayer functionality.
- Server can handle multiple clients simultaneously.
- Client can see other players in the game.
- Server broadcasts the game state to all clients.
- Client receives the game state and renders the other players.
- Server assigns a unique ID to each player.
- Client receives its player ID form the server.
- Server handles client disconnections.. Kinda... Server is ignoring
  SIGPIPE signal.
- Server and client signals are non-blocking.
- Moved player objects off the stack and onto the heap.
2025-09-13 19:44:35 +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
d21a0df285 feat(server) Implement binary messaging protocol. 2025-09-13 16:33:38 +01:00
6e935918a3 feat(server) Added client/server for online play
Note: This is fucking broken! it's too early in the morning. Fix
tomorrow.
2025-09-13 05:22:30 +01:00