- Origin: The original RPG engine with basic puzzle elements.
- Current State: Successfully ported the core "engine" of the puzzle game (dropping blocks, matching, clearing, basic garbage). However, the "meta-game" features are severely lacking. For instance, the
CustomGameEditorin Java is a mere skeleton (17KB) compared to the C++ version (220KB). - Deficiencies: Missing deep menu logic, game sequence editors, and advanced special block behaviors (BOMB, WEIGHT, FLASHING CLEAR, etc.).
- Tech Stack: Uses older LWJGL. Needs modernization to the latest LWJGL and libGDX.
- Origin: Translated from Java, significantly expanding the puzzle game into its own robust ecosystem.
- Current State: The RPG engine side suffers from broken memory management. However, the puzzle logic is highly modular, advanced, and feature-rich (e.g.,
GameLogicChains.cpp,GameLogicGarbage.cpp,GameSequenceEditor.cpp). - Tech Stack: Currently on SDL2. Needs upgrading to SDL3.
- Deep Parity (C++ to Java): Port the
okgameC++ puzzle game back to thebobsgameonlinejavaengine IN FULL, missing zero features or details. - Modernization (C++): Upgrade
okgameto use SDL3. - Modernization (Java): Upgrade
bobsgameonlinejavato use the latest LWJGL and libGDX. - TypeScript Port: Port the entire unified engine to TypeScript.
- Library Unification: Ensure that C++, Java, and TypeScript versions share the exact same libraries, abstractions, and capabilities.
- 1.1 Structure Alignment: Refactor the monolithic
GameLogic.javain the client to match the modular C++ structure (GameLogicChains,GameLogicGarbage,GameLogicRender,GameLogicNetwork). - 1.2 Feature Porting - Editors: Translate the massive
CustomGameEditor.cppandGameSequenceEditor.cppinto Java. - 1.3 Feature Porting - Mechanics: Ensure all special pieces (BOMB, WEIGHT, SUBTRACTOR, ADDER, SCANLINE CLEAR) behave identically to C++'s
removeFlashedChainBlocks. - 1.4 Menus and UI: Port the deep menu structures from
BobsGameMenus.cppandOKGameMenus.cpp.
- 2.1 Java Upgrade: Update
bobsgameonlinejavabuild files (Gradle) to pull the latest LWJGL 3.x and libGDX. Rewrite the rendering and input polling loops to use the new APIs. - 2.2 C++ Upgrade: Update
okgame's CMake configuration to link SDL3 instead of SDL2. Refactor window creation, event polling, and rendering to SDL3 standards.
- 3.1 Project Scaffolding: Set up a clean Vite/TypeScript environment (building upon the existing
.tsfiles inokgame/src/mainif applicable). - 3.2 Core Logic Translation: Translate the unified Java/C++ puzzle logic directly into strict TypeScript classes.
- 3.3 Render/Audio Layer: Implement an HTML5 Canvas / WebGL rendering layer and Web Audio API layer that mimics the SDL3 / LibGDX abstractions.
- 4.1 Abstract Interfaces: Create standard interfaces for
Renderer,Audio,Input, andNetworkacross all three languages. - 4.2 Dependency Sync: Ensure any third-party libraries (like tweening, pathfinding, or JSON parsing) have identical implementations or wrappers in all three languages.
- 4.3 Verification: Create cross-platform test suites (or data-driven tests) to prove that the same input yields the exact same game state frame-by-frame.