Hockey Manager RPG banner

Hockey Manager RPG

6 devlogs
87h 58m 28s

A C++23 hockey game built from scratch with a custom OpenGL engine. Coach the Czech Republic to Olympic gold with a deterministic, thorough match simulation, player stats tracking, and full tournament progression. Luxuriate yourself with neat UI a…

A C++23 hockey game built from scratch with a custom OpenGL engine. Coach the Czech Republic to Olympic gold with a deterministic, thorough match simulation, player stats tracking, and full tournament progression. Luxuriate yourself with neat UI as you progress through the game.

This project uses AI

Used AI for research and quality checking; AI never wrote any code.

Demo Repository

Loading README...

robkoo

[!NOTE]
For more info about the changes, please consult the changelog for this update.


Generally, this is a small update whose contents were based on the feedback of my dear girlfriend. It took a while as I tried to not repeat myself, thus I refactored/extracted the line rendering from rosterSelectionScene so I could use it in the lineSwappingScene. I also came across a nasty bug that wiped my forwards from the save, so I tried to mitigate it by changing how the SaveHandler saves players.


Alpha v0.1.3-dev.3

Added

  • Lineup editing via LineSwapScene and shared lineup helpers
  • INFO log level in Logger
  • Shared startup resolution handling in WindowHandler

Changed

  • GameMainMenuScene expanded with CHANGE LINEUP and HELP / HOW TO PLAY menu items
  • MatchPreviewScene and MatchResultScene received UI/layout refresh
  • RosterSelectionScene heavily refactored around shared lineup builders

Fixed

  • Save-load roster integrity
Attachment
Attachment
Attachment
Attachment
Attachment
0
robkoo

For thorough info about the changes, please refer to the version’s changelog entry that can be found right below the version label.


This devlog focuses on the last two commits to the alpha branch. These commits contain additions and changes that will then make up the Alpha v0.1.3 update when it’s ready. I came up with this versioning, for the alpha branch commits (Alpha v0.1.3»-dev.x«) just now, so that’s why there’s two commits in this one devlog. From now on, it will be a single commit per devlog.


Alpha v0.1.3-dev.2

changelog entry

Added

  • a player performance scene which, as of right now, shows your team’s skaters’ career stats (not limited to the current tournament)

Fixed

  • a bug where your game wouldn’t be saved if you clicked BACK TO MAIN MENU in either the winner screen or loser screen

Alpha v0.1.3-dev.1

changelog entry

Added

  • a Modal UI component, which inherits from Rectangle

Changed

  • scene rendering and bounds checking now support component trees (e.g., Modal with internal Rectangle components)
  • scene rendering and bounds checking now flatten all renderable components into an ordered std::vector, then traverse it for rendering/hit checks
Attachment
Attachment
0
robkoo

This devlog only contains the most important of this update. For all the technical details, please refer to the changelog


Overall, this update was meant to improve stability (by fixing some nasty bugs) and increase usability (by adding the helper text).


Alpha v0.1.2

Added

  • resolution switching in Settings (cycling through 4:3 presets)
  • tutorial/helper text for:
    • roster selection
    • training

Changed

  • standardized back button across scenes

Fixed

  • roster clear/load edge cases that could leave stale assignments
  • simulation safety around invalid team lookup and coach dereference paths
  • shooter selection and shot consistency issues in match simulation
  • player runtime/energy edge-case handling
Attachment
Attachment
0
robkoo

Alpha v0.1.1

[!NOTE]
(The full changelog can be found here)


This update is mostly a polish + stability update - same core game loop, but better UI, better save handling, and fewer edge-case crashes/weird states.
Fun fact: because of my UI framework, the actual UI didn’t take that long to implement. I had to come up with the shared UI layer, and the initial UI, but then it was smooth as butter.


Added

  • credits scene with repo link + new credits navigation from main menu/settings
  • save system expanded to 3 slots
  • slot-aware stats persistence (slot1/slot2/slot3) via GameState save token helpers
  • shared UI layer (ui::tokens + ui::prefabs) and richer component interaction states

Changed

  • broad visual/UI improvement across almost all scenes (layout, hierarchy, button patterns, consistency)
  • startup/shutdown flow now respects selected save slot for both saves and stats
  • playoff tab reworked from text list into a visual bracket with connectors and score boxes
  • saves/settings scenes now rebuild on enter to prevent stale state

Fixed

  • playoff progression bugs around direct QF byes / reseeding collisions
  • invalid “next game” detection caused by placeholder matchups
  • scene-transition safety during clicks (deferred callback execution)
  • save safety: empty roster no longer overwrites existing save files
Attachment
0
robkoo

Shipped this project!

Hours: 67.18
Cookies: 🍪 907
Multiplier: 13.5 cookies/hr

I built this game in C++ as a kind of challenge; I am a hardcore C developer and I had to create a C++ game as a school project. I decided to try and make a proper game to understand C++ and I think I did pretty good, but I’m sure there’s tons of C++ paradigms and features I missed out on. I also practiced OpenGL a bit.

robkoo

I updated the makefile, prepared release archives and finished up the release of alpha v0.1

Attachment
0
robkoo

Very early alpha release of the game. Features saving your progress, saving players’ and teams’ statistics (separately from the save file), deterministic game results (if you input the same seed, you get the same result), custom rendering pipeline for text and UI. Game is cross-platform. Your goal, as the coach of the Czech national hockey team, is to win the Olympics. The hockey game rules are following the IIHF rule book, and the Olympics’ groups are based on 2026 Milano-Cortina Winter Olympic games. The full changelog can be found in the repository’s docs/ folder. (Alpha branch)

Attachment
0