Skip to content

Craft

A small Minecraft-style voxel game written in C with modern OpenGL, with optional Python-based multiplayer.

Stars
11.1k
Forks
1.5k
Licence
MIT
Language
C
Last update
2.6 years ago
Type
App

No commits in over a year — check for forks or alternatives before adopting.

What it is

Craft is a simple open-source game that imitates the block-building style of Minecraft. It is written in a few thousand lines of C and uses modern OpenGL shaders for graphics. It saves world changes to a SQLite database and includes a Python server for online play.

  • Build and break blocks in a procedurally generated world that is saved between sessions
  • Study how chunk-based terrain generation and exposed-face rendering are implemented
  • Host your own multiplayer server using the included Python server
  • Experiment with adding new block types, which the README says can be done easily

Great for

  • Developers who want to read a compact, real example of a voxel game in C
  • Students learning OpenGL, shaders, or how game worlds are chunked and saved
  • People who want to run a small Minecraft-like sandbox on their own machine
  • Hobbyists interested in self-hosting a simple multiplayer game server

Not ideal for

  • Players looking for the full Minecraft experience, since it is a simplified clone with a limited feature set
  • People who want a ready-to-run download, since the README points to binaries only on the website and otherwise asks you to build from source
  • Anyone who needs a maintained, actively developed project, since the last push was in April 2024 and the README notes the original public server was taken down
Step-by-step guide: how to use CraftInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: CMake · A C compiler such as GCC or MinGW on Windows · GLEW, GLFW build dependencies, and libcurl (Linux) · Python for the optional multiplayer server

    Clone the repository

    git clone https://github.com/fogleman/Craft.git

    Enter the project folder

    cd Craft

    Generate build files with CMake

    cmake .

    Compile the game

    make
  2. 2

    Run it

    • Install the dependencies listed for your operating system in the README
    • Clone the repository and run cmake . followed by make
    • Start the game with ./craft
    • Use WASD to move, Space to jump, and left or right click to break or place blocks
  3. 3

    Get the most out of it

    • Use the /online HOST [PORT] command or launch with ./craft [HOST [PORT]] to join a server
    • Run your own server with the included Python server.py after building the terrain DLL as described in the README
    • Use the Tab key to switch between walking and flying, and F for orthographic view
    • Use the P key for a picture-in-picture view of other players, and O to observe them in the main view
    • Read the Implementation Details section to see how chunks, rendering, and the database work before modifying the code

Downloads

Strengths

  • Compact codebase that is easier to read than a full commercial game engine
  • Uses modern OpenGL with shaders and no deprecated fixed-function calls, as described in the README
  • Documented implementation details covering rendering, database, and multiplayer protocol

Trade-offs

  • The README says the public multiplayer server has been taken down, so you must self-host to play online
  • Official binaries are only described for Mac and Windows on the website, and the latest release has no binaries attached
  • Building from source requires installing several dependencies and a compiler toolchain

How it compares

ProjectStarsTypeLevelUpdatedBest for
Craft (this)11.1kAppintermediate2.6 years agoDevelopers who want to read a compact, real example of a voxel game in C
pixijs48.6kLibraryintermediate6 days agoWeb developers building interactive 2D graphics or animations
osu19.4kAppintermediate4 days agoRhythm game fans who want a free, open-source client
204813.5kAppbeginner2.0 years agoPeople who want to play 2048 without installing anything, via the hosted site
renderdoc11.3kAppintermediate5 days agoGraphics programmers debugging their own Vulkan, D3D11, D3D12, or OpenGL applications
awesome-cpp74.2kCurated listbeginner6 days agoC++ developers looking for a library for a specific task

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.