MachinaCubicaCatalyst is a modular Minecraft-like clone with a strong focus on multiplayer networking, client prediction, and efficient world handling.
The architecture is split into three layers:
- Common — core engine code (world, entities, networking, utilities).
- Client — local simulation, rendering, input, and prediction.
- Server — authoritative world state and multiplayer sync.
The project is built with xmake, using clang-format/clang-tidy for consistency.
- Chunked block world — chunks stored as palette + bitarray in runtime memory.
- Procedural terrain — generated with Perlin noise (basic heightmap).
- Async chunk meshing — meshing tasks offloaded to a thread pool.
- Face culling in meshing — only visible block faces are meshed.
- Client–server architecture with clear separation of responsibilities.
- Strongly typed packets with serialization via
PacketStream. - Compression:
- All packets → compressed with zlib.
- Chunk packets → stored as palette + bitarray, compressed with RLE, then passed through zlib.
- Event-driven flow via
EventandEventManager.
- Basic interpolation with a 50ms delay for smoother client experience.
- Keeps client state responsive while syncing with the server.
- Logging & Assertions — integrated for debugging.
- Benchmarking — macros for lightweight profiling of hot paths.
- World generation:
- More advanced terrain features.
- Infinite world generation.
- Blocks:
- More block types.
- Block interaction system.
- Lighting:
- Improved and more realistic lighting model.
- Meshing:
- Greedy meshing for fewer vertices and improved performance.
- World display:
- Adaptive chunk display based on player position (LOD / view distance).
- Networking:
- More advanced client prediction and reconciliation.
- Area-of-interest filtering — only send chunk/entity updates to nearby players.
- Event-driven — decoupled internal and network communication.
- Performance-oriented — inline
.inlhot paths, async chunk meshing, layered compression. - Maintainable — modular structure (
Common,Client,Server), consistent tooling. - Scalable — designed for extending world generation, ECS gameplay, and networking.
- Clone the repo:
git clone https://github.com/devalexxx/MachinaCubicaCatalyst.git cd MachinaCubicaCatalyst - Configure and build:
xmake f -m <debug|release> xmake
- Run targets:
xmake run MCCServer xmake run MCCClient -p <port> -h <host>
