Pre-alpha changelog + engine talent talk

We're aiming for getting the first public alpha for backers by the end of this month! Carpenter and I scoped out mechanics that can wait until after the alpha (e.g. grappling, hiding) in favor of tying up the hundred loose threads that are needed for something that approaches a playable game. So this is mostly a big ol changelog of an update from doing that.

But I also gave a talent talk at a local Portland Indie Game Squad event about engine architecture! It'll sound familiar if you've been reading these updates; I laid out the basic idea for this talk almost a year ago, back in the June 2023 update.

We've also signed contracts & had a kickoff meeting with our writers to start on the campaigns. While I've enjoyed like a year of engine-work, it'll be so so nice to start getting to tell stories. Data structures don't mean anything beyond how they affect humans & other life.

New Content

Implemented flying as a status; unit counts as +3 spaces above the current ground level and ignores terrain and elevation extra movement costs. Added hover + takeoff/land animations.

Gave deployables the ability to have 3D meshes instead of 2D sprites; we'll probably use this mostly when the deployable in question is climbable.

Related, I fixed a bug where after terrain destruction, all units recheck the ground height under them so they'll move down if the ground is shot out from under them. When the Jerichos do that, they say "oh heck, the ground is taller! I better move up to stand on it!" — not realizing that the taller ground they're seeing came from themselves. Fixed by locking some units' rendering to the ground level; this means no stacking climbable things, which is a call I'm comfortable making. We ain't making minecraft here (I whisper to myself, gazing at the bottom of my tea mug). 

Block sizes are currently 1x1x0.5 — half as tall as they are wide. Since that was a size I pulled out of nowhere for convenience, we did some art tests for different block heights and camera angles. TLDR that size works great and we're leaving it.

Added Cone AOE pattern, courtesy of an algorithm NMcCoy sent me that guarantees the correct number of tiles are picked at the correct distance from the origin.

  • pick your aim angle

  • for each distance step N of your cone, make a list ("ring") of all the cells at that distance from your origin

  • sort those cells by angular distance from your aim angle, and include the N closest cells in that ring in the cone's area

Here's a gif they made of it in Bitsy:

Units face where you're planning on moving/targeting them.

Got Walking Armory's Shock option working. Added subtle (too subtle, now that I look at it) electricity effect.

Added knockback and fall damage. Also added a bounce to units when it's using an ability or is available to start its turn.

Other things we've added but I don't have gifs for. You'll have to trust me. :)

  • disengage action

  • overcharge action

  • Improved Armament core bonus

  • basic mine explosion fx

  • explosion fx on character dying

  • Increase map elevation cap to 10. It's nice but definitely is risky with increasing the voxel space, gonna have to keep an eye on performance.

  • Added Structured + Stress event and the associated popups. Also added meltdown status (and hidden countdown), but there's not animation for this yet so your guy just abruptly disappears and leaves huge crater.

UI Improvements

Rearranged the portrait maker. Auto-expand the color picker so you don't have to keep clicking into a submenu.

Added topdown camera mode by pressing R for handling getting mechs out of tight spaces.

The action tooltips have been bothering me for a while; they extend up and cover prime play-area real estate in the center of the screen. So I redesigned them to be shorter and have a max height by putting long descriptions in a scrollable box. This sounds simple, but the redesign, pulling in all the correct data for the tags, and wiring up the tooltips took like seven hours. Game dev is hard, yo.

Put the unit inspect popups in lockable tooltips + added a bunch of tooltips to them.

Implemented the rest of Carpenter's cool hex-y action and end turn readout. I'm a big fan of whenever we can make the game look more like a game and less like a website (though he balances out my impulse for that for the sake of legibility).

Added a JANKY talent/frame picker. I swear we have designs for a better one, but sometimes you gotta just get it working. Also seen briefly here are basic level up/down and HASE buttons.

Other no-picture things:

  • Negated the map-scaling effect that happens when the window resizes to prevent bad pixel scaling of mechs at different resolutions; making the window bigger now just lets you see more play area instead of making things bigger.

  • WIP Objectives Bullets panel to give the current sitrep info

  • Wired up a buncha tooltips throughout the character sheet.

Under the Hood

Serialization: can save/load games! This is the payoff for sticking with that engine architecture I've been going on about. I had to add a serialization function to everything in the center layer which took a while, but it was fairly straightforward work with few curveballs.

  • Finished replacement of the kit/unit/reinforcement group/sitrep pickers with a new standardized system that can pull from stock data and user-saved data.

  • Updated to Godot 4.2.2; the game (and editor) has been crashing on exit for a LONG time and for the life of me I couldn't track down why, but this minor update in Godot completely fixed the bug. I still have no idea what was happening, but it's so cool to be working in an engine that's this active bugfixing-wise! 

Other Bugfixes

Pulled straight from the internal changelog, no edits for public parseability:

  • calculate cover for fliers correctly

  • no overwatch when outside of vertical threat

  • fixed skirmisher triggering for each attack in an AOE

  • fixed jumpjets boost-available detection

  • fixed mines not triggering when you step right on top of them // at a different elevation but still adjacent

  • weapon mods not a valid target for destruction

  • made camera pan less jumpy and adjust to the terrain height

  • better Buff name/desc localization

  • Fixed compcon planner letting you both boost and attack with one quick action.

  • Fix displayed movement points not updating

  • Prevent wrecks from going prone

  • fix berserkers not moving if they were exactly one tile away

  • hex mine uses deployer's save target instead of 0

  • restrict weapon mod selection if you don't have the SP to pay

  • fix deployable previews not going away

  • fix impaired not showing up in the unit inspector (its status code is 0 so there was a check that was like "looks like there's no status here")

  • fix skirmisher letting you move to a tile that should cost two movement if it's only one space away

  • fix hit percent calculation

  • fix rangefinder grid shader corner issues (this was like a full day to rewrite the shader to be better)

  • Teleporting costs the max(spaces traveled, elevation change) instead of always 1

So um, yeah, that's my talk, any questions? (I had a professor once tell us to never end a talk like this, so now of course it's the phrase that first comes to mind whenever I end a talk)

— Olive


New mech art style! + terrain destruction, overwatch, ramps


First Kickstarter alpha is available!