Skip to content

Port BobsGameUserStats and StadiumGameEngine and fix CMake C++17 properties#14

Draft
robertpelloni wants to merge 28 commits into
mainfrom
refactor-memory-features-complete-3143883231752949580
Draft

Port BobsGameUserStats and StadiumGameEngine and fix CMake C++17 properties#14
robertpelloni wants to merge 28 commits into
mainfrom
refactor-memory-features-complete-3143883231752949580

Conversation

@robertpelloni

Copy link
Copy Markdown
Owner

This PR ports over the missing UserStats and StadiumGameEngine classes from the Java reference repository (BobsGameOnlineJava).

It includes:

  1. Addition of the Java source repository as a Git Submodule.
  2. Porting of BobsGameUserStats (UserStats.h/cpp) translating the original statistics tracking variables and adding Poco JSON mapping.
  3. Porting of StadiumGameEngine which is used as the base class for the lobby-style network interfaces OKGameStadium and BobsGameStadium.
  4. Updates to CMakeLists.txt enforcing C++17 natively, which resolves compilation breaking on Poco, and ensures the Poco dependencies are properly linked to the main target.

Note: The final executable compilation still hits missing package definitions deep within the GWEN/SDL3 submodules due to Sandbox environment limitations with missing X11 extensions (GL/glu.h, GL/glxew.h). As requested in the prompts, we proceeded "blindly" based on the successful compilation of the specific port objects.


PR created automatically by Jules for task 3143883231752949580 started by @robertpelloni

- Ported `BobsGameUserStats` from `BobsGameOnlineJava` reference, translating its logic to C++ using `Poco::JSON` for serialization.
- Ported `StadiumGameEngine` base class and updated `OKGameStadium` and `BobsGameStadium` to inherit from it, mirroring the Java class hierarchy.
- Fixed `CMakeLists.txt` linking by enforcing `C++17` required by `libpoco` and correctly linking the `Poco::Foundation` and other components into the main `bobsgame` target.
- Added `BobsGameOnlineJava` as a git submodule to ensure reference source alignment.
- Bypassed several deep SDL3 missing component issues by disabling X11 subsets during compilation testing in the sandbox.

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@blocksorg

blocksorg Bot commented Jun 20, 2026

Copy link
Copy Markdown

Mention Blocks like a regular teammate with your question or request:

@blocks review this pull request
@blocks make the following changes ...
@blocks create an issue from what was mentioned in the following comment ...
@blocks explain the following code ...
@blocks are there any security or performance concerns?

Run @blocks /help for more information.

Workspace settings | Disable this message

google-labs-jules Bot and others added 27 commits June 20, 2026 10:27
The GitHub Actions CI was failing during the `actions/checkout` step because the `bobsgameonlinejava` repository (which was temporarily added as a reference) contained a broken nested submodule (`references/grafx2`) that no longer existed upstream.

Since the required classes have already been successfully ported to C++, the `bobsgameonlinejava` repository is no longer needed in the workspace and has been removed from `.gitmodules` entirely to fix the recursive fetch pipeline.

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
The GitHub Actions CI was failing on both Linux and Windows due to `git` failing to recurse into the `bobsgameonlinejava` submodule because a specific commit in one of *its* nested submodules (`bobsgameonlinejava/references/grafx2`) couldn't be fetched (`remote error: upload-pack: not our ref`).

This completely removes the `bobsgameonlinejava` submodule from the repository and `.gitmodules` to resolve the GitHub Actions `actions/checkout` failure.

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
- Added missing X11/Wayland and audio development headers (libxcursor-dev, libpulse-dev, libxtst-dev, etc.) to the GitHub Actions workflow for the Linux build to ensure SDL3 compiles successfully.
- Fixed `CMakeLists.txt` to only append `-fpermissive` on non-MSVC compilers, preventing configuration failures on Windows.
- Corrected an invalid `add_subdirectory` path (`lib/GWEN-master/gwen` -> `lib/GWEN/gwen`) that was causing fatal CMake errors.
- Removed commented-out `OPENGL_INCLUDE_DIR` from the `BOBSGAME_INCLUDE_DIRS` to prevent `-NOTFOUND` evaluation errors.

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
- Added missing X11/Wayland and audio development headers (libxcursor-dev, libpulse-dev, libxtst-dev, etc.) to the GitHub Actions workflow for the Linux build to ensure SDL3 compiles successfully.
- Fixed `CMakeLists.txt` to only append `-fpermissive` on non-MSVC compilers, preventing configuration failures on Windows.
- Corrected an invalid `add_subdirectory` path (`lib/GWEN-master/gwen` -> `lib/GWEN/gwen`) that was causing fatal CMake errors.
- Removed commented-out `OPENGL_INCLUDE_DIR` from the `BOBSGAME_INCLUDE_DIRS` to prevent `-NOTFOUND` evaluation errors.

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
…nd match tracking

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
…g as completed

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
…rboards

Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Co-authored-by: robertpelloni <673434+robertpelloni@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant