Hello everyone!
Thank you as always for your support.
Let's take a look at this week's progress!
The reason why the damage motion wasn't transitioning within the same frame when an attack hit has finally been identified.
In Unity, there are three key functions:
FixedUpdate(), which executes at specified intervals.
OnCollision(), which handles physics calculations.
Update(), which runs as frequently as possible per second.
Previously, all processing was done within FixedUpdate(), but this approach inevitably resulted in a one-frame delay when retrieving physics calculation results.
The key discovery that led to solving this issue was understanding Unity’s processing order: FixedUpdate → OnCollider → Update.
This means that no matter what, FixedUpdate cannot retrieve the physics results of the current frame.
However, since Update() executes after physics calculations, it allows us to reflect those results within the same frame.
In FixedUpdate(), update the hitbox and other state transitions before collision detection.
In OnCollider2D(), retrieve collision detection results.
If a collision is detected, transition the damaged character to the damage state in Update().
Strictly speaking, since FixedUpdate() and Update() run at different frequencies, discrepancies can still occur.
However, by setting a flag in FixedUpdate(), we can force Update() to align its execution attempts.
This one-frame issue took an enormous amount of time to resolve, but the problem is finally fixed. Now, I can move forward!
However, since I had to repeatedly dismantle and reconstruct the main processing flow during this experiment, the game is currently broken.
Cancel actions, coordinate movement, loop motions, and state transitions are not working properly.
I'm currently reorganizing everything to fit the new flow, so please wait until next week for the demo update!
New voice recordings for Soren and Dylan have been completed.
Unfortunately, Patreon does not allow posting audio files in the same way as image files, meaning users have to download the data manually.
I don’t think this is the best way to share them.
Instead, I will implement an in-game switching feature in next week’s demo update.
Please wait until then!
Unfortunately, I have stopped receiving replies from them.
It’s always exciting when people show strong interest in the project and passionately offer their skills, but once we reach the actual development phase, this situation often happens.
Creative work is difficult to sustain on temporary enthusiasm alone.
For now, I plan to continue using free audio resources for a while.
I recently became obsessed with Steven Universe and spent the past week madly tweeting character polls on X.
No, I wasn't hacked.
To my surprise, Lapis was the most popular character, followed by Peridot in second place.
Personally, I love Pearl.
Demo Update
That's all for this week. Thanks to everyone's support, we can continue development! Much appreciation.
Have a great weekend!