Intro
Comparing this ship to the original Alpha v0.1 one, there are quite a few huge changes in the game. I will go through each version since the first ship one by one to familiarize you with how the game evolved since.
Fun fact
Since Alpha v0.1, 56 files have been changed, 5543 lines were added and 1121 removed. Substantial progress has been made.
(Checked via git diff v0.1..v0.1.3 --stat)
Alpha v0.1.1
This version brought a HUGE UI overhaul. Alpha v0.1 featured (mostly) basic white-on-black UI, while in this update, visual chrome was added to each scene, giving them some depth. There is also a neat animation in the main menu. The tournament info scene for play-offs had also been revamped, now featuring a bracket style UI, instead of the old, simple text. Honorable mention goes to: being able to have 3 save slots instead of 1 :)
Internally, I added files for storing standardized UI elements and UI values (ui::tokens, ui::prefabs). Biggest example of this is the scene chrome, which is standardized across all scenes from this. Button interaction APIs were also massively expanded.
There’s a ton of changes to go over, mostly tiny compared to the UI overhaul, so I won’t go into too much detail over here. Feel free to read the CHANGELOG entry here for more info.
Alpha v0.1.2
This update focused on usability. Biggest changes include the addition of persistent helper bars to the roster selection scene and training scene. It also included changing resolution, so you could finally enjoy the game at a higher resolution, if you wish to do so.
The simulation was also touched on a tad. Now, the selected shooter on ice is selected via weighted random sampling (based on shooting stat), rather than picking a player with the highest shooting stat (currently on the ice).
If you need more detailed changes, you can find the CHANGELOG’s entry here.
Alpha v0.1.3
And last, but definitely not the least - Alpha v0.1.3. A brand new UI component was added - the Modal. Now, modals can pop up if you try to do a destructive action, such as reset tournament data, as to confirm your action. They are also used for info, which can be seen on first entry to Game Main Menu.
Internally, modals required a rewrite of how the Scene class handles components. Previously, it just iterated over its internal arrays of components and components groups and simply rendered them. This wouldn’t have worked with the new modal, so I added support for nested component trees. Now there’s a neat method to serialize the UI components into a single array, which is then easily able to be iterated over, and the method ensures correct order for rendering modals, modals’ components and the rest of the scene.
Another quite notable change is the addition of a player statistics scene. Ever since the early days of this project, players had a ton of statistics tracked, such as goals, time on ice, penalty minutes and so on, but no way to showcase them. The scene features a neat paginated table, ordered from the player with the most points, to the least.
Last big change of this update was the addition of a line swap scene. This required me to extract the line rendering code from roster selection, so I could reuse it in this scene. You can edit your lines via swapping compatible positions (e.g. C<->C, LD<->LD).
If you wish to read more, check out this version’s entry here.
Outro
If you made it all the way here, thanks for reading this message! The game has come a long way since the original release, and I hope you will enjoy it:) The most challenging part of this ship was definitely all the UI stuff, as I’m not that well versed with UI. I’m proud of how the game has improved, including simulation, UI, more scenes to explore and such, and I’d definitely like to keep working on it. Let me know in your votings’ reviews what I could improve, I would greatly appreciate the feedback.