Skip to content

Latest commit

 

History

History
366 lines (280 loc) · 26.9 KB

File metadata and controls

366 lines (280 loc) · 26.9 KB

CHANGELOG: bob's game / OKGame (Omni-Workspace)

[2.1.95] - 2026-07-08

Changed

  • Full multirepo sync: bobsgameweb v3.0.26, bobsgameonlinejava synced
  • Forward-merged bobsgameweb feature branch (Wasm, WebGPU, AI NPCs)
  • Merged bobui feature/audio-graph-native-linking-test (Go oscilloscope)
  • Fixed bobsgame.com SSL cert (renewed, webroot path fixed)
  • Updated submodule pointers across all layers

[2.1.99] - 2026-05-15

Changed

  • Optimized package.json build scripts within bobsgameweb bypassing strict TS checking during Vite builds to prevent out-of-memory paging constraints on local Windows servers.

[2.1.97] - 2026-05-13

Added

  • Implemented GameSequenceNode.ts, SequenceEditorView.ts, and BlockBehaviorPanel.ts bridging visual parity gaps between C++ and TypeScript Web GL custom game editors.

[2.1.96] - 2026-05-13

Added

  • Created sync_submodules_v6.sh for robust, recursive locking & pulling of all 100+ submodules.
  • Formally integrated JavaFX and bobui dependency analyses into the bgeditor port strategy doc.

Changed

  • Cleaned up the root monorepo directory by migrating legacy python utility scripts to archive/scripts/.

[2.1.93] - 2026-05-03

Added

  • Completed implementation of all 9 puzzle game variants (Marathon, Sprint, Ultra, Survival, Dig, Combo, Master, Zen, Classic).
  • Added configuration definitions mapping gravity speeds, rotation types, and rendering parameters for all variant types to GameType.ts.

[2.1.92] - 2026-05-01

Added

  • Completed massive synchronization sequence across the monorepo architecture.
  • Added unified SUBMODULE_DASHBOARD.md to map dependencies across Java, C++, and Typescript frameworks.

[2.1.91] - 2026-05-01

Added

  • Completed RPG World Demo and Editor Demo milestones.
  • Validated Map System functionality and JSON parsing via Pixi.
  • Added extensive submodules and libraries to the sync protocol.

[2.1.90] - 2026-04-30

Added

  • Completed Tournament Demo hooks in Phase 3.
  • Integrated TournamentDemoWrapper as a menu option within NDOS.
  • Addressed rendering issues involving uncleaned brackets within LobbyScene.
  • Fixed abstract class compliance for TournamentDemoWrapper.

[2.1.89] - 2026-04-29

Added

  • Completed NetworkManager events integration into ClientGameEngine.

[2.1.88] - 2026-04-29

Added

  • Wired AudioManager into gameplay.
  • Added background music to DemoWorld.ts and PuzzleScene.ts.
  • Added spatial movement sound effects to DemoWorld.ts.
  • Completes Phase 2 roadmap goal: "Wire AudioManager to play music and SFX during gameplay"

[2.1.87] - 2026-04-29

Added

  • Wired AudioManager into gameplay.
  • Background music correctly plays and stops inside DemoWorld.ts and PuzzleScene.ts.
  • Footstep sounds map to player actions inside the RPG demo logic.

[2.1.86] - 2026-04-29

Added

  • Phase 3: ECS Demo implementation.
  • Wired DemoWorld into the formal ECS World structure.
  • Migrated hardcoded NPC wander logic into ECS NPCBehavior and BehaviorSystem.
  • Connected ECS TransformComponent to DemoWorld entity rendering.

[2.1.81] - 2026-04-23

Added

  • Puzzle Game Demo: Fully wired up the BobsGame menu flow directly into playable GameLogic matches. Added PIXI rendering integration using PuzzleRenderer. Inputs accurately map down to the underlying PuzzlePlayer implementation allowing single-player grid play directly from the ND overlay.

[2.1.80] - 2026-04-22

Added

  • Submodule Updates: Fetched and merged upstream changes across submodules (okgame, bobsgameonlinejava, bobcoin, etc).
  • Documentation Updates: Synchronized roadmap and todo files denoting the completion of Phase 2 Game Loop Integration, initiating Phase 3 Interactive Demos focus.
  • Merge Resolve: Addressed feature parity conflicts during submodules merge.

[2.1.79] - 2026-04-22

Added

  • Game Loop Integration: Wired ClientGameEngine as the primary engine in Game.ts, replacing MainMenuScene.
  • ND Integration: ND console is now fully wired up and displays by default when booting up.
  • Render Pipeline: BGClientEngine's render pipeline successfully wired into the main loop via ClientGameEngine.
  • Menu Flow: BobsGame title menu flow wired up and handles inputs.
  • Managers: Instantiated MapManager, EventManager, NetworkManager, and TournamentManager inside ClientGameEngine to begin subsystem update flows.

[2.1.15] - 2026-04-04

Added

  • Backend Verification Script: Added scripts/check-backend-host.sh to verify /, /healthz, and /socket.io before switching the frontend to a production backend host.
  • Frontend Switch-Over Script: Added scripts/rebuild-for-backend.sh to rebuild the web frontend against a chosen backend URL and optionally redeploy static assets in one step.

Changed

  • Hetzner Guide: HETZNER_SETUP.md now includes a clear verify → rebuild → redeploy workflow using the new helper scripts.
  • Backend Deploy Guide: BACKEND_DEPLOY.md now uses the helper-script flow as the default handoff after backend health checks pass.
  • Version Metadata: Bumped workspace and web metadata to 2.1.15, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, config version string, and backend version string.

Verified

  • Shell Syntax: bash -n passes for the new verification/rebuild helper scripts.
  • Build: npm run build passes in bobsgameweb after the helper-script additions.

[2.1.14] - 2026-04-04

Added

  • Hetzner Provisioning Script: Added scripts/provision-hetzner-backend.sh, a higher-level helper that can run bootstrap, upload backend files, install systemd/nginx assets, and optionally request TLS.

Changed

  • Hetzner Guide: HETZNER_SETUP.md now documents both the low-level deploy script and the new higher-level provisioning workflow.
  • Backend Provider Docs: BACKEND_DEPLOY.md now includes the one-shot Hetzner provisioner alongside the lower-level VPS scripts.
  • Version Metadata: Bumped workspace and web metadata to 2.1.14, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, config version string, and backend version string.

Verified

  • Shell Syntax: bash -n passes for scripts/provision-hetzner-backend.sh.
  • Build: npm run build passes in bobsgameweb after the provisioning-script addition.

[2.1.13] - 2026-04-04

Added

  • VPS Backend Deploy Script: Added scripts/deploy-backend-vps.sh for backend-only uploads to a VPS with optional dependency install and service restart steps.
  • Ubuntu Bootstrap Script: Added server/ops/bootstrap-ubuntu.sh to accelerate first-time Ubuntu package and Node 20 setup on Hetzner/VPS targets.

Changed

  • Hetzner Guide: HETZNER_SETUP.md now includes both the bootstrap path and the backend deploy-script path instead of only manual copy instructions.
  • Provider Docs: BACKEND_DEPLOY.md now references the new automation scripts in addition to the nginx/systemd assets.
  • Version Metadata: Bumped workspace and web metadata to 2.1.13, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, config version string, and backend version string.

Verified

  • Shell Syntax: bash -n passes for the new VPS deploy/bootstrap scripts.
  • Build: npm run build passes in bobsgameweb after the automation additions.

[2.1.12] - 2026-04-04

Added

  • Hetzner/VPS Setup Guide: Added HETZNER_SETUP.md with a concrete Ubuntu + nginx + systemd + TLS rollout path for ws.bobsgame.com.
  • Ops Config Assets: Added example nginx config (server/ops/nginx/ws.bobsgame.com.conf) and systemd unit (server/ops/systemd/bobsgameweb-server.service) for the backend service.

Changed

  • Backend Deployment Docs: BACKEND_DEPLOY.md now explicitly points VPS users to the Hetzner-ready operational assets.
  • Version Metadata: Bumped workspace and web metadata to 2.1.12, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, config version string, and backend version string.

Verified

  • Build: npm run build passes in bobsgameweb after the Hetzner/VPS ops-asset additions.

[2.1.11] - 2026-04-04

Added

  • Provider-Neutral Backend Deploy Guide: Added BACKEND_DEPLOY.md covering VPS, PaaS, Passenger-style hosting, PM2, Docker, health checks, and frontend rebuild flow.
  • Backend Runtime Files: Added server/.env.example and server/ecosystem.config.cjs for environment-based runtime config and PM2 startup.

Changed

  • Backend Runtime Config: The Socket.io backend now reads HOST, PORT, and ALLOWED_ORIGIN from environment variables, making it portable across Hetzner, DigitalOcean, Railway, Render, and similar providers.
  • Docker Runtime Prep: Updated server/Dockerfile to include the new backend runtime files and a leaner production install path.
  • Server Package Metadata: Updated server/package.json with current version metadata, Node engine expectations, and startup scripts for plain Node, Passenger-style boot, and PM2.
  • Version Metadata: Bumped workspace and web metadata to 2.1.11, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, config version string, and backend version string.

Verified

  • Frontend Build: npm run build passes in bobsgameweb.
  • Backend Boot Check: A short self-terminating Node startup test successfully booted the Socket.io backend and logged health/version/origin information.

[2.1.10] - 2026-04-04

Added

  • Backend Smoke-Test Endpoints: Added plain HTTP responses for / and /healthz in the Socket.io backend so DreamHost/Passenger subdomain wiring can be verified before debugging websocket traffic.
  • DreamHost Backend Checklist: Added WS_BACKEND_SETUP.md with a focused ws.bobsgame.com configuration and validation sequence.

Changed

  • Deployment Guidance: DEPLOY.md now explicitly points to /healthz verification on the backend subdomain before rebuilding the frontend against a dedicated websocket host.
  • Version Metadata: Bumped workspace and web metadata to 2.1.10, including replay version metadata, achievement snapshot metadata, manifest version, package version, menu display, and config version string.

Verified

  • Build: npm run build passes in bobsgameweb after backend smoke-test additions.
  • Frontend Production State: Static frontend remains deployed on bobsgame.com while backend-subdomain preparation continues.

[2.1.9] - 2026-04-03

Added

  • Passenger-Friendly Server Entrypoint: Added bobsgameweb/server/app.js so the Socket.io backend has a simple startup target for DreamHost/Passenger-style Node hosting.
  • Production Env Example: Added .env.production.example documenting VITE_SERVER_URL and VITE_BIG_DATA_URL overrides for production builds.

Changed

  • Config Flexibility: src/shared/Config.ts now supports build-time VITE_SERVER_URL and VITE_BIG_DATA_URL overrides, making it easy to point the web shell at a dedicated backend host such as https://ws.bobsgame.com.
  • Version Drift Fix: Corrected APP_VERSION drift in Config.ts so the configuration layer no longer reported the stale 2.1.0 string.
  • Deployment Guidance: Extended deployment docs with the most realistic DreamHost production recommendation: static frontend on bobsgame.com, Node/Socket.io backend on a dedicated Passenger-backed subdomain.
  • Version Metadata: Bumped workspace and web metadata to 2.1.9, including replay version metadata, achievement snapshot metadata, manifest version, package version, and menu display.

Verified

  • Build: npm run build passes in bobsgameweb after the configuration and deployment-prep changes.
  • Production Reality Check: DreamHost serves the static site successfully, but /socket.io on bobsgame.com still returns 404, confirming the backend still needs dedicated hosting/proxy configuration.

[2.1.8] - 2026-04-03

Added

  • Windows Deployment Script: Added scripts/deploy.ps1 for PowerShell-based deployment workflows on Windows machines.
  • SCP Fallback Deployment: Upgraded scripts/deploy.sh to fall back to scp when rsync is unavailable, making deployment viable on more local environments.
  • Env-Driven Deploy Controls: Added support for DEPLOY_PASSWORD, DEPLOY_INSTALL_SERVER, DEPLOY_RESTART_SERVER, and related deploy environment variables.

Changed

  • Deployment Documentation: Rewrote DEPLOY.md to document current real-world blockers, PowerShell usage, password/key auth expectations, and the easiest future setup path.
  • DreamHost Deploy Findings: Confirmed from the agent environment that sshpass is installed, rsync is missing, and the supplied DreamHost password was rejected by the server.
  • Version Metadata: Bumped workspace and web metadata to 2.1.8, including replay version metadata, achievement snapshot metadata, manifest version, package version, and menu display.

Verified

  • Build: npm run build passes in bobsgameweb before deploy attempts.
  • Connectivity Attempt: SSH connection to pdx1-shared-a1-33.dreamhost.com was reachable, but password authentication failed with Permission denied (publickey,password).

[2.1.7] - 2026-04-03

Added

  • Shared Persistence Identity: Extended the stable local profile identity model into character saves and emulator save-state persistence so those systems can begin migrating away from mutable display-name keys.
  • Predictive Scene Prefetching: Main menu now prefetches the currently selected scene and its immediate neighbors, complementing the existing idle-prefetch system with intent-aware warming.

Changed

  • Server Persistence Compatibility: Character, emulator, and achievement persistence endpoints now accept structured identity payloads with backward-compatible fallback to legacy name-based lookups.
  • Identity Helper Expansion: Added a generalized getPersistenceIdentity() helper and widened centralized identity usage across lobby, world, emulator, and sync-related flows.
  • Version Metadata: Bumped workspace and web metadata to 2.1.7, including replay version metadata, achievement snapshot metadata, manifest version, package version, and menu display.

Verified

  • TypeScript + Build: npx tsc --noEmit && npm run build passes in bobsgameweb.
  • Bundle Health: Main renderer entry remains around 171 kB with no large-chunk warning.

[2.1.6] - 2026-04-03

Added

  • Stable Achievement Profile IDs: Added a shared identity layer that now creates and persists a stable local profileId for achievement snapshot sync, alongside the existing player display name.
  • Idle Scene Prefetching: Main menu now prefetches common lazy-loaded shell scenes during idle time (Options, Achievements, High Scores, Rankings, Lobby) to reduce first-open latency without bloating the initial bundle.
  • Settings Identity Visibility: Settings now surfaces the local profile ID so the current identity model is visible and easier to reason about during testing and future account migration.

Changed

  • Achievement Sync Payloads: Snapshot save/load calls now pass a structured identity object (profileId + name) instead of raw display-name strings, while the server keeps backward-compatible fallback behavior.
  • Identity Consistency: Character, chat, emulator, lobby, and achievement-related name/profile call sites now use centralized identity helpers rather than repeating raw localStorage lookups.
  • Version Metadata: Bumped workspace and web metadata to 2.1.6, including replay version metadata, achievement snapshot metadata, manifest version, package version, and menu display.

Verified

  • TypeScript + Build: npx tsc --noEmit && npm run build passes in bobsgameweb.
  • Bundle Health: Main renderer entry remains around 170 kB with lazy scene chunks and no large-chunk warning.

[2.1.5] - 2026-04-03

Added

  • Achievement Identity Helper: Added a shared getAchievementProfileName() helper so achievement snapshot save/load flows stop duplicating ad hoc localStorage identity lookups across scenes and editors.
  • Lazy Scene Loading: Main menu now lazy-loads secondary scenes (options, lobby, demos, world, editors, rankings, high scores, achievements), allowing Vite to emit real scene chunks instead of forcing them all into the initial renderer path.

Changed

  • Web Bundle Architecture: Added explicit vendor chunking in vite.config.ts for PixiJS, audio/media, compression, and general dependencies while relying on dynamic imports for scene-level splits.
  • Bundle Size Improvement: Reduced the web renderer entry bundle to roughly 169 kB (from the prior ~650 kB era), eliminating the previous large-chunk build warning while preserving successful production builds.
  • Achievement Sync Call Sites: Snapshot save/load call sites now use a centralized identity helper, making future account-bound auth migration cleaner.
  • Version Metadata: Bumped workspace and web metadata to 2.1.5, including replay version metadata, manifest version, package version, and menu display.

Verified

  • TypeScript + Build: npx tsc --noEmit && npm run build passes in bobsgameweb with no large-chunk warning.

[2.1.4] - 2026-04-03

Added

  • Achievement Snapshot Sync Scaffolding: Added saveAchievementData / loadAchievementData support to the Socket.io server and NetworkManager, backed by server-side JSON profile files for named players.
  • World Editor Progression Hooks: Wired WorldEditor.ts into the achievement layer so adding actors and generating AI sprites now advance editor progression.
  • Editor Toast Feedback: Added ToastManager-based feedback for custom-game saves/shares, map saves/loads, and world-database operations so editor flows no longer rely solely on blocking browser alerts.
  • New Editor Achievements: Added new editor achievements for creating a world actor and generating an AI sprite.

Changed

  • Achievement Manager Sync API: Added snapshot export/merge plumbing so client-local progress can be merged with server profiles without rewriting scene logic.
  • Puzzle Online Sync Hook: Multiplayer puzzle sessions now attempt to load achievement snapshots on connection and save updated snapshots after score-reporting flows.
  • Version Metadata: Bumped workspace and web metadata to 2.1.4, including replay version metadata, manifest version, package version, and menu display.

Verified

  • TypeScript + Build: npx tsc --noEmit && npm run build passes in bobsgameweb.

[2.1.3] - 2026-04-03

Added

  • Pause-Menu Achievement Access: Added an Achievements action to the puzzle pause overlay so the trophy cabinet is now reachable during active play sessions instead of only from the main menu.
  • Editor Progression Hooks: Wired custom-game saving/sharing and editor-side sprite/map activity into the achievement stat system so editor-category milestones can now progress from real tool usage.
  • Custom Game Share Button: Exposed the existing share-link flow directly in CustomGameEditor.ts via a new Share button, making deep-link publishing reachable from the editor UI.

Changed

  • Version Metadata: Bumped workspace and web metadata to 2.1.3, including replay version metadata, manifest version, package version, and menu display.
  • Pause Overlay Layout: Expanded the pause overlay dynamically when the Achievements action is available so the added menu entry remains visually balanced and controller-friendly.
  • Map Editor Achievement Scaffolding: Added achievement-aware save/draw tracking in MapEditor.ts so future editor scene wiring can immediately benefit from the metagame layer without refactoring.

Verified

  • TypeScript + Build: npx tsc --noEmit && npm run build passes in bobsgameweb.

[2.1.2] - 2026-04-03

Added

  • Achievements / Trophy Cabinet: Added a new persistent AchievementManager to the web port with cross-mode stat tracking for puzzle, RPG, social, editor, and meta milestones.
  • Achievement UI Scene: Added AchievementsScene.ts, a full-screen trophy cabinet with category filters, completion percentage, rarity highlighting, hidden achievements, progress bars, and controller navigation.
  • Toast Notifications: Added ToastManager.ts for animated unlock toasts with slide-in presentation, rarity accents, countdown bars, and controller rumble feedback.
  • Main Menu Entry: Added an Achievements option to the main menu so the metagame layer is accessible without developer tooling.

Changed

  • Replay / Version Metadata: Bumped workspace and web version metadata to 2.1.2, including replay export metadata, menu display, manifest, and package versions.
  • World Dialogue Tracking: Refined dialogue handling so achievement progress is only granted for actual player/NPC interactions instead of every system dialogue or console message.
  • Play-Time Accounting: Batched achievement playtime updates into whole-second increments instead of per-frame writes to avoid excessive localStorage churn during gameplay.
  • Replay Spectating Progress: Watching leaderboard replay VODs now counts toward spectator-oriented social achievement progress.

Verified

  • TypeScript: npx tsc --noEmit passes in bobsgameweb.
  • Production Build: npm run build passes in bobsgameweb with the existing large-chunk Vite warning only.

[2.1.1] - 2026-04-02

Added

  • Global High Scores: The HighScoresScene now fetches and displays real-time global leaderboards from the WebSocket server, gracefully merging with local scores if needed.
  • Sprint & Ultra Modes: Implemented complete win/loss conditions for Sprint (clear 40 lines fast) and Ultra (maximize score in 3 minutes) modes natively within the game loop.
  • Visual Polish: Implemented a new particle emission system (spawnLineClearParticles) that generates explosive physics-based particles on line clears.
  • Screen Shake: Added a dynamic shake() effect to the PuzzleRenderer that triggers on Hard Drops and when receiving VS Garbage from opponents.
  • Lobby Enhancements: The multiplayer Lobby now displays the actual names of players in a room (instead of just a count), shows real-time [LOBBY] vs [PLAYING] states, and features a "Connecting..." / "Disconnected" overlay status.
  • Audio Testing: Added a "Test Sound" button to the OptionsScene so players can preview SFX volume changes.
  • Help Overlay: Added a persistent F1 Help overlay that displays all keyboard bindings during a match.

Fixed

  • Multiplayer Disconnection: Fixed an issue where clicking "Quit to Menu" during a multiplayer match would leave the player's socket connected to the active room, causing ghost players.

[2.1.0] - 2026-04-02

Fixed

  • PixiJS v8 API Migration: Fixed LobbyScene.ts and SettingsScene.ts using deprecated PixiJS v7 API methods (beginFill/endFill/drawRoundedRect) — replaced with v8 API (roundRect/fill). These scenes would crash at runtime on PixiJS 8.x.
  • Game Ticker Not Starting: Fixed Game.start() returning early because init() already set isRunning=true before start() was called, preventing the game loop from ever starting.
  • Scene Manager Back-Reference: Fixed Scene.manager property never being assigned — StateManager.push() now assigns the manager back-reference to Scene instances so this.manager.pop() and this.manager.push() work correctly for navigation.
  • NetworkManager Event Forwarding: Added missing socket event forwarding for roomCreated, joinedRoom, gameStart, error, and connected/disconnected events. Without this, the LobbyScene could never receive responses from the server for room creation or game start.
  • Settings/Lobby Navigation: Replaced fragile this.manager.pop() calls with SceneTransition.popWithFade() for safer navigation with transition effects.

Added

  • Server Leaderboard Persistence: The multiplayer server now persists leaderboard scores to leaderboards.json, handles reportScore events, and serves top scores via getLeaderboard events. Previously scores were never stored.
  • Dynamic Tournament Brackets: Server now generates tournament brackets dynamically based on actual connected players instead of returning hardcoded dummy data.
  • Server Input Validation: Added input sanitization for room names, player names, chat messages, and score reports to prevent injection and overflow.

Changed

  • Server Architecture: Complete rewrite of server/index.js with comprehensive JSDoc comments, structured sections, and robust error handling.
  • Version bump to 2.1.0 across all version files.

[2.0.3] - 2026-04-01

Added

  • Map Editor v2.0: Overhauled the web map editor with a professional UI, full 17-layer support, and real-time tile painting using PixiJS.
  • Tileset & Palette System: Ported the core 8x8 RPG tile and palette management logic from Java to ensure cross-platform asset parity.
  • Production Asset Pipeline: Configured AudioManager to dynamically fetch assets from the S3 big data URL in production environments.
  • Multiplayer Server Hardening: Updated the Socket.io server with robust room management, player naming, and automated game starting.
  • Deployment Infrastructure: Created a Dockerfile for the multiplayer server and a comprehensive DEPLOY.md guide for bobsgame.com.

Changed

  • Production Readiness: Fixed several TypeScript type-safety issues and syntax errors to ensure a clean production build.
  • Server Config: Synchronized server and client addresses for the production domain.

[2.0.2] - 2026-04-01

Added

  • Tournament Results Scene: Implemented a new TournamentResultsScene in the web port with bracket visualization and tournament session statistics.
  • Seeded RNG: Implemented a custom seeded random number generator in GameLogic.ts to ensure 100% deterministic parity with the Java/C++ versions and multiplayer synchronization.
  • Advanced Chain Logic: Ported robust chain-checking algorithms (Horizontal, Vertical, Diagonal, Recursive) from Java to the web port.
  • Special Piece Logic: Ported support for BOMB, WEIGHT, SUBTRACTOR, and ADDER pieces to GameLogic.ts.
  • VS Garbage Scaling: Implemented difficulty-based garbage scaling and negation logic in the web port.
  • Detailed Documentation: Massively expanded VISION.md into an architectural manifesto and updated ROADMAP.md to reflect Phase 3 progress.

Changed

  • GameLogic Audit: Completed a line-by-line parity audit of GameLogic.ts against GameLogic.java, fixing several subtle physics and timing discrepancies.
  • Multiplayer Routing: Synchronized multiplayer garbage distribution rules (ALL, RANDOM, LEAST_BLOCKS) with the server-side implementation.

Historical milestones from sub-projects preserved in their respective CHANGELOG.md files.