I've got the idea I talked about last week - an integration of music into the battle system - mostly working!
I've had a productive week! Rather than just describing the main thing I've done, here's a video of it in action:
It's essentially the proof of ∞ a concept I brainstormed about last week ∞, which might be the best way (that I can think of) to go about implementing the musical resonars into an RPG battle system.
(I've used the term 'Dynamusic' in the code, but explicitly naming gameplay mechanics - a la Oddworld's 'GameSpeak' - feels like a dated, tacky thing to do!)
Essentially, everything's bound to the beat of the music, so all turns start at the beginning of a bar (or 'measure' if you're American, apparently), and animations are scaled so they're exactly the length of a bar; you can see it if you pay attention (opponents' attacks consistently land on the starting note of a bar), which I suspect will be something not really consciously noticed but which will help the battles feel like they flow better, maybe.
Since the biggest issue with previous attempts to solve this problem was that playing melodies over the top of the background music at random times clashed badly and sounded ghastly, I added a replacement to the old reaction system that encourages the player to at least start their melodies in time with the beat:
When you select a skill, you see a stream of bar/capsule things corresponding to the bar divisions in the music, and the aim is to press a button down when the pulsing circle in the middle is within the area around one bar - which is tighter or wider depending on the skill - and release it on the next. You can take as long as you want before the first button press. If you 'tie together' two consecutive bars in this way, you get a bonus - currently it's 150% damage, but I might make it something else like an XP boost for the skill you're using - but if you miss either, you still do 100% damage; you don't miss like with the old reaction system.
This is only used for the characters attacking, currently; I intend to use it for blocking, too, but that's not added yet.
I'm hoping it'll let players feel like they're interacting with and influencing the music - even making their own, in a way - without adding frustrating complexity like requiring them to specify actual melodies or tediously tap to complex rhythms for every skill.
Each of the characters play their musical motif as a melody made of two two-bar phrases, but you only get the second phrase if you successfully hit both points (press and release) of the rhythm reaction. Unlike my plan last week, the figmon don't have melodies; sound effects will probably be enough, and this massively saves on dev time and effort... though if using tamed figmon will be a big part of gameplay, maybe it's something I'll rethink later if I stick with this system (unless their summoner/tamer plays when they act, or something).
I feel like handling the melodies like this is the best solution I've experimented with so far... though it's still imperfect, and there are still times when the melodies clash with the music underneath. I composed the backing music in blocks of four bars - like most music is - meaning that melodies sound much better if you start at the beginning of one of those four-bar blocks, and dodgy or clashing if you start on, say, bar 3, and your melody bleeds into bars 1 and 2 of the next four-bar block. I considered having start-of-4-block bars look different somehow when you're choosing where to start playing - and maybe they give a better bonus if you start playing on one - but that'd mean a lot of just waiting for several seconds which I feel isn't considerate of the player's time.
Maybe the melodies sound okay as is even if they start at less-than-harmonious parts of the backing music, or maybe I could experiment with some ideas to minimise dissonance... Though using too many restrictions would result in very flat music, maybe. I can barely move between chords as it is without the melodies clashing with some (they already somewhat do at some points).
Originally I planned for there to be an 2-, 4-, or 8-bar 'groove' pattern that played on loop beneath the melodies, but this proved to be way too short to the point of being agitating, so I extended it to an A section and a B section which last around 40 seconds or so in total. For this track, at least. There'll be many of these battle tracks, each with their own backing and melody variations.
Intensity is also now a gameplay mechanic - shown by the bar at the top - and when this gets very low or high, the music changes and a damage modifier is applied to all damage delivered (currently half at low intensity, double at high intensity). I'm unsure how exactly intensity would be modified; it could be based on plot events, party state (any wounded, one foe left), skill use (some raise or lower intensity), or something else.
It that video, it happens fairly suddenly without apparent reason to demonstrate the mechanic, but I'm hoping in actual gameplay it'll help with immersion and excitement.
A lot of the stats and stuff still need balancing. Savitr's heal barely affects Collie at the moment, because it's Abstract and she's very Real - and these Rabbishes have shifted Savitr's runes towards Real here too so it's even weaker - so I'll probably have to rethink that early skill!
'Arousal' no longer affects damage, and I probably will rename it Wakefulness, as I've said previously. It'd still determine turn order - so it's speed, essentially - but I'm thinking having it at 0% or 100% would produce Sleep and Mania statuses respectively, as I also mentioned in a previous post. I'm still not sure what they'd do exactly, but an idea I keep coming back to is essentially the same effect as a couple of Pokemon status effects: Sleep would give you a 1 in 3 chance of 'dozing off' and missing your turn (so like Pokemon paralysis rather than sleep), while Mania would give a 1 in 3 chance of hurting yourself instead of acting (like confusion). I've been too busy focused on the music system to devote time to figuring this out, though.
There are a bunch of visual issues that you can see in the video, which I'll need to address. Music playing animations need to be extended and improved, and the camera blurring is too extreme for many shots, among other things.
Currently, while you're selecting a skill to use, the camera revolves around, and while using skills, it often jumps around to focus on the user or target or whatever, to make things more dynamic. But I remember people complaining about this in the alpha test a few months ago, so I've been wondering for a while whether to just use a fixed camera for battles, like how it is when the Rabbishes use their attacks in this video. Seems like it might be too static, though, so I'm uncertain. I know I could add some kind of toggle in the options, but if everyone would just turn off the moving camera then obviously there's no point spending dev time refining it (and it does need refining).
I wrote ∞ a post a few days ago about DAWs ∞ - Digital Audio Workstations - which are programs most people who compose digital music use to do that, but which I've never used myself. The program I do use, Sibelius, is presenting some irritations related to getting this music system working (basically I need to export the tracks in like a dozen different parts to get the dynamic aspects working, and Sibelius can't export only a selected area, at least without plugins, which my cheap-plan version doesn't allow), so I've been thinking of switching over to a DAW.
A couple of people - and a video in that post - mentioned MuseScore as a free alternative to Sibelius. I downloaded it! Though I've only tried it briefly. I hoped it might be able to open Sibelius save files - like how the free art program I use, Krita, can open Photoshop saves - but unfortunately not, plus how you do anything is different to what I took ages figuring out in Sibelius, so I'm not exactly eagerly moving over to it or anything. I might play around a bit more, though.
I have more I could say, but that'll be enough for this week!
Oh, I did spend an afternoon working on a base model for that Mentales thing:
I like the proportions! And I like this degree of low-poly blockiness for a similar reason to why peopele presumably like Lego minifigures. I experimented with scaling just the torso to give sexually dimorphic looks (bigger torso = macho hero type, smaller torso = feminine) without having to make separate male and female models, but that didn't work out, unfortunately!
I also broke through one of my various mental barriers to actually post on Reddit this week. GASP. Nothing important or game-dev related, but I felt a significant shift in my mental state after doing so; like I'd woken up from a stupor or a dream or something. "I'll make a habit of this!", I thought, only to return the next day and see that someone had said something my mind interpreted as vaguely hostile in response to one of my comments, causing me to recoil back into my shell. I'll just have to keep trying.
I still haven't decided on a computer and should really stop procrastinating about that!!
My parents are going on yet another holiday all next week, and I'll be tasked with looking after the community centre thing my step-dad usually looks after, and the dog. So I don't know how much work I'll get done. I could just take the week off, but I was going to take time off around Christmas, plus I'm in an excited phase with Atonal Dreams, so... we'll see, I suppose!
5