Commit Graph

18 Commits

Author SHA1 Message Date
8c701d39b7 [Add] Added detailmap for more detailed terrain. 2025-09-17 23:14:48 +01:00
5d045e2fa7 [Fix] Issue with gravity sucking half the player into the ground. 2025-09-17 19:29:18 +01:00
e35c4b5d61 [Fix] Visible lighting seems between chunks.
Server now generates and sends an expanded 34x34 heightmap for each
chunk, which includes a 1-vertex border containing height information
from all adjacent chunks.

Client ChunkMesh class updated to consume this extra data, allowing it
to calcualte perfectly accurate normal vectors for all vertices,
including those at the very edge of a chunk.
2025-09-17 19:19:38 +01:00
744c41b8ce [Add] Terrain collision and gravity.
Physics and collision system to make players interact with the generated
terraine without falling through the world like lemmings.

It uses a shared bilinear interpolation function for terrain height for
smooth and consistant height queries on the client and server.
2025-09-16 22:13:15 +01:00
7ba0b348bc [Add] Initial terrain generation. 2025-09-16 20:49:00 +01:00
506356458a [Add] Noise Generation library. Credit: Jordan Peck.
https://github.com/Auburn/FastNoiseLite/tree/master
2025-09-16 19:09:54 +01:00
eb38a34c93 [Add] Camera modes, for first person/third person. 2025-09-16 18:59:57 +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
9bf8b277ff [Add] 3D orbit camera and refactor renderer. 2025-09-14 22:17:47 +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
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
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
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
a8a1ea44cf refactor(math): Replace GLM with custom math lib.
Replaced the GLM dependency with a custom math lib 'libbettola'
2025-09-13 02:25:13 +01:00