Look at them go!
Where the previous devlog was discussing the changes in the theme and the journal, the next few releases focused making the Ordeal (i.e. “combat”) more visually rich, in a way that the player can more clearly understand what the torments did to them during their turn, and also see the effect of their action.
One change that took me quite a bit of refactoring to achieve were what I call the “flying icons”. I got this idea from trying out tuggowar as I liked how the moving icons effectively displayed what happened in an otherwise still game.
As I’m still incapable of any artistic talent, but I have plenty of free icons, and lot of experience tweening, I decided I could use the same approach, until someone comes up with something better at least. The initial result was surprisingly easy to achieve. On specific ScriptingEngine tasks, special icon animation class would be launched which would asynchronously from the mechanical effect, shoe the icon representing the effect of the script, move from the source to the target.
It looks like this
If you look closely, you’ll notice that the actual effects of the script happened before the icon reached where it needed to be. I.e. the health damaged flicker would happen before the icon reached it etc. And this bothered me. I wanted to be able to synchronize the two.
Well that was a way harder achievement. You see, the way that the Card Game Framework Scripting Engine works is that you encode the action you want the card to take when played (or triggered) serially in an Array. Each element in that array is a Dictionary and is called a task. Each task has a name which maps to the the actual method which does the thing.
But the whole mechanism was completely automated. Once the Scripting Engine started, it went on until the script aborted due to failing requirements, or the effect manipulating the table state. But now I wanted to add a way to delay the last bit, the manipulation of the table state, from happening until the animation has finished playing.
Long story short, I needed about 1000 lines of refactoring to make it work but the result looks more clear
But, playing with that a bit, I noticed a problem. If you are used to the game, the new flying animations actually make the overall game slower. As each animation now takes around 0.4 seconds, and you have to wait for each of them serially, take 5-6 torment intents activating in a turn (not too rare) and each end-turn takes 2-3 seconds longer on average. All of these will add up.
So I decided that I wanted to give the option for impatient players like me, be able to go back to the asynchronous mode of flying icons, and just live with the visual effect happening a bit earlier at the benefit of gameplay speed. So now there’s a setting toggle, not just for that, but also for the speed of the flying icons (in case you want to stay synchronous, but still go faster!)
And while I was on the subject of icons, I also added animations on the icons Increasing/Decreasing/Spawning/Despawning as well. I think it looks fairly neat!
There a bunch of other visual improvements that have been added in the Ordeal now, which hopefully make the whole thing a bit more alive.
Tell me what you think!
Leave a comment
Log in with itch.io to leave a comment.