A simple Minecraft clone written in C using modern OpenGL with online multiplayer support.
Craft is an open-source Minecraft clone written in C using modern OpenGL with shaders. It provides block-based world building, terrain generation, and multiplayer gameplay, replicating core mechanics of Minecraft in a minimal codebase. The project solves the need for a lightweight, educational implementation of a voxel-based sandbox game.
Developers and hobbyists interested in 3D graphics programming, game development in C, or learning how Minecraft-like engines work. It's also suitable for players seeking a simple, self-hostable alternative to Minecraft.
Developers choose Craft for its clean, minimal codebase that demonstrates modern OpenGL techniques and multiplayer networking without the complexity of larger engines. It offers a fully playable Minecraft experience with self-hosting capabilities and cross-platform support.
A simple Minecraft clone written in C using modern OpenGL (shaders).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With just a few thousand lines of C, it cleanly demonstrates modern OpenGL, terrain generation, and multiplayer networking, making it ideal for learning game dev fundamentals.
Runs consistently on Windows, Mac, and Linux using GLFW for window management, with pre-compiled binaries available for easy access.
Implements frustum culling, ambient occlusion, and only renders exposed faces, optimizing performance in a voxel-based world as described in the implementation details.
Includes a Python-based server with real-time chunk synchronization and SQLite caching, allowing private online play despite the original public server being down.
Self-hosting requires compiling a C DLL and running a Python server, which is cumbersome and less scalable compared to dedicated game server solutions.
Focuses on core block mechanics without features like mobs, crafting systems, or dynamic weather, making it less engaging for long-term play.
The README admits floating-point precision problems at large coordinates, and chunk buffers are fully regenerated on block changes, which can impact smoothness in dynamic worlds.