A Kubernetes-native, capability-driven game platform.
⚠️ DISCLAIMER: EXPERIMENTAL HOBBY PROJECTThis project is fully experimental and is not intended for wider consumption or use. The stated goals are intentionally broad and likely unachievable in a real-world product context; however, they serve the purpose of this hobby project.
Note on Authorship: This repository is now public. Please be aware that almost all code and documentation within this repository were generated by AI. It serves as an exploration of AI-assisted development rather than a demonstration of personal coding expertise.
Bindery Core is an open-source platform designed to decouple game logic from infrastructure. It allows game developers to define their game's backend requirements as abstract "Capabilities" (e.g., Physics, Persistence, Messaging), which the platform then resolves and binds to concrete infrastructure implementations at runtime.
- Decouple Logic from Infrastructure: Game modules declare what they need, not how it's provided.
- Game-as-Code: Define entire game worlds, shards, and module dependencies via declarative Kubernetes CRDs.
- Automated Orchestration: Automate the lifecycle of game servers, including sharding, scaling, and storage provisioning.
- Standardized Contracts: Use strict gRPC contracts and semantic versioning to ensure module compatibility.
Status: 🚧 Pre-Alpha / Experimental 🚧
The project is currently in active development.
- Core Controllers:
CapabilityResolver: Resolves abstract requirements to concrete providers.RuntimeOrchestrator: Manages the lifecycle of game server workloads (Deployments, Services).StorageOrchestrator: Provisions and binds persistent storage (PVCs) for stateful modules.
- APIs: v1alpha1 CRDs are defined but subject to breaking changes.
- Deployment: Supports local development via Kind and Helm.
- Go 1.22+
- Docker
- Kind (Kubernetes in Docker)
- Kubectl
Spin up a local Kind cluster with all CRDs and example resources installed:
make kind-demoTear it down:
make kind-down- Unit Tests:
make test - Integration Tests:
make test-integration(Requires envtest)
Run the controller manager against your current kubecontext:
make run-controllerapi/: Kubernetes API definitions (CRDs).controllers/: Kubernetes controllers (Reconcilers).contracts/: Protobuf and Capability contracts.docs/: Architecture and standard documentation.helm/: Helm charts for deployment.internal/: Core logic (Resolver, SemVer).modules/: Example game modules.