I think I need to start thinking about my enemies. What types there are, what behaviour they have, how it related to their theme and level. What weapons they use, what abilities they have. How strong, fast, etc. they are. Basically, all the things design. At worst, I want to make some prototype ones and implement all the needed features in parallel.
I don’t know what sort of theme my game will have. I’ve been thinking about it a lot and I have a few ideas from abstract to fully arted. My current plan is to have a bunch of modular robots as enemies. Mainly, because the art should then be easier: less organic, more blocky, simpler on any rotation/direction, fairly reusable and made of parts, especially for bosses. I can then make mob entities from “parts” and even use that for gameplay and procedural visuals. We’ll see how it goes as I add a bunch of programmer art meanwhile.
There’s a bunch of things I need to do before I can start “making new enemies”. (Isn’t there always?) For one, I need some randomness in weapon choice. Currently, enemies just select the gun I specified in their definition. What I want is (yet another) asset that specified the weapon for the enemy:
And it can reference the same weapon for now:
But the enemy now references this and can share it between similar enemies:
And the next step is that I can extend the weapon asset and have it provide multiple options, such as weighted randomly selected weapons:
And this means, most enemies will have pistols while some will have machine guns:
Yay, variety! This does however mess up my AI a bit. Enemies fire a couple shots with a machine gun and start moving/flanking again. The issue here is a weapon fire penalty in their beliefs:
I definitely want to keep this, but I can tweak it to have two different triggers, depending on the weapon used:
And this now keeps the enemies with machine guns firing in full automatic for a longer period (theoretically, ~4 times longer, but other factors kick in, so it’s more like 3-4 times longer).
I’m going to add enemy shotgun too. And then wonder how I am going to balance it all. At some point, this will need a whole lot of playtesting.
I this point, I need to clean up my enemy definitions and level themes and related assets. Firstly, I will just define my current scope as a “factory” level and al; enemies as variation of a “junkbot”. Both are non-specific (don’t have actual design or direction; yet) but also specific (have a name instead of “default” or “generic”) descriptors.
So to recap, I have enemy definitions, as many as I want:
Each mob gets their own animator with relevant sprites:
I then make collections relevant to how enemies are selected and distributed in the level, currently trash, regular and boss:
The level is then a factory:
The dungeon is generated as a factory level:
And all enemies are appropriate factory enemies:
This might sounds like a lot of assets that one needs to know how to wire and reference between themselves. And yes, that’s true. But each one also hold dozens if not hundreds of other properties and shared values, so it’s the minimum of organization that I need. Especially, when I have many multiples of each “part” — other levels and other enemy types. I’m sticking with one, because any breaking changes I do have to be fixed across the board and fixing a few assets is much preferred for me while developing. In fact, I feel like investing some time in editors (and quick sub-editors) is worth it in the long run (where me running out of motivation later is concerned):
I also want to work on mob variation. For starters, here are a bunch of differently-sized sprites for mobs:
And in-game, this looks like this:
I keep changing my mind on this, but I don’t think I actually want my enemies to drop weapons if the enemies are robots that have guns mounted. May be some boss or something, but it might not be the same gun they actually use and probably just a loot table. So back to:
So the player cannot pick up these anymore (maroon-gray is enemy, gray is player).
I can also organize and consolidate my level-related assets: dungeon generation and such:
I’m also tweaking and fixing lots of it, especially distributions, such as more hand-crafted types and amounts for enemies:
In fact, I’m making a quick debug in-editor preview so I can quickly see what the collection (randomly) produces for different amounts:
Anyway, this about does it for various enemy things I need to do. Mostly it was just getting it ready for big changes that I will cover in future posts.