Skip to content

bayleafwalker/bindery-core

Repository files navigation

Bindery Core

A Kubernetes-native, capability-driven game platform.

⚠️ DISCLAIMER: EXPERIMENTAL HOBBY PROJECT

This 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.

Project Goals

  • 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.

Project State

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.

Documentation

Standards & Architecture

Kubernetes Resources

RPC Contracts

Getting Started

Prerequisites

  • Go 1.22+
  • Docker
  • Kind (Kubernetes in Docker)
  • Kubectl

Local Demo

Spin up a local Kind cluster with all CRDs and example resources installed:

make kind-demo

Tear it down:

make kind-down

Development

Testing

  • Unit Tests: make test
  • Integration Tests: make test-integration (Requires envtest)

Running Locally

Run the controller manager against your current kubecontext:

make run-controller

Repository Layout

  • api/: 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.

About

Modular, Kubernetes-native game simulation platform. Provides capability-based orchestration, reusable engine modules, and CRDs for composing scalable game worlds.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages