As promised, the first progress update of 2020! This one is just about Ascension III, because that’s what I worked on, but I might mix things up and do general progress updates later in the year.
I was finally able to get to implementing some of the changes based on feedback from when I demoed at Full Indie Summit, which was way back in September 2019. Some were minor tweaks, like increasing the aggressiveness of the dragon or fixing some of the terrain that would allow you to escape the map, but others were new additions which went hand-in-hand with some of the other stuff I had planned.
I finally implemented some difficulty and gameplay options. I had intended to implement these at some point, and I moved it up way higher in the priority list based on feedback and a presentation I saw at the Summit. Ascension III now has fairly standard difficult options- easy, medium, and hard- plus a custom option. The custom option is a work in progress; it’s implemented in the framework but has no UI for actually adjusting it. Difficulty is a set of parameters, including player strength, enemy strength, detection chance, and skill and level multipliers, and each difficulty setting is more or less a preset for those parameters. I had been considering something like this in the past but it was a game shown during one of the presentations at Full Indie (which unfortunately I completely forgot the name of) which did the same thing that inspired me to go ahead and implement it. Some gameplay options were planned, while others were added to the list based on feedback and the same presentation at Full Indie Summit (if you can find it, the presentation was on accessibility). This includes autoaim, ADS mode, crosshair toggle, subtitles toggle, and enabling/disabling certain effects.
The weapons handling code was totally overhauled, and almost all of the stuff that was missing added in. A few more animations were added, notable weapon raise and lower, damage calculations now actually use stats and skills from the RPG mechanics system, and recoil/spread can now vary based on player movement. Hit detection was reworked to be cleaner and more reliable, and to properly handle headshots and other “specific body part” hits. Proper crosshair handling, hit indicators, and autoaim were also added, in concert with the gameplay options mentioned above. Finally, melee weapons were implemented. They’re handled a little bit differently than ranged weapons, using a different codepath and different animations. Weapons switching also works now, which is good! The code is still messy and annoying to work with, but it’s getting better. It might be good enough as-is, but it’ll probably get another round of work done on it. I have a (much shorter, now) list of things I still want to add.
The dialogue system also had some work done on it. Support for overlaying backgrounds and portrait images was added, as well as overriding world music. Support for “blank frames”- basically, dialogue pages with conditional actions that are immediately executed and never displayed- were added. This pretty much brings the dialogue system in Ascension III/CommonCore to feature parity with Project Katana at the time of abandonment. On top of this, the dialogue UI was revised and some limited support for controlling the camera was added. Skill checks have also been improved and are now natively supported in the dialogue system with their own syntax.
Finally, there were a plethora of bugfixes, cleanup actions, and little changes to Core. A few new APIs were added to the audio player, and additional string substitution was added to handle player pronouns and a few other things.
There are still a few more feedback tweaks to do, as well as a bunch of work on the character controller. Those will be the next steps. After that, it’s on to planning and building out the next major demo!
I haven’t put up an updated demo yet, but if you’re curious about the code it’s been pushed upstream to the CommonCore repository. I also talk a little more about some of this in a devlog post. Finally, I’m also hoping to put out an updated build with all this goodness and more some time next month.