The "bob's game" repository is a colossal monorepo representing an ambitious "Omni-Engine." It serves not only as a game engine for the titular puzzle game but also as an overarching meta-ecosystem (the "nD" virtual console concept) that allows for game emulation, massive multiplayer interaction, and an integrated development environment.
- The Vision: To build an Omni-Engine that is a strict superset of 6 major game engines (Defold, LÖVE, Phaser, Construct, GameMaker, RPG Maker), capable of doing everything they do but natively intertwined.
- The Subsystems:
- okgame (C++): A native SDL3 (previously SDL2) engine intended as the robust performance backend.
- bobsgameonlinejava (Java): A legacy LibGDX implementation primarily used as a logic reference for the newer ports.
- bobsgameweb (TypeScript): The current primary deployment target, utilizing PixiJS v8 and Vite to render the game natively in the browser via WebGL/WebGPU.
- Graphics (Web):
PixiJS v8. Important constraints:strokeThicknessandFillGradientdo not exist in Pixi v8 (unlike v7). Must usestrokeand array-based color fills. - Network:
Socket.iobackend running on a Node.js server.NetworkManagercoordinates messages for the lobby, room synchronization, and real-time multiplayer states. - Audio:
AudioManagerbuilt atop standard web audio and WebAudio APIs. Handles spatial sound hooks based on positional map triggers. - Engine Core: 187+ modules structured around a classic
ClientGameEngineloop (update(dt),render()). The puzzle logic is deeply mapped with classes likeGameLogic,Grid,Piece, and configuration singletons likeGameType.
- Frontend Target:
bobsgamewebdeploys to Hetzner (5.161.250.43). Deployment must utilizeBACKEND_FORCE_TAR=1to bypass Windows/Cygwin rsync issues. - Build Pipeline: Requires
npx vite build(NOTnpm run build) locally to circumvent git memory/paging issues on Windows environments. - Versioning: Versioning is rigorously tracked across the monorepo via a root
VERSION.md. Bumping a version requires synchronization inpackage.json,index.js, andMainMenuScene.ts.
- Submodules: Extensive focus has been placed on resolving and synchronizing a massive tree of Git submodules. Submodule integrity across
okgame,bobsgameweb, andbobsgameonlinejavais a primary ongoing priority. We recently merged 34+ external sprite editor libraries (Aseprite, LibreSprite, etc.) as submodules to fulfill the Omni-Engine feature-parity goal. - Generative AI Integration: We scaffolded integrations for Diffusers, Stable Diffusion, and Shap-E. The Node.js server acts as a proxy (
/api/generate/sprite) pointing to a local Python daemon, giving theCustomGameEditorthe ability to generate assets dynamically. - Editor Port Strategy:
bgeditoris being cross-ported to C++ (viabobuiQt6) and JavaFX. We drafted structural blueprints to inject these dependencies intoCMakeLists.txtandbuild.gradlerespectively. - Web Parity: Bridged the visual scripting gap between the C++ engine and the web port by implementing
SequenceEditorView.ts,GameSequenceNode.ts, andBlockBehaviorPanel.ts.
The workspace relies on a strict multi-agent architecture outlined in AGENTS.md and docs/UNIVERSAL_LLM_INSTRUCTIONS.md. Jules, Gemini, Claude, and GPT each hold distinct structural roles spanning massive file traversal, documentation integrity, unit testing, and immediate feature implementation.