posted in Projects Of Some Degree Of Interest

And It's you again! Well, it's Saturday ... So it's time to publish a new blog post! This week has been full of small, subtle changes. Although no significant changes have been made, last week was a very busy one nevertheless!

Loading phases

First, let's start with arguably the most obvious change of them all. I decided to split the level generation into descriptive steps. This way, the player stays informed throughout the level generation process.

Each time the game completes a step a GUI element gets updated. You can also specify a completion percentage. Some games (The Sims in particular) use this to increase the immersion in the game.

So I decided to follow suit and gave each step a very Vaporwave description.

And here's how it looks:

Minor Updates

Big UI refactor Changed the UI colours. Now each element got its own colour scheme.

Refactored how most UI elements updates their colours: There are three types of update events: Atlas Updates, Window Updates and Container Updates. Elements that update themselves with atlas updates events waits until the current level index changes, after which colour updates happen. Elements that update themselves on window updates will instead wait until the window factory colours changes. Those elements can then fetch the standard window background colour as well as their standard header bar colour. Finally, elements that update themselves with a container update will wait until an abstract element (named "Container") changes its foreground and background colours. Refactored how texts in windows change their colours by using Container Updates events Refactored how windows change their colours By using Window Updates event Refactored how buttons change their colours by using Atlas Updates events Refactored a whole bunch of UI modifying classes so that they instead extends actual UI classes. This means that there's a bunch of new custom editors everywhere. This includes localized text , localized buttons , atlas tinted buttons , tabs, an much much more. This means that there's a bunch of pointless Animators components to remove. Thus less component to update thus better performance. Refactored how tabs works The actual tab itself now extends the Unity's Toggle class TabGroups now also extends the ToggleGroup class in the same manner Much like Unity's base Toggle , the relationship between Tabs and TabGroups are now described in the Tab class instead of the TabGroup one. There's a new TabContent class that deals with transitioning between tab states and whatnot. Most of these new Tab classes also get updated with Container Updates events. Renamed most UI elements to use standardized names: Every UI elements start with Vapor and end with Component. Refactored how Notifications works Now, most notification inherits form each other, thus less duplicate code. Changed how the Notification Queue works Now some notifications are marked unique. If another unique notification is about to be emitted we instead refresh the existing one with a little wobble. This way we can greatly reduce the amount of notification in the queue. Refactored how Notification Emmiter works so that they work with the new system Tweaked notifications priorities a bit. Refactored how Tooltip works Refactored how hoverable components work

Fixed a bug where the wrong CurrentCulture was being used

A bunch of other miscellaneous refactors and optimizations

Next Week

I'm not entirely finished the UI refactoring. Thus, finishing it will be my priority for next week. After all this, I want to focus on the enemies and, above all, the bosses.

And then comes your usual suspects.

But most importantly, I really want to focus on optimizing the game. I plan to have some kind of demo presentable very soon. I'm really trying my best to profile the game and identify weak points to which optimizing is critical. It takes time to get through all this data, but I'm confident I can do it.