Hi everyone! First of all, we have exciting announcements coming next month regarding this game, so keep an eye out…
While I'm in the middle of trying to work on some essays about concepts developed about this game (“Athletic Combat” - my personal philosophy towards design in this game and “Action (Set)Poems” - my methodology for brainstorming levels) , I'd like to continue with the 'development timeline' of the game (this forms part 3 of that series of devlogs). In the last part, I stopped discussing events up to June 2022 - about a year ago. (As a note, the other devlogs are available at itch.io)
If I were to characterize this time, I would say that we were getting out of that initial 'broad brainstorming period' and into pre-production proper (I recently skimmed this great book, Playful Production Process, about the stages of game development, which helped me visualize development more clearly).
In June 2022, we had just created the Bumpslash idea (it’s worth watching that video to familiarize yourself with what I mean), although we were still working through a lot of other ideas generated during the brainstorming period. For instance, the game's progression - what happens there? What's the story of the game? What do levels and bosses feel like? We didn't have much idea. We can't progress on all these ideas at once, so over May, June and July, I coded a handful of simple enemies, made a few small test levels and a test boss and thought about how they felt. Even if we don't know the story, or how many levels, we ought to get a better sense of what we are going to build a game around.
For today's post, I want to talk about the development of our game's moveset - and how that related to enemies.
Many enemies still exist from this period last year, and you may have seen them if you've watched any of my social media posts. Here are most of the ones that we made early on. I've put some links to videos of their recent-ish forms, too!
bugdogs(a simple slime-like enemy that looks like a cute small insect, that walks in simple patterns).
There were a few variants of these.
Regular ones - they wander aimlessly
Spike - they fire spikes when nearby so you can't hit them during then. But you can attack them quickly before the spikes come out.
"Back and Forth" - they walk left/right quickly
"Follow" - they follow you if you're too close
"Zippy" - very tiny bugdogs that move quickly and have huge poise (which again, influences how much you get bumped back when attacking)
Shielded - they have shields and you bounce off of them if attacking head on
Within these shielded bugdogs, some were more 'aggressive' about pointing towards you with their shieldsTiny
a charger goat (an aggressive enemy that charges towards you and is invulnerable),
the sniper(an enemy that tracks your movement and tries to shoot you),
the wall gunner (simple bullet-type enemy),
the spider(a swift enemy that jumps up and down while tracking you - requiring you to jump to attack)
Bats - a simple, one-hit-to-kill enemy that swoops at you when nearby. Actually the initial behavior of these was exactly like Anodyne 1 - they would fly around you and you'd have to hit them. But at some point that felt so specific that I changed it.
Interestingly, almost all these enemy types exist in the current game. I've made many, many more since then (40+?), and am actually at the point where I might need to cut back on making more, simply because the # of levels in the game might not be enough to accommodate all the ideas! That's a good problem to have, though.
Fundamentally, what enemies do in combat games is constrain space. “You can't move here, or you'll get hit.” If you look through these enemies, they are a pretty balanced assortment of 'space control' and having to be aware of dangers near and far. They also create a division between ground and air, and even your angle to them is important (like with the shielded enemies). Basically they're a great balance of enemies to throw a moveset at and see what works and doesn't.
Of course, there were a few enemies cut along the way - primarly ones that were more strongly tied to elements of the moveset we got rid of. I think there's something interesting in that fact: the more specific an enemy becomes in terms of requiring you to engage it a certain way, the less flexible it is within different combat situations. For example we had a turtle enemy you needed to slide in to flip. Or a big column-shaped enemy you had to slide into to stagger. These enemies could be adjusted to fit into our current Bumpslash combat, but those early versions were too specific. If you saw one in a room, you'd always have to be like 'okay well I have to go slide into that...', rather than thinking as much about how it fits into the composition of enemies as a whole.
History of the Moveset
Still-existing moves are in bold.
2021/09 - 2022/05 - Press attack to slash
2021/09: Jump
2021/09 - 2022/01 - Sword Walljump
2021/09 - 2022/07: Cursor-like Aiming for gun
2022/01-2022/06 Sword Jump (Overpowered)
2022/04: Air Attacks
2022/04 - 2022/10-11 - The Slide
2022/04 - 2022/12 - The Ground Pound
2022/04 - 2022/?? - The Slide Jump
2022/05/30: Bumpslash
2022/06 - Now: Sword Jump (Contextual)
2022/07: Shooting only goes forward
2022/12-2023/01-02: The Spin
2023/02/16: The Double Jump
First, here's a video of some of these moves as of April 2022. ... (For Anodyne fans, please note the broom was a placeholder weapon...)
Sword Walljump: A move that was cut where you could attack the wall and it would let you jump higher - like our previous game Sephonie's Wall Vault. It felt really messed up to slash the wall and fly up. And it seemed too powerful (and platforming is hard to do in the top-down perspective,) it got removed in favor of the "Sword Jump".
Sword Jump (Overpowered): This was an extra jump you got from attacking enemies in the air. We tried this because it felt like it'd be more limited if only hitting enemies boosted you up. It sort of interacted with the Ground Pound (you could boost upwards, then do a ground pound), but it was kind of hard to pull off and hard to control so eventually got cut. Moreover, it felt very limited in its applications to combat.
Sword Jump (Contextual): This is something still in the game, though I'm unsure how much I'll use it. Basically the game has 2D sections and some enemies are harmless and give you an extra jump if you bumpslash them in midair. I'm leaning towards not having this, as it's sort of janky to control and complex platforming isn't really what this game is about.
Cursor-like Aiming for gun: This was the first prototype of the gun, inspired by Wild Guns. A cursor appeared on the screen when holding "SHOOT", and you moved the cursor around to aim. This was pretty hard to make interesting in 3D - you waited around a lot as the cursor moved, it was hard to make fine movements, and it was sometimes RSI-y to have to hold shoot for so long. There was also no sense of 'ammo'. We even experimented with having it be toggleable - you press a button and start shooting until pressing the button again. But eventually this got removed, in favor of forward-shooting’s quick bursts of holding shoot.
Here's a video of that type of aiming. As you can see it's sort of slow and careful. Maybe it would work in a slower, stealthier game?
And here's another, against moving enemies, the "ColumnGuy" (an enemy I removed, although it seems workable with some tweaks)
Jump: Ah, the jump! Well, it's obvious why we kept this. Jumping just makes combat more interesting when we aren't interested in options around parries/rolls, which we weren't interested in doing since really early brainstorming in 2021. Having a jump divides the combat into a vertical space, not just horizontal. And with our top-down view (decided early on) it's not too bad to communicate what's jumpable and what's not. Of course we tweaked this a bit over time, as it became apparent (through level design iteration) that jump shouldn't really be used for any serious platforming.
Bumpslash: We spent April/May last year making some basic test enemies that interacted with ground pound/slide/shooting/attacking. The sort of slowness of these move interactions with the enemies and us playing fast-paced Ys 1/2 and Ys: Oath in Felghana led to trying out the bumpslash idea at the end of May 2022! the directness of being able to immediately attack, and the poise system, turned out to be really interesting and make combat feel a lot faster. We of course kept this and it's fundamental to the game today!
Shooting only goes forward: Even with bumpslashing, there was still a need to attack at a distance. We decided that rather than keep any sense of gun-aiming, it was a lot easier to just have you shoot forward and auto-target enemies. This created a cool sense of directionality (enemies only get hurt by gun if they're vulnerable from the front!) and context - you could only shoot when in front of an enemy, and when you have ammo. You can bump to reload your ammo, so there's a tight coupling between the systems.
The Ground Pound: A self-explanatory attack, it could also be used to bounce off of enemies. The idea was it could be used for switches, attacking from above. This move lasted a surprisingly long time, only removed in December 2022 when we realized that it was basically going to be breaking the flow of combat that was so built around Bumpslashing and Forward-Shooting. Basically, enemy design was hard to do because we had to think about too many possibilities, and the result was that it was hard to really commit to quirky behaviors with enemies if ground pounds could just cheese them. On a more practical note the code for ground pounds was very hacky, so maybe that was a sign it wasn't meant to be. Ha ha.
The Slide: This was introduced as a fluid move that would start if you continued to hold down the jump button after performing a ground pound. The idea was it could stun enemies, or let you push through a crowd of enemies. At first you could slightly control the movement, but a later iteration we made the slide go for as long as you held it, but you couldn't move the direction. Eventually we cut this idea. Part of the original idea was the world's screens were bigger, so it doubled as a traversal move. Similar to Ground Pound, it caused enemies to be more complex without being more interesting - enemy behavior had to account for being slid into. I also found that the 'crowd dispersal' behavior was too powerful. It acted as too general of a solution for large crowds of enemies - just slide into them! I don't like how moves like that make crowds of enemies - which should feel distinct and interesting - feel like generic masses you're meant to just blast through.
Also, the Slide got cut first - because if it were to exist, it makes the Ground Pound feel less like a distinct move, and more like "falling quickly" in order to get into the slide.
The Slide Jump: I don't know when we removed this, but it was a high jump you'd get if you released jump while sliding. I guess the idea was to combo it into a ground pound, but it was unwieldy and eventually pointless when so much of the combat shifted to shooting/bumpslash.
Air Attacks: While not an explicit feature (just something you get for free from having jumping and attacking), when I made the Spider enemy, it was apparent that attacking in the air was pretty interesting! And not too hard to have enemies account for it. This was a bit suspect to use before we added Bumpslashing as there was a janky element of aiming, but now basically you'll hit anything if you jump towards it. (As long as it's vulnerable!)
The Spin: Kind of a funny idea: When we removed the groundpound/slide, I think the reaction was to keep some kind of move that could be used for air dodging and stunning enemies. This would let you fly forward in the air while spinning, to hurt enemies. We messed with the movement physics but the ultimate conclusion was that it felt kind of pointless and unruly. None of the bosses/enemies we were making felt like they really needed spinning, and as for not getting hit by enemies when jumping through the air, I erred towards making the Bumpslash hitbox a bit taller.
The Double Jump: The last move we added! I think what the slide and spin spoke to was some need of avoiding attacks, since we don't use traditional methods like dodge rolls or shields. While a single jump and movement are plenty, the double jump is great because it gives you an additional decision complexity of "should I stay in the air or not?" We did add some limitations though. The double jump in this game is extremely weak. You can't really use it to gain much height. Double jumps in platformers are controversial - I feel they add too much error correction unless it's a very expressive, move-heavy platformer, and so they can flatten the feeling of levels. But as this is an action game, adding the double jump isn't really a concern in that regard.
About Level Prototyping
It's worth noting that many of these moves got cut or added in response to lots of testing. We would make some moves, build out levels/enemies, and see how we felt about it, if we felt there were limitations in making the levels. The groundpound, free-aim shooting, and slide, were all really early ideas - tested on extremely basic versions of bugdogs and bats. We needed them to be there to have 'something' to do in combat, but as we developed enemies and tried out bumpslash, they turned out to not be necessary. The free-aim shoot felt too slow in the context of Bumpslashing, so we made that more minimal. But we couldn't have figured that out without making a bunch of enemies or test levels!
Basically, as we prototyped levels and ideas, we could get a sense of what kinds of things worked and didn't. Each time this happens it gave us more information and confidence to try out more enemy ideas. There were breaks of time in between tweaking the moveset (e.g.: our Ireland trip in July, our November trip for talks, and the holidays), so we had time to reflect more carefully.
Of course, that still leaves the problem: what do levels feel like in the game as whole? How exactly do we fill levels with enemies? How do those levels fit into the world? If you only have a few moves, how do you make interesting levels?
Those are questions that we explored in parallel with the moveset development, and this year, once the moveset really felt finalized - I think we started to make good progress on what levels would be like, enough to decide to move from pre-production to production proper! And finally, as of earlier this year, I finally feel really confident about doing enemy/boss design, since the moveset is functioning so well - to the point we've been able to conceptualize the game's levels/combat with terms like "athletic combat" (my personal philosophy that motivates how I handle boss/enemy design and composition of enemies into rooms) and "Action Set(Poems)" (a methodology for brainstorming room and level concepts that focus on 'poetic' combinations of enemies and how you proceed through them).
That is, even though the moveset seems minimal, it really opens the door for a rich and varied game experience.
Anyways I'd like to talk about that a bit next time!