New mech art style! + terrain destruction, overwatch, ramps
Hellooo again, friends! It's that time again — how has the last month of development gone?
Art + Sound
The most exciting update: I'd like to introduce you to Gen (@gentrigger), our new mech artist!
Yo, I'm Gen. A non-binary artist who wears many hats including ttrpg design, pixel art, and illustration. I've admired mechs since catching Gundam Wing on Toonami and renting Armored Core 2 from Blockbuster. That love of their mechanical design and dramatic stories lead me to the lovely Lancer community where I've made a living illustrating over 100 lancer mechs and their pilots for players. I'm hoping to bring that experience to Lancer Tactics to bring these well-loved designs to life for way more people, and leave my personal touch where I can. When not working on mechanical friends, I express my other loves for masks, deities, and overgrown cities with my own personal TTRPG project Songs we Sing.
Gen has been working hella quickly, and has already made sprites for the Death's Head, Goblin, Nelson, and drafts for the Hornet and Drake in this gorgeous front-and-back-facing isometric style!
Other art updates:
- Added an x-ray vision shader so you can see mechs and planned movement lines while they're behind terrain.
- Added the ability of a mech to have alternate sprites; we'll need this for the Everest especially. A possibility (that I'd be interested in hearing opinions on) is in addition to some generic-ish Everests, we'll let you choose from any size-1 NPC sprite for your Everest. This'd give folks the most freedom in their appearance without making much extra work for us.
- I had a lot of fun in working on an out-of-bounds cloudy area! Here's some styles we decided not to go with:
I specifically did NOT want to do an Into-The-Breach "floating block island" style; I want the map to feel like it connects to a larger world instead of being an isolated chessboard. And doing any kind of "fog" style meant we'd have to add an out-of-bounds area around the edge of the map which meant reworking the coordinate system — not an ideal way to spend our dev time.
So here's where we landed. The map ends, but there's a flat animated area outside of it with blocky, shifting pixellated shapes meant to evoke "weather radar". The map is also slightly inset with a small lip to literally make it "embedded" in that outside world. I had a very focused few days learning enough about shaders to make this kind of effect, and picked up a few techniques that I'm going to bring back to other effects like command zone edges.
- Robin convinced us to integrate FMOD as the way to handle sound composition and mixing. I was skeptical at first because it meant pulling in a hefty piece of third-party middleware that is only kind of community-supported for Godot, but I have been won over by how much easier it makes adding interesting variations like having multiple footstep sounds as units move. It also lets Godot delegate that kind of logic over to FMOD's editor, allowing the game engine to just say "play a footstep sound" and not worry about it more than that.
I also ended up submitting a PR to the Godot-FMOD integration, which I think was both my first time contributing to an open-source project AND was my first time writing any C++!
UI
- Made custom versions of a lot of basic godot UI components so we could easily control font size. This will be an ongoing effort to make sure the various sizes are used on and work on all screens, but I'll rest better knowing the that we have a solution on the technical side.
- Added basic settings menu + persistent config file for audio volume and text size.
- Can edit pilot background/name/callsign/mech name in char sheet.
- Carpenter added manufacturer icons + colors to the character sheet, and improved the gear/weapon picker.
- Can add weapon mods in the character sheet (thermal charge).
- Added a lockable terrain attributes inspector.
Game content + mechanics
- Whenever Gen makes a new sprite, it inspires me to add its content immediately. By following these breadcrumbs, I've added Nelson frame traits + its simple gear, some Archer systems, Everest frame traits and CP, Goblin traits + autopod + Horus upgrade I, Deaths head frame + traits + a lot of its gear. I'm learning that the speed at making a frame varies greatly: some things are very easy (weapons without more than the basic bells an whistles), while others require reworking a bunch of internal logic and unique moving pieces (giving a free boost for the Everest was weirdly hard because it's the only thing in the game that provides one and needs to be available for anything that interacts with boost).
- Added Overwatch reaction.
- Mechs spawn wrecks on destruction.
- Added a context-verification system for Reactions to guard against situations where the triggering unit dies before it reaches the second reaction, e.g. if two overwatches trigger and the first destroys the target, the second won't crash the game because it's targeting a dead unit
- Added "additional damage" field so weapons like bolt thrower can do multiple types of damage. As a bonus, this has made it easy to add weird amounts of heat on hit for things like the Hornet's Impale tech attack.
- Set up Manufacturer as resources instead of hardcoded values as a future investment in modders being able to add their own manufacturers. Once again, mod support isn't on our list of promises, but I'd be a fool to leave a landmine like "manufacturers are hardcoded" for our future selves.
- Ramps! These aren't a mechanic in Lancer RAW but they make a lot of sense to have as a mapmaking tool — there's no extra cost from climbing for stepping up on a ramp, which ends up being a 1-move discount for an equivalent climb. It's the same numerical niche that the DH magnetic clamp feet thing does, and I learned this last weekend that Eld had independently invented the exact same thing for Solstice Rain.
- Line AOEs are calculated correctly and show up during the attack process.
- Ironed out terrain destruction & a single instance of damage being able to cascade down to lower layers if it destroys the top layer. This is a lot of fun!! Here's a juiced-up railgun digging a ditch across the map.
There's more thinking to be done about how let AOE weapons interact with destroying the ground like this (nobody wants Jackhammer round to be used literally anywhere) but the dream of a Barb Apoc Rail leaving a huge crater will be realized, and I think that's beautiful. 🥲
Coming up/status update
Some of my next todos are:
- Get writing/narrative work started up
- Sort out our block height; we've been defaulting to them being half as tall as the are long/wide, but we want to try out a few other ratios.
- Figure out how to handle attaching separate units for grappling, goblin CP, mule harness, etc.
- Implement the Flying status.
- Set up a "pilot roster" screen
- As always, keep working towards a playable demo by playing the game and adding missing things. We should probably get a clear version of what a "vertical slice" needs to include instead of just kind of feeling our way there.
As for the Portrait Maker, Martina's not had a lot of time to work on the assets, so making the standalone version of that is on pause for a bit. Always better to kick things back than crunch to hit self-imposed deadlines.
Until next time!
~ Olive