Objectives
This week I spent most of my time on design thinking.
Exoloper has been built using a bottom up method: build out the minimum viable product, and then add to it as I go. I personally prefer this approach as it allows me to quickly build the core loops of the game, and then design around those. This means though that often I'll come to a point where I need to design a concept, and simply stub it out gracefully. One example of this has been handling objectives in the combat scenarios, up until now the game simply checked to see if either a) all spawned enemies were inactive, or b) the player was inactive. It'd then boot you back to the campaign with little ceremony, not really conducive to feeling like you've accomplished much of anything.
So the goal this week was to figure out how this is all actually going to work. Helpfully listed in my task manager as :
It took me longer than an hour.
The basic idea is that each Point of Interest on the campaign map can have an array of "scenarios" tied to it. When the player begins combat, one is picked at random. Each scenario lists out the enemy types, quantities, an objective type and finally the actual map to load. Each map therefore needs to support the kinds of objectives available for each scenario. This seperates the concerns of map building, scenario definitions, and enemy compositions.
So for example, a Campaign POI might have a scenario labelled "destroybuildings-tanks-difficult" or "destroyforces-exo-verydifficult" or "capture-convoy-easy". each of those will determine the kinds of enemies that spawn into the level, or which buildings are active. For instance, the targeting capacity for buildings is only enabled when "destroy buildings" is active.
checklists that are explosively satisfying to complete
This week also saw me adding some basic UI elements for objective UI, and for tracking components that aren't just enemies in worldspace. Turns out sometimes things are as simple as you'd expect. Target buildings are handled the same as units, controlled by the same systems (albeit without some functions, like movement... though.... moving building boss you say?....) So, as long as they get initialised along with all the enemies, boom, target icons. (keen eyed readers will see an exo-paper-doll icon next to the unit. That's just me being lazy, each "base-unit-data" entry has an optional icon that I've not yet set.)

One thing that came about whilst testing objective gameplay this week was that when you completed all objectives, as I said before, I'd simply boot you back to the campaign screen (or main menu for quickplay), and this felt jarring. I didn't want to throw UI in your face, and while I'd thought of adding some animation or something, that'd get tiring pretty quickly. Instead, I added "exits" to the combat space. Each level now has an array of entrances and exits for the player, and now, once your objectives are complete, you may leave.
The image above has an important clue though: You can leave before your objectives are complete. I think it's important to have retreat as an option in games. It's rarely ever explored, but it's a critical component of any conflict. Sometimes it's better to leave, lick your wounds and try a different approach, or to just leave that particular conflict altogether.
Going back to where I started this post, everything is designed from the bottom up, so right now, yes you can leave a mission, but the campaign only cares that you're alive after returning from a mission, so for now that still counts as a win, and the campaign clears the combat status of that POI. Another stub of design to follow for another week.
Exoloper Tasks completed:
BUG: Enemy buildings register as "units" for destroy units objectives.
Feature: Bug report system added
UI: Combat objectives need proper localised text.
- UI: for objectives in combat
UI: Campaign: Cleared travel button when nothing is selected.
Design: Player now must physically exit combat levels.
- Design: Combat objectives added.
- Design: Destroy buildings objective added
- Design: Added ability to target objective buildings
- Design: Added combat exit points
Design: Combat: Reduced spread on Vulcan weapons
New Combat Map: AA Battery.
a lovely view of my sleeper cabin's seat, pre folding down
mw3 inspired zoom lens, no.. not that mw3
ma the rains are coming
At the start of the week I play-tested the game a bit, and there was something sorely not fun about having the entire map of enemies aggro'd against you from the moment the game loaded. To combat this I tweaked the AI's awareness systems and the UnitPart systems to build a radar signature for each unit, I then applied the same approach to a visual signature. All of this leads to rudimentary stealth mechanics for the game, do you take the most powerful weapons and risk letting every enemy know you're here, or do you go quietly taking out patrols around the map one by one?
I also spent a bunch of time this week on AI behaviours, setting up their abilities to flank, to decide if they go toe to toe or back off when engaging enemies. All of this works independent of the player, so the option exists to setup firefights between multiple AIs that the player can take advantage of. As someone who's avoided doing much in the way of AI behaviours so far, it's gratifying to see them both a. doing the thing they're expected to do and b. doing so relatively performantly!
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.
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.
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.
My level editing suite in all it's glory. Yes it's mostly default unity with a grid placement system.
legendary suggestion
I distinctly remember the first time I did this. I was about six months into developing Unstoppable, I'd had some breakfast, and was sipping coffee when as I was idly thinking through some implementation ideas about putting a pneumatic hammer into the game, I realised I could create a damage zone and attach that as a weapon to the trucks. Boom! Buzzsaws! It's was a trivial idea, but I genuinely had no idea how to do it before then. I spent the next hour or so on modelling + animating and coding the buzzsaws, and then the rest of the day ripping enemy trucks to shreds with them. I knew I had something good right there.


the medium-exo in all it's editor-prefab glory
Charge is a game I love deeply. It's been the title I've wanted to make since before I got into the games industry in the first place, and so the decision to put it on the backburner is not something I take lightly. I'm not sure if the game needs a total rewrite, or if there's enough of a good game sitting there as is for a future launch.
Kevorki Lord overseeing her guard at the battle of Krag Pass.
Replay feature in full swing
Look at those dice rolls and logs.