This week I've mostly revised the way skills work in the game and cleaned up a lot of months-old code!
If you're one of the few still keeping up with these posts during this prolonged slog, thank you! I wish games could manifest more quickly, but there are definitely slow periods which require a lot of patience from us all. I'm trying to push through it to completion, though!
Taking a week off did seem to renew my enthusiasm, and I've had some good, productive days this week. The roadmap progress bar doesn't exactly reflect it though, annoyingly!
See, Atonal Dreams started off as Divine Dreams (or as the 'MARDEK Remake/Reimagining' before that, hence the annoyingly-no-longer-relevant tag I've kept reusing on these posts) at the very start of the year - ∞ the first post is apparently from 8 months ago ∞ - and what I'm working with now is essentially the same as what I set up in January. Over the months, though, I've made various changes and revisions to my ideas - this seems to be common in games development, hence all the stuff that ends up on ∞ the cutting room floor ∞ - and that's led to the accumulation of a lot of code and assets that aren't actually doing anything except cluttering everything up.
(As an aside, it's so strange to me how this many months have passed since I started on Divine Dreams! It feels like a lifetime ago, but also what have I even been doing during all this time? It feels like I'm constantly busy, and yet I also feel like I'm still 'just starting' on Atonal Dreams. I suppose it just illustrates how long games take to make... or maybe just my own poor organisation or something.)
The skills/battle system in particular has been irritating to me for a while because of how it's come together, especially behind the scenes. There's this gif from that very first post, which shows that skills (and their effects, including reactions) already existed in a basic form from the very beginning:
Skills there appear in the lower right corner, and each has an element, an attack type (body or mind), and a cost, and presumably properties like a power value which aren't shown. Simple, straightforward.
...I started writing about some of the technical details of how skill data is stored and executed, but it's not very accessible or easy for me to explain. It might be interesting to just look at a few screenshots of how selecting skills has worked at different stages in development.
Version 1
In ∞ this post, from 9 weeks in ∞, this simple screenshot shows that the skills were essentially the same as they were at the start, as a vertical menu in the lower corner:
The only real difference is that they can be levelled up.
Skills also seemed to be linked to equipment, as seen on the menu screen here (also from that post):
Version 2
In ∞ this post, from about 4 months ago ∞, I started making drastic revisions to the skills system and UI which I've mostly kept. It saw the introduction of the body + dark/light mind stats, and these UI status 'statues' that I really like:
I'd also separated skills from equipment, and given pieces of equipment lists of properties which were made clear to the player in the menu:
Skills were instead learned independently of equipment (through plot events was the plan), though you could only equip six at a time, as seen in this skills menu:
When you took your turn in battle, you'd be presented with a menu of four options corresponding to controller buttons:
Most characters had a standard 'Attack' skill which could be used freely from here, but to access their palette of six other skills, you had to press an additional button to bring up a menu like this:
This system was okay I suppose, though working with skills - adding new ones for characters or monsters for example - never felt very pleasant for me. Some monsters had no basic Attack skill, so there was just an empty slot on the four-options menu, while others only had an Attack skill so there was an empty slot where Skills would be. I had to set up the data structures assigning separate skills to the 'attackSkill' property and 'skills list'. Plus the skills being out of the way like that made them feel less significant or even forgettable, like an aside.
Version 3
This brings me to the past week's revisions.
As before, pieces of equipment each have lists of properties, which are shown to the player in the menu like this:
I've recoded skills such that they now also have lists of properties which can be displayed in this way on the UI. There's a lot of technical coding stuff I did which took time but isn't worth talking about, but you can see the results here:
All characters - both playable and tamed monsters - now have a palette of six skills which includes whatever they use as a basic attack. Playable characters would have skills unique to them, but monsters would have skills from a generic list, Pokemon-style. I like that.
I imagine UI prettiness isn't important for everyone, but it is for me, and I really like these carefully-crafted skill buttons and find them enjoyable to look at and to use. They're pleasing to me as a designer too, as they're fairly dense with information but I don't think they're overwhelmingly cluttered. You can tell a whole lot about any given skill at a glance without having to memorise each of their effects - or constantly check descriptions - as you might have to with, say, Pokemon moves. There are descriptions if you hover over a skill though, as seen here.
You select between the slots using the controller's analogue stick (or whatever they're called these days), which means the number of inputs required to access any skill is identical. Maybe a lot of modern games do this anyway, I don't know! Selecting a slot brings up a menu of learned skills you can equip in it:
It looks the same in battle as it does in the equipping menu:
Playable characters can access the potions menu using a button, as before:
Some mechanical details:
Skills previously had a cost. In version 1, they subtracted from your body or mind stat when used (I think? I forget), while in version 2 a body skill might subtract body, while a dark mind skill would add to your own dark stat so you could eventually fall to darkness through overuse. It seemed unnecessary though, so I removed any cost entirely. Instead, the arousal system already limits skills to ranges, so you could for example have a very powerful skill that's only accessible at 100% arousal, but which lowers arousal by 50% when used, or another which can only be used between 40 and 60% arousal so you'd have to carefully balance arousal to use it. I could always add an 'increases own dark stat' effect to some dark spells which I want to have that risky effect.
Only some skills have runes. Those that do have their power adjusted based on the runes relationships I've described a few times before. They're something you'd likely not worry much about, but which you could cleverly manipulate for big damage. I've finally drawn some proper icons for runes now (instead of just using text fields), which I like! They look a whole lot more like actual runes now.
Most player character skills could be increased in level through repeated use (they earn XP equal to the amount of damage they inflict), though monster skills wouldn't have levels because there's no point. In those screenshots, the 'basic attack' skills don't have levels yet either, though I might change that. Currently levels only go up to 6 and each has the potential to add significant multipliers to damage (eg level 1 does 100% damage, level 2 does 120%, level 6 does 200%), though since I don't have any other level up system, I wonder whether I should make the level range more similar to a typical RPG's character levelling, with more frequent, gradual power increases? (Something like (100 + level)% potency?) That way, maxing out skills too quickly might not be an issue. Something to consider.
New skills would still be acquired through plot stuff (like Savitr teaching Collie a skill, for example).
That took most of the week (mostly from rewriting/reorganising a lot of old, cluttered code), though I also did some other stuff!
I (mostly) animated the four monsters I made last time (Pawnite, Somunculimp, Brigrrnd, and Psyclop). Here's Somunculimp attacking (from before I did skills revision, so it's using 'Attack' rather than 'Slap'):
And here's Brigrrnd using Bite:
It should probably attack with its tail instead, and it doesn't even open its mouth to 'bite', but I wonder to what extent animations will really matter in the end. As long as it's functional and not completely hideous, right?? I don't know. It's probably not worth stressing for hours trying to get it perfect, though. Animation costs a lot of time!
(I still need to add particle and sound effects to those skills, but that takes time too!)
I also revised the title screen. It's looked like this for months:
Now it looks like this:
I've been imagining the look of the drealm for months, as this swirling chaos of dream potential, though I was unsure how - or if - I'd be able to pull off what I had in mind. Would I use a fancy shader which distorted a texture or something?? Thankfully it was fairly easy to get something I'm quite happy with using just a fairly simple particle effect, so that's good!
Something like a title screen isn't exactly the most important feature, but I see it every time I open the game, so it helps to have something I enjoy looking at.
I also composed some music for it. Maybe I could post that on Patreon.
My aim for this week was to animate the monsters, decorate this small island that you start on, and then add a starting battle with Pierce and some dialogue scenes surrounding it. Too much for one week, probably. Instead I ended up spending a whole lot of time on skills revisions which I didn't predict, but which I am satisfied with and pleased I did. It's not a good idea to get lost in feature creep, to have some wild idea and stop everything to cram it in, but this was more like the opposite, if anything: trimming and refining existing features that were causing me frustration rather than adding entirely new ones. And there was a lot to trim and clean up considering the process that's led to this point!
Once I do finish those other things though, I should be able to upload the game to Steam and make a demo available. I could see that being possible within a month, but who knows! Let's see how it goes.
1