# fogleman/craft

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/fogleman-craft).**

11,021 stars · 1,435 forks · C · MIT

## Links

- GitHub: https://github.com/fogleman/Craft
- Homepage: http://www.michaelfogleman.com/craft/
- awesome-repositories: https://awesome-repositories.com/repository/fogleman-craft.md

## Description

Craft is a multiplayer voxel sandbox written in C. It utilizes an OpenGL voxel engine to render a block-based world and implements an infinite terrain generator that uses noise functions to create deterministic, procedural landscapes.

The project features a networked environment where players can build and modify a shared world using socket-based state synchronization. To maintain consistency across sessions, it employs a voxel world database to store and retrieve modified block coordinates.

The system covers a range of capabilities including 3D collision detection for character movement, tools for voxel structure editing, and an environmental simulation for a dynamic day-night cycle.

## Tags

### Game Development

- [Voxel Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/voxel-engines.md) — Features a custom 3D engine specifically architected for rendering and manipulating voxel environments.
- [Client-Server Architectures](https://awesome-repositories.com/f/game-development/client-server-architectures.md) — Implements a client-server model to separate game logic and maintain a shared world state.
- [Noise-Based Terrain Generation](https://awesome-repositories.com/f/game-development/noise-based-terrain-generation.md) — Uses noise functions to create a deterministic, infinite, and procedural voxel landscape.
- [Voxel World Generation](https://awesome-repositories.com/f/game-development/simulation-engines/simulation-worlds/voxel-world-generation.md) — Implements a deterministic infinite terrain generator using noise functions to create procedural voxel landscapes. ([source](https://github.com/fogleman/craft#readme))
- [Procedural Generation](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/procedural-generation.md) — Uses noise functions to automatically generate infinite and natural landscapes without manual design.
- [Infinite Terrain Generators](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/procedural-generation/infinite-terrain-generators.md) — Implements a system that uses noise functions to create a deterministic and infinite outdoor landscape.
- [Voxel State Databases](https://awesome-repositories.com/f/game-development/virtual-world-infrastructure/voxel-state-databases.md) — Implements a persistence layer that stores and retrieves modified block coordinates to maintain world state.
- [Voxel Sandboxes](https://awesome-repositories.com/f/game-development/voxel-sandboxes.md) — Provides a networked sandbox environment where players can build and modify a shared voxel world.
- [Structure Editing Tools](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/voxel-engines/structure-editing-tools.md) — Provides tools for players to build and modify the shared block-based world by placing or removing voxel structures. ([source](https://github.com/fogleman/craft#readme))
- [Collision Detection](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection.md) — Implements physics logic to prevent players from passing through solid environmental blocks.
- [Voxel](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection/voxel.md) — Checks player coordinates against a 3D grid of blocks to prevent movement through solid structures.

### Data & Databases

- [Game State Persistence](https://awesome-repositories.com/f/data-databases/game-state-persistence.md) — Saves and loads environmental modifications using a database to maintain a persistent game world.
- [State Persistence](https://awesome-repositories.com/f/data-databases/state-persistence.md) — Integrates a database to maintain the modified state of the voxel world across user sessions. ([source](https://github.com/fogleman/craft#readme))

### Networking & Communication

- [Multiplayer Game Servers](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers.md) — Connects multiple clients to a central server to synchronize positions and world state.
- [Real-Time Synchronization](https://awesome-repositories.com/f/networking-communication/real-time-synchronization.md) — Maintains real-time state consistency for player positions and world updates across clients. ([source](https://github.com/fogleman/craft#readme))
- [Socket Communication](https://awesome-repositories.com/f/networking-communication/socket-communication.md) — Employs socket-based communication to synchronize player movements and world updates in real-time.

### Security & Cryptography

- [World State Persistence](https://awesome-repositories.com/f/security-cryptography/identity-access-management/session-management/stateful-session-persistence/external-database-persistence/world-state-persistence.md) — Uses a database to store modified block coordinates, ensuring world changes persist across sessions.

### Graphics & Multimedia

- [Shaders](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders.md) — Utilizes programmable vertex and fragment shaders for geometry calculations and lighting effects.

### Operating Systems & Systems Programming

- [C Language Game Implementations](https://awesome-repositories.com/f/operating-systems-systems-programming/c-language-game-implementations.md) — Written in C to implement core game mechanics and low-level memory management.

### Part of an Awesome List

- [Build Systems](https://awesome-repositories.com/f/awesome-lists/devtools/build-systems.md) — A simple Minecraft clone built with OpenGL and C.
- [Sandbox and Voxel](https://awesome-repositories.com/f/awesome-lists/more/sandbox-and-voxel.md) — Simple voxel-based sandbox written in C.
