Last Updated: 2026-04-22 | Version: 2.1.81
-
Game.tsshould create aClientGameEngineinstance - Main game loop should call
clientEngine.update(dt)each frame - Main game loop should call
clientEngine.render()and add result to stage - Keyboard events should be forwarded to ControlsManager
- Network events should be forwarded to NetworkManager
- Title screen should use
BobsGamemenu system (not custom MainMenuScene) - "Play Single Player" → difficulty select → controller select → start game
- "Play Online" → network lobby → room select → start game
- Game over → results screen → back to title
- Pressing Enter in the RPG world should open the nD console
- nD should zoom in with parabolic bounce easing
- nD should contain the puzzle game (BobsGame)
- Closing nD should zoom out and return to RPG world
-
MapManagershould load actual map data from JSON -
GameMapshould render tile layers using PixiJS sprites -
Cameramanshould follow the player with smooth scrolling - Entity rendering on top of map
-
EventManagershould process event scripts when entering maps - Event triggers (step on tile, interact with NPC, use item)
- Dialogue boxes should appear when NPCs talk
- Flags/skills should persist across map changes
- Background music should play during gameplay
- SFX should play on actions (step, interact, puzzle move, line clear)
- Volume should respect GlobalSettings
- Login flow (username/password → auth token → session)
- Room creation/joining in the lobby
- Real-time game state sync via Socket.io
- P2P connections via WebRTC for low-latency gameplay
- Animated transitions between screens (fade, slide)
- Responsive layout for different screen sizes
- Gamepad navigation in all menus
- Tooltip system for menu items
- Notification system for online events
- All 9 game types implemented (not just Marathon)
- Ghost piece rendering
- Hold piece functionality
- Combo counter display
- T-spin detection
- Back-to-back bonus
- Inventory management (use/equip items)
- Turn-based battle system
- Skill leveling system
- Quest log
- Mini-map
- Map editor with tile painting
- Sprite editor with pixel canvas
- Event sheet editor (visual scripting)
- Custom game type editor
- Game sequence editor
- Unit tests for puzzle logic (Grid, GameLogic, Piece rotations)
- Unit tests for event system (EventScript parsing)
- Integration tests for networking
- E2E tests for game flow
- Lazy-load heavy subsystems
- Object pooling for frequently created/destroyed objects
- Tile map batching for rendering
- WebSocket message batching
- CI/CD pipeline (GitHub Actions)
- Automated deployment on push to master
- Preview deployments for PRs
- Monitoring and alerting
NDDemoScene TypeScript errors (2 errors) — NDPuzzleGame and LibretroGame don't properly extend MiniGameEngine. Pre-existing, not blocking build.(Fixed in v2.1.86/v2.1.89 via TournamentDemoWrapper abstract sync)- okgame C++ build failures — Compile/link errors need resolution, vcpkg modernization
Version in root VERSION.md is out of sync (shows 2.1.15, actual is 2.1.73) — Need to sync(Fixed in v2.1.75+ version patch scripts)Pre-existing LibretroGame/NDPuzzleGame — These files exist but don't properly integrate with the new ND class(No longer blocking; replaced by proper TS structure in v2.1.86+)
- Add JSDoc comments to all public methods
- Remove unused imports across all files
- Ensure consistent error handling (try/catch with Logger)
- Review all
TODOcomments in code and resolve or create issues - Audit barrel exports for completeness
- Add input validation to public APIs