Activity

robkoo

And for the cherry on top of the up-’n-coming v0.0.1 (pre)release, some actual ray marching shaders. I draw a quad covering the whole viewport and then apply shading in the fragment shader to draw a deformed sphere with simple diffused lighting and curious colors. I spiced it up a bit by passing time to the shader so it glows periodically (based on sin()). In the future I reckon its entirely possible to make the camera movable and light not hardcoded.

PS: For the curious, v0.0.1 update will be out when I add windows compatibility.

Attachment
0
robkoo

Another OpenGL thing that I implemented this devlog is some basic shape rendering. I added nice functions for rendering a triangle and rectangle to the screen. It’s kinda inefficient but I tried to focus on first having something work and then improving it later if necessary. Data is passed to the functions via a structure that contains the position info and the shape’s color.

Attachment
0
robkoo

First of the things required for rendering are shaders, and this devlog/commit I added a simple shader abstraction layer. The file, for now, it exposes a simple CreateShader(..) function which takes in paths to vertex and fragment shaders, and returns a structure which, as of right now, contains just the program ID. I also fixed the odd bug, which was simply caused by not initializing (malloc-ing) some internal variables. It all should work correctly now.

Attachment
0
robkoo

Another core thing to tackle before the fun shader stuff. I added a dedicated logger, which is just a few functions to neatly display logs, and two macros to wrap them for convenience. Curiously, I have encountered a peculiar bug which I can’t seem to find the root of. the LOG(...) macro segfaults if I use it in the main render loop, but nowhere else. In this case, the LOG_RAW(...) macro doesn’t. Also sometimes internal char* buffers for color and label fail (see the screenshot) and I simply have no idea why, as always happens with one specific LOG and no other ones.

Attachment
0
robkoo

In the first hour (and some minutes) of this project I simply set up my repository, which includes, but is not limited to, the directory structure, Makefile, README contents, the GPLv3 license and wrote some window abstraction code. That means, at this point in time, I can open a window. The project currently only runs on GNU/Linux, but in the future, I plan to support Windows operating systems as well.

Attachment
0
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
robkoo

Very early full release of syedm. Features installing, removing and checking status of symlinks. You can preview changes by passing -n; --dry-run flag which will only print what it would do, instead of making the changes. Project includes a simple CLI argument parser, which distinguishes between short (-n) and long (--dry-run) flags. It also supports grouping flags together (-ni).

Attachment
0
robkoo

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0