NokiMo
shibagani48
shibagani48

patreon


Weekly report May 1/4, 2025

Hello everyone!
 Thank you as always for your support.
Let's take a look at this week's progress!

Due to circumstances explained later, this report was written while I was away from home. The rough illustrations were drawn with my finger using the iPad Notes app.

Also, please note that this week’s content is quite abstract and might not be very enjoyable to read.

Refactoring Work

Following last week, the number of elements to manage for Story Mode implementation has increased rapidly, making the codebase more complex, prompting a review of the current code.

Let me first clarify: the creator of Hellversus is not a professional programmer. All coding is self-taught, and due to frequent ad hoc additions, some of the central classes in the game have turned into so-called “god classes.”

A "god class" is not a miraculous, all-capable class, but rather a bloated one filled with all sorts of responsibilities, resulting in excessive length, poor readability, tangled dependencies, and becoming a hotspot for bugs.

In this project, the BattleManager and CharacterManager are examples of such classes. To fix this issue, I realized I needed to learn about "architecture."

Architecture

To put it simply, architecture means organizing the code structure clearly so that bugs become easier to trace and the role of each class is well-defined.

For fighting games, the Onion Architecture is said to be suitable, so I decided to try that approach.

First, the code is divided into large layers based on role. At the center lies the core layer, and all other layers depend inwardly toward it — never the other way around.

Think of dependencies like company hierarchy: the core domain is the president, with middle managers and then regular employees on the outer layers.

The president communicates broad policies, middle management determines the details, and the employees execute the tasks. Neither the president nor the employees need to know what the other is doing in detail.

With strict separation of roles and authority, what are the benefits?

To put it more plainly:

It’s wonderful. There’s no reason not to refactor. So I enthusiastically started converting the current code to Onion Architecture.

I was making good progress at first, but I gradually realized that fully organizing the layers and dependencies would require a massive amount of time — so I gave up.

The current code resembles a god class where the president issues strategic directives and takes care of middle management and employee tasks.

Even breaking that up is costly.

Instead, I decided to go with a more practical approach: gradually reorganizing the layers and dependencies as I create necessary parts moving forward.

As a test case for unified dependency management, I reorganized the scene flow system.

Previously, everything would be handled in a single class called SceneFlowManager. But this time, I split the code like this:

Core Layer

Scene Layer

Dependencies flow from top to bottom, and lower layers are unaware of the upper layers' workings.

Breaking it down to this level seems to improve workflow, though I was initially shocked by how much the number of classes increased.

Escaping from Home

I didn’t manage to fix bugs in Battle Mode, but I did complete the implementation of the story flow.

So I had planned to update the demo this week to include a story-only version without battles.

However, I was forced to give up on this week’s update as well due to the following reason:

Those who have supported me for over a year might already know this, but in my region, there’s an annual three-day festival around this time.

It involves flying giant kites, and it’s customary for me to lend out my home garage as a storage space.

As a result, festival participants party from morning till night in front of my garage, making it impossible to concentrate on work. So I escape my home every year during this time.

Since three days is not short, I tried using Remote Desktop to work from outside. It’s a service that lets you control your home PC from an iPad or iPhone.

To use it, the PC needs to stay on. But just as I was about to leave, the electricity in my house suddenly went out.

At first, I thought the breaker had tripped, but neighbors told me the whole town had lost power. Later, I checked the power company’s website, which confirmed it was due to equipment trouble.

I don’t know for sure, but since it happened just before the festival, it was probably due to a wiring mistake with temporary equipment or power shortage.

Whatever the reason, my PC shut down forcibly.

I wanted to turn it back on before leaving, but with no clue when power would be restored — and since the festival crowd was about to show up — I gave up and fled.

I planned to write and submit this report from my hideout, but the allure of sauna, food, alcohol, and sleep created a blissful, lazy loop I couldn’t escape. That’s why submission was delayed until today. Sorry!

Due to the above, I was unable to update the demo this week.

In any case, the story mode flow still lacks the branching into the continue screen.

So I plan to release a better-adjusted version next week that will allow proper play.

That's all for this week. Thanks to everyone's support, we can continue development! Much appreciation.
Have a great weekend!

Weekly report May 1/4, 2025

Related Creators