Important
Project Status: Early Alpha. GoCraft is currently a technical demonstration focusing on voxel engine mechanics. Many features are incomplete and significant bugs may exist.
GoCraft is a high-performance voxel engine experiment written in Go...
- Improved UI & UX:
- Modern, centered menu layouts for all pages.
- Professional voxel-style project logo.
- In-game Pause Menu (ESC) with "Save & Quit" functionality.
- Customizable Settings:
- Persistent settings saved to
settings.json. - Resolution Support: 16:9, 16:10, 21:9, and 4:3 display modes.
- Mouse Sensitivity: Adjustable slider for refined control.
- Persistent settings saved to
- Multiplayer Support:
- Authoritative TCP Server/Client architecture.
- Entity interpolation and synchronization.
- Graceful server shutdown and resource cleanup.
- Procedural World:
- Infinite terrain generation using Simplex noise.
- Biome systems with smooth color transitions (Grass, Water).
- Cave generation and ore veins.
- Advanced Lighting:
- Sky light propagation and day/night cycles.
- Gameplay Mechanics: Survival elements, crafting, and mob AI are in early stages.
- Inventory: Basic UI is implemented, but advanced item management is ongoing.
- Audio: Sound effects and music are yet to be integrated.
- Optimization: While fast, large-scale concurrent chunk generation is still being tuned.
- Go 1.20 or higher.
- A C compiler (GCC/MinGW) is required for cgo (used by raylib).
-
Clone the repository:
git clone https://github.com/yourusername/gocraft.git cd gocraft -
Run the Client (Singleplayer/Default):
go run .Note on Textures: This repository does not include copyrighted game assets. The game will run with fallback placeholders (checkerboard patterns) by default. To use a resource pack:
- Locate or create a
textures/folder in the game directory. - You can use standard Minecraft resource packs (Java Edition 1.20+ recommended).
- Open the resource pack
.zipfile, navigate toassets/minecraft/textures/. - Extract the contents (folders like
block,item, etc.) into your localtextures/folder.
Disclaimer: You must ensure you have the legal right to use any texture packs or assets you import into the game.
- Locate or create a
To start a dedicated server:
go run . -serverTo join as a specific user (Client):
go run . -name PlayerName- ESC: Toggle Pause Menu
- W, A, S, D: Move
- Space: Jump / Fly Up
- Left Control: Fly Down
- F: Toggle Flying Mode
- Left Click: Break Block
- Right Click: Place Block
- 1-9: Select Block from Hotbar
- E: Open Inventory
- F3: Toggle Debug Info
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Raylib: Licensed under the zlib License. See LICENSE_raylib.txt for details.
