January 2020 Progress Update

I've made quite a bit of progress on Ascension III this past January. I've written up a summary of what I've done this month on my website, but in short:

  • Added gameplay and difficulty options
  • Cleaned up the weapon handling code, improving hit detection and fixing weapon switching
  • Implemented support for melee weapons and raise/lower animations
  • Implemented a bunch of stuff in the dialogue system, bringing to feature parity with where Katana left off
  • Made some long-overdue tweaks like hiding the gun on death and clamping looking up/down

This is more or less a mix of addressing the backlog of features that need to be implemented for the next demo and finally addressing the feedback and ideas from Full Indie Summit 2019. I've summarized it all in the linked post, but there are a few things I want to talk about in more detail.

Gameplay Options and Accessibility

Over the past month or so, I implemented a difficulty slider and a whole bunch of gameplay options. I knew I had to implement difficulty options at some point, but hadn't planned on tackling it for a while yet. Watching some people breeze through the demo and some struggle was enough for me to move it way, way up in priority.

Difficulty is not defined as a single value, but rather as a set of parameters. Things like enemy strength, spawn frequency, and experience multipliers can all be set independently. In this system, "Easy", "Medium", and "Hard" are simply presets with sets of values. I'm not sure if there's a proper or accepted name, but I'm calling it Parametric Difficulty. I haven't seen a game expose this (with one important exception below), though I'm sure some use similar systems behind the scenes. At this point, I've implemented handling of the values in various calculations, but haven't got to building a UI for it yet. You can see the empty space where it will go above.

There was an excellent presentation about accessibility at Full Indie Summit 2019, which you can watch here. It's a very interesting talk in general, but there are two specific things I walked away with that are directly relevant to Ascension III. The first was bringing a released game that prominently used parametric difficulty to my attention- Way of the Passive Fist. It was kind of a eureka moment that turned a vague idea floating at the back of my mind to something that could be done and would be useful. The second was that giving players more options doesn't just make them happy, it can sometimes mean the difference between being able to play a game and having to walk away.

I had already been considering a parametric difficulty system, and I'd already been thinking along the lines of giving players choice where possible, but that talk really cemented things in my mind. It showed that parametric difficulty has been done and that certain options are useful for more than just personal taste. It especially pushed me to expose some of the gameplay options I'd thought about hiding.

I actually obsessed over one thing in particular: the crosshair. At first, I didn't put in a crosshair. I liked this setup, since it emphasized the use of sights (ADS) to make anything resembling a precise shot, but some people who tried it really weren't into it. I know I can't make everyone happy, and I'm not even trying with this project, but some of the reactions were critical enough to make me second-guess that decision. I liked it the way it was, and so did some of the people who tried it, but others were turned off.

Ultimately- and influenced by that talk- I decided to set a default but leave the decision up to the player. It felt right, and even liberating. Yes, it affects the balance of the game, since ADS isn't as useful, but it's not a competitive multiplayer shooter, so does it really matter all that much? As the creator of this game, I have a certain idea about how it should be played, and I'll let you know what that is (through defaults), but if you to play it a little differently (through options), that's fine too.

It's not going to be a perfect accessibility story, nor one of endless customization. There's only so much I can do with the time and resources I have available. But there are small things that can make a difference, and I've implemented these where possible. For example, I put view shake effects behind a config toggle, so you can turn them off if they make you sick or simply if you don't like them. Screen flash effects will be under a similar toggle, though none are implemented yet. In short, I'll do what I can. I try to listen to feedback in this area, too. Some stuff I just can't do, but sometimes I'll hear something simple that I can throw in, like the one guy who really wanted an inverted y-axis.

Dialogue System Updates (or Katana Lives On)

The dialogue system in Ascension III/CommonCore is now (more or less) at feature parity with Katana at the time of its abandonment. This required adding support for face images, backgrounds, music, and blank frames (basically pages with conditionals that are executed immediately and never shown).

This isn't really significant. The dialogue system was already basically good enough for Ascension III, although I did add a few new features like built-in skill checks, pronoun substitution, and camera control. It's still not possible to toss Katana's data in and play it within Ascension III, due to differences in format and a lack of support for non-dialogue scenes in that format. But it feels good, or at least like putting another nail in Katana's coffin.

I've also updated the dialogue UI a bit. I'm still not happy with it, but I think it's moving in the right direction.

All The Little Things

I've probably spent as much time on various little bugfixes, tweaks, cleanup actions, and minor features as I have on the big stuff. The scope of this project is huge, and there's a massive backlog of stuff that needs to get done at some point. Some of this stuff is critical: changes based on feedback that I want to test at the next opportunity, actual literal game-breaking bugs, or clumsy slow code that gets used all the time. Most of it is fairly small stuff, maybe even just a one-line change. Some of it is groundwork for a feature that I plan to implement later. Most of it is quick, some of it takes a lot longer than I though it would. To be honest, most of these little bits and pieces aren't hugely important or massively urgent, but all of them need to get addressed at some point.

With so much ground to cover, it can be hard to stay focused, and sometimes it's overwhelming to look at the massive amount of work left to do. I've found it really helps to sort tasks into boxes, mentally if not in planning tools. Gameplay/difficulty options was one box, fixing up the weapon system was another, and fixing the dialogue a third. I can pick a box to work through all the pieces of, pushing the rest of it to the side and only touching it if I have to or once I'm done going through that box. So far I've worked through the box until I've finished everything I had planned for it, but I think setting a time limit and working through as much of that box might work, too.

I think I've mentioned this before, but CommonCore is planned to be used in (and in fact has already been used in) more than just Ascension III. All my Unity projects going forward use at least the core code, and some will probably use the whole package. This makes planning things a little bit unusual- I hear frequent advice along the lines of "build what you need, forget about what you don't". There's definitely stuff in here that I don't need for Ascension III, but I do need for something else, and that can muddy the decisions about what to work on next.

What's Next?

The priority is finishing up features that are critical for the next major demo (Frangis). There are a few bits and pieces left, but the only big chunk is the character controller. It's still missing support for swimming, crouching is kind of terrible, fall damage and effects need to be added, and the sound code has to be completely rewritten. I'm hoping to get that done within the next few weeks so I can move on to building the demo itself.

I also really need to step up the planning and writing for the Frangis demo. I've been meaning to get to that for months now, but have always had one thing or another that's been higher on the priority list. I might end up in the situation where I have to pause or at least slow development so I can catch up with the design side.

I'm done with the weapons system... for now. I already have a list of things I want to add to it, but those might have to wait until after the demo is more or less complete.

BC Game Jam is coming up in two weeks, and I'm already committed to going. It's going to be a blast, but it's also going to be a break from this project. Still, I think getting the character controller fixed up and enough design work to get started done by the end of February is doable.

Finally, I'm still on the fence about releasing a demo with the current features. I really want to have the character controller updates done as well, so I'm thinking an updated demo near the end of next month. Then you'll finally be able to check out some of this stuff without trying to track me down in real life*.

*Please do not do this. If you really need to try it that badly, shoot me an email and we can work something out.

Get Ascension III

Leave a comment

Log in with itch.io to leave a comment.