In this update1
Full notes
Full Frostory update
Read the full published notes in a cleaner layout. The original post stays linked below.
Repeated intro
Hello! This time, I’d like to write about how we improved our weapon rotation handling.
What changed
- Gameplay
- Maps
Frostory changes
In our game, weapons rotate for various reasons, which means they can be seen from many different angles.
To represent this, we sometimes draw pre-rotated sprites, and other times we rotate images in code. But as these two approaches mixed together, the code gradually became more complex.
Angle Mapping
To simplify the code, we chose to record the rotation value for each image. It has the downside that when the artwork changes, the value needs to be updated too—but compared to drawing the sprites, it’s a small task.
So we created a tool that maps rotation and offset values to each pixel-art sprite.
Thanks to this, we were able to remove and simplify many parts of the code. And with this data mapping, we were also able to implement several additional features.
Motion blending
When a motion cancel happened due to a dash or getting hit, the weapon would momentarily look awkward before.
Now that we can always know the weapon’s current angle, we can smoothly interpolate its rotation.
Showing rotational inertia
If we know the weapon’s angle, it also means we can track how much it changes. In other words, we can know its angular velocity.
Before
After
Procedural animation
For the spearman enemies in our game, the sprite is split into the character and the spear to express the stabbing direction.
When you thrust with a spear, you would normally use both hands, but if the pose of the opposite arm doesn’t change with the spear’s angle, it looks awkward.
Previously we omitted the opposite arm, but by combining this system with the dynamic pixel-object effect we had built earlier, we were able to express it.
That’s it for this post. Thanks for reading!
Source
Changelog.gg summarizes and formats this update. How we read updates.
