A modern, data-oriented rendering engine written in Go, powered by Vulkan. Build for learning, research, and high-performance indie games.
CguP aims to demonstrate how Go's currency primitives (Goroutines, Channels) can be effectively used in a high-performance graphics engine. We prioritize architecture and parallelism over raw single-threaded speed.
- 🚀 Vulkan Backend: Modern, explicit GPU control.
- 🧵 Concurrent Architecture: Parallel command recording and asset loading.
- 🧩 Modular Design: Clear separation of Core, Platform, and GPU layers.
- 📄 Render Graph: Automatic resource barrier management and pass reordering.
- Go 1.25+
- Vulkan SDK (Required for MoltenVK on macOS)
# On macOS
go mod tidy
CGO_CFLAGS="-I/opt/homebrew/include" CGO_LDFLAGS="-L/opt/homebrew/lib" go run cmd/demo/main.goengine/core: Basic utilities (Logging, Config).engine/platform: Windowing and Input (GLFW).engine/gpu: Vulkan wrappers and context management.pkg/compute: (Legacy) CPU-bound entity update prototypes.
This project is licensed under the MIT License - see the LICENSE file for details.