Combat Design

Up until now I've been working on getting the bones of the game working, the bare systems needed for the game to function. Now I'm starting to work on some content, some design. I'm not quite out of the prototype phase yet, but it's getting close, and this week was dedicated to really dialing in the base combat for the game.

When I started the week I wanted to have the game in a state where combat (without extra utilities) was both fun, and kind of looked the way I'd like it to be, AKA, I want the player to be a glass cannon at all times, I want them to never stand still and most importantly I want them to feel when things aren't going well.

So I started off with some basic bits: Enemies didn't have much of an array of weapons, and getting hit didn't feel quite right. I added a bunch of new Howitzers of various calibres, created visual hit effects and staggers, and audio effects by layering several takes of me hitting baking trays on top of each other. (I'm particularly proud of that foley) I think the overall effect really sells being hit.

After that it was all about diversity in enemy types. For now there's just two bodies for enemy tanks, medium and super-heavy, but they cover both the average enemies and the boss types pretty well. After loading them up with the weapons I already had, I quickly sketched out the basic mechanics of the two missing weapon types: missiles and rails and added them in. Initially I had missiles doing AOE in a similar manner to explosive world items but I quickly realised that made them incredibly overpowered, and I want to dive into why.

Exoloper is built on a component system, each component can send and receive events back and forth between each other and their overall parent entity. I chose to build my own abstraction of this for performance reasons, but it's not too dissimilar to Unity's standard component system. This means that each "part" of a mech can be destroyed, from legs, to servos to engines and weapons, even the "pilot" is a part capable of taking damage. Several components are flagged as being "core" and their destruction will in turn destroy the unit, stuff like engines, the pilot, Legs for Exos, etc. As it stands the damage system from explosions just grabs all components within a collision sphere (because damage can only be done to a component) and damages them equally. This lead to situations where Missiles, designed to explode on impact or within a certain distance of their target, would just AOE the pilot every time.

Wasn't expecting that behaviour, but hey, its fun! In the future I'll consider changing the system so that it uses a raycast instead to check components that can be damaged. This should avoid an insta-kill on the pilot so long as the Exo's armour is in tact.

After adding missiles and working on enemy units for a bit more, I added Railguns. Again this was the kind of thing that took me a week or so for Interloper, but mere minutes for Exoloper. Goes to show what a couple years and a better framework can do.

All in all the game is shaping up to be pretty close to what I'd initially envisioned. It's starting to get that same hectic feeling that Interloper gives you, those sweaty "oh crap" moments when you turn a corner to see a heavy-tank or an enemy Exo staring you down. Most importantly it went from "I can see where this is going" to "I'm legitimately having fun playing this" this week, which is probably a good sign I'm on the right path.

Exoloper Tasks completed: