Ascension III (and other things) – February 2020 Progress Update

by | 2020-02-26

February was definitely a slower month for Ascension III. It’s been a good month for other projects, and I’ll get into that at the end of this post, but it was a slower month for Ascension III.

I have packaged up and released a new demo of Ascension III, finally, which you can grab from the itch page or the download archive. This has all the good stuff from January as well a few new things. The CommonCore repository has also been updated.

Taking damage and fall damage. The most visible of the new features.

The player movement controller was updated again. There was no dramatic overhaul this time around, just the addition of a few key features that have been long overdue. Fall damage is finally in, crouching finally has an animation, movement values are finally tied to the player’s stats, and stamina finally works. A fairly ridiculous bug where a player could “hover” on their ejected shell cases was fixed. This required reworking the layers various objects are on and how they collide, which was probably overdue anyway.

The other major addition was the PlayerFlags system. This allows a developer (ie me) to attach flags to the game state either persistently or only for the current scene. These flags affect the player’s capabilities, doing things such as freezing them in place, disabling weapons, making them invulnerable, or preventing enemies from targeting them. It’s inspired by ZDoom’s SetPlayerProperty and is primarily intended for cutscenes and scripted sequences, though I’ve already used it in other ways. It’s somewhat limited and I’ve considered extending it in different ways but as it stands, it’s good enough for now.

To be honest, I think building more than I really need has been a trap I’ve fallen into a lot with this project. Some things did turn out to be useful, but others really were a waste of time. Someday I’ll do a postmortem talking about all this.

All of that was more or less the first half of the month. Smack dab in the middle was BC Game Jam 2020, where I built not one but two games: Quattro (Bang Ouch) and Whistler (unreleased).

This is the third or fourth jam where I’ve used CommonCore. I know some people are all about building from scratch as much as possible, but when I do that I feel like a lot is wasted. I much prefer building on what I have, learning some lessons, folding it back in and going further. I don’t have anything against people who go the other route- in fact, I have a lot of respect for that- but it’s not my jam (pun intended).

Whistler, tentatively titled valentines day, is more or less a visual novel built with the CommonCore framework. To be honest, something like RenPy would have made more sense, but I wanted to see how well my own tech worked for a dialogue-heavy experience in practice. It uses the full framework, including all the RPG and FPS stuff. None of that was needed, and I’d have preferred to leave it out, but unfortunately the dialogue system is pretty tied into everything. That’s something I’d like to change someday but I’m not sure if it’ll ever happen. Thankfully, it was pretty easy to disable things, and I decided to throw in a little free-roaming section because why not? Writing dialogue into JSON files wasn’t as bad as I thought, and I got a lot better at it! For various reasons, Whistler will likely remain unreleased, but it was an interesting experience to put together.

Quattro is the codename for Bang Ouch, though I thought up of both names within five minutes of each other. It was my backup game for the jam- I wanted to have something, even if it wasn’t Whistler- and it was thrown together in about an hour. There was very little new code written for Quattro- it was basically CommonCore 2.0.0 Preview 7 plus a few bits and pieces intended for Whistler.

It’s a silly little game, but also a bit of a eureka moment for me. I think I’m really, really close to where I want to be with CommonCore. I’m almost to the point where I can just take a base package, throw together some assets, and start creating a the kind of game I want to create without worrying about all the magic that makes it work. I was at that point with GZDoom, and that’s where I’ve been trying to get my own framework. I’ve said before that this year would be the tipping point and I can almost feel it now.

After the jam, I folded most of the new functionality I built for Whistler and Quattro back into the mainline, along with some bugfixes for issues I found along the way. I also made some changes and added some things I wish I had before the jam. I’ve finally fixed some of the weird typing with some of the game state variables, and I’ve implemented “skippable wait” functions and fadein/fadeout functions as a convenience thing for cutscenes. I’ve made a lot of tweaks, really, but those are the ones that stand out to me.

I mentioned other projects, and February has kind of been a month for starting new things and picking up old ones again. I’ve started working on newip proper, and I’m getting close to being able to announce it though I don’t want to try to cram a project intro into this post. I’ve also picked up a test system for playing around with WARP and software rendering. Finally, I’ve started working on a consolized Neo Geo MVS, which has been one of my dream projects for a long time.

I typically post things as they come up on my Twitter, so if you’re not already following, check it out!

As for March, I have good news and bad news. The bad news is that it’ll probably be another slow month for Ascension III- most likely just design work- but the good news is because I have another game project in the works. It’s a much smaller one, and will probably be done by the end of March, but it’s something I’m pretty excited about.

Leave a Reply