Be gay // do giant robot crimes. A mecha tactics game adapted from the Lancer TTRPG (under its third-party license).
The game is NOW AVAILABLE on itch.io!
Latest Updates from Our Project:
Module editor & celebration livestream
5 months ago
– Mon, Apr 13, 2026 at 06:09:49 PM
We're doing a celebration livestream on the 15th (two days from now) at 3-5pm PST. Here's the youtube stream link. Josh and Carpenter will be joining me IRL as we play Lancer Tactics (I so rarely actually play the dang thing) and do a Q&A about the game & the process of making it; if you have questions for us you can drop them in this google sheet.
Writing up the promised Kickstarter report card has been more emotionally taxing than we were expecting, so it's not ready today. I'll be posting it on the 15th along with the stream. We just need a bit more time to go over what happened & how we feel about it.
Other than that, here's the changelog for this month's build:
Highlights
module editor enabled, experimentally. This basically a mini visual novel maker that can stitch combats together with downtimes & narrative beats.
can upload and download modules to and from mod.io
placeholder portraits for the new stock pilots, from the kickstarter backer rewards
added distance ruler tool (holding shift, same as the editor)
Content
a buncha new ability FX and SFX
another batch of new portrait assets: skin colors, tattoos & face smudges, hats, jewelry
added cataphract and engineer NPC tokens
new sound fx & music mixes
Added "eject pod" fx for downed lancers and certain NPCs.
increase character limit for barks (from 64 to 128)
fix npc character sheets not having name/callsign
pilot roster entries are collapsible (we still might go back to list view, but this should make it less noisy)
fix creating duplicate "custom pilots" sections when creating pilots from the category + button
Mechanics
PC
can siege ram setpieces
vlad doesn't don't dismember self when using crack shot or grappling
fix symbiosis switch control situational action not showing up
remove arcing from siege cannon direct fire
minotaur correctly loses all its speed when entering engagement with other characters; it doesn't count as larger when it's initiating the engagement
minotaur can pick up the payload (previously, it was not able to enter the minotaur's space due to localized maze lol)
annihilation nexus centered on a drone doesn't trigger your own turrets & correctly enables the followup protocol attack
can apply Leadership dice to attacks you make from drones
predator/prey concepts can use variant actions like thrown (but so can predatory logic now)
can puppet systems allies through other allies
held image only triggers at the start of other mech turns, not drones
fix dusk wing explosions not catching nearby units/playing the explosion fx
fix: hunter lunge fails to trigger drag down damage
fix weapon type restrictions (and lack thereof, respectively) for seeking payload and avenger silos
don't autoconsume all lockons when attacking with a launcher from a monarch
fix cable winch drag only working when starting adjacent
grease monkey III charge no longer resets whenever you spend any repairs
prototype weapon charges are only rerolled on full repairs
multiple Open Channels no longer can affect the same character
a bunch of fixes having to do with the ghoul nexus; it now overwatches from where it is instead of trying to do so from the unit & can recall it
lockbreaker doesn't lock out UNCLE weapons
not locked out of lockbreaker movement forever if you ever decline it
post-attack lockbreaker happens after followup aux attacks
can lockbreaker a skirmish from an overcharge action
fix deep well heat sink priority so it affects type 1 flight system
balor self perpetuating repairs during downtimes; not just at combat starts. Full repair beats actually full repair.
drake fortress CP provides knockback immunity to all sources + correctly ignores brace restrictions
fix combat drill overkill heat not corresponding with its bonus damage
NPC
Can try to break grapples from harpoon cannon & lasso
assassins mark is no longer shared between all assassins
engineer turrets aren't affected by engineer's impaired status
hard AI round cap on mobile printer being used multiple times per round
fixed berserker doing fall damage to itself when harpooning a larger character
fix witch's Blur never applying
Hive's Razor swarm is no longer a character (again? I stg I've fixed this before)
charged slash should no longer be used on allies ++ have the AI make the choice if the AI gets targeted in some other way (eg player-controlled ronin)
fix breacher thermal charge sometimes not moving because it tries to either target the line on the way there or some unreachable final target
scout rebound scan correctly auto-hits allies
scout pathfinder boost correctly consumes rxn
Engine
fix infinite range attack glitch when you have to disambiguate targets for a melee attack
fix teleporting while going in a straight line causing you to teleport individually for each step
soft-cover setpieces grant soft cover when you fire through them instead of only when the target is standing within them
invading allies no longer clears hidden since it doesn't count as an attack
can move payloads when dazed, but no longer stunned
Jericho cover no longer gives hard cover to itself
Rider units (latch drone, mule harness) do not take fall damage when their host carefully climbs down a cliff.
correctly reapply buffs when a kit is repaired (e.g. ultra siege armor resistance)
oasis wall doesn't deploy on tiles you're currently occupying for size 2+ units
fix escort+extraction not extracting the payload // triggering victory.
UI/Graphics
new combat start/new round/combat resolution banners
don't offer to consume leadership dice for bonus damage when you can't deal bonus damage with the attack
fix stabilize heal option desc when at full hp
fix meltdown causing the game to hang out for like 10 seconds afterwards. punched up/fixed meltdown camera shaking
fix "immune to knockback!" spam when targeting grav gun
numerous positioning fixes for stationary fx like shields
aoe lines and cones can target spaces outside of their elevation range, but the AOE tiles themselves get filtered out later. warn if doing an AOE attack with no targets.
heavy gunner rank 3 shows laser pointer at both of its targets
duck the music when in the pause menu
fixed NPC cloaking field aura size
brought default mech colors into new color systems
remove duplicate confirmation for eye of horus
show Action = NONE actions in the gearbar, for informational purposes (autogun, autopod)
show limited charges in glossary tooltips again (asura)
fix sentinel drone warning showing at too many tiles
only ask to confirm canceling portrait maker if no changes were made
can retry failed battles
fix water block being too tall in map previews
setting input keys no longer fails if it would clear another control
fixed bug where zooming out sometimes made hologram units totally disappear
can cancel/zoom in/zoom out while mouse is over the void
fix Control score sometimes not updating correctly
change cursor shape when hovering over texture buttons like Back
fix overcharge icon resetting to start after the fourth
full repair clears "melted down" state and lets your mech start showing up in the UI again
maybe(?) fixed errant black squares on crt-filter UI elements
can advance through dialogues by pressing space in addition to clicking screen
adjust cloaking field fxe to be less seizure-y
add terrain information to the distance investigator
defense net doesn't spam text on units moving within
Editors
add summary text entry to combat tool, which can be used for the intro banner playing
re-enable unit save-as button in combat editor
resizing map no longer fills in the lowest elevation with blocks
unit palette has a search bar, bigger sprite buttons, and lists deployables/markers with their name instead of a blank image
Added missing localizations for the new setpieces+doodads (crate, crates, consoles, etc)
removed "my_first_map" as the default map when you open the editor for the first time; instead, highlight the "new" button
add "downloads" list to the editor file lists (alongside "user" and "stock") don't fit the beat dropdown to longest beat name
dialogue blocks can stay available after being run
fix landscape block previews not having their side textures shown
No longer able to level up freely during full repairs within a module; show warning mark when there are unallocated choices for a pilot.
Beat dioramas will fall back to camera start zones // center of map if there's no mech slots
image media can be webp/jpg in addition to png
Triggers
add "rename unit" event
"Use" zone event: flag to make "use" zone actions reusable, can specify what units are permitted to take the action
Can add and remove lancers to modules via trigger.
add module trigger that modifies a unit's sitrep tags
Added extraction event to just remove a unit from the map, with flags to skip fx/logging
combat start is now the default trigger event, sorted the list alphabetically
Terrain getting damaged can trigger triggers
change faction unit counter to skip drones (so restock drones don't prevent elimination victories)
Dialogues
added 5-person conversation layouts
be able to add conversation lines after the selected one, and playtest from the last selected line
Fix crash on pasting line breaks into a conversation line
fix behind-choice word bubbles blocking choices
added a "handshake" stage direction for conversations
Internals
instead of making a ton of "_savefile" combats and littering the user directory, added an option to the pause menu that explicitly saves combats that we don't already have (so, given a only an Instant Action/editor savefile, you can still extract the map into your own editor)
refactored how mechs are assigned available sprites/meshes internally to set us up for easy modding-in of new graphics in the future
F11/F12 no longer win/lose combats; added them as console cheats instead
We're so near the finish line for the kickstarter, I'm so tired, gonna land this plane. See ya later.
Olive
3-year anniversary! (update next week)
5 months ago
– Wed, Apr 01, 2026 at 05:52:11 PM
It's been three years since Lancer Tactics funded!
We're still putting the final screws on the final-Kickstarter-phase build of the game & accompanying report card I mentioned last update, but I wanted to mark the day so here's a little amused boosh (bone apple tea):
So: ty ty for backing this project and sticking with us and reading these updates for three years. More to come soon.
Happy Lancing, Olive
Discord, Trailer, all NPCs, Steam wishlists, itch.io #1 bestseller??
6 months ago
– Tue, Mar 10, 2026 at 04:21:17 PM
(due a ✨wrist injury✨, I'm writing this with voice dictation // one hand. So please excuse if there are more typos, or weird formatting than usual.)
Hot diggity! A lot happened this past month! I find myself forced to bury ledes with other ledes.
Discord
We quietly launched our own Discord server a few weeks ago, at long last! Here's an invite link.
As a tech-company-hater, I find myself unable to be *overly* enthusiastic about channeling a community into another walled garden, but as things currently stand there's simply no other platform that works as well for hosting this sort of thing. My heart yearns for a world where we were doing straight forums or IRC or something instead; I'm squaring it by saying that our documentation will never solely live in a Discord server; the intention is to set up an ad-free community wiki (like how Guild Wars does it) once we get to our "documentation and onboarding" phase later this year.
Anyway, it's a good time over there! We got highlight reels, bug reports, (still unofficial) mods + maps, and when we need quick feedback on a feature or additional content that's where we ask it. Eld and Darloth are our first moderators; you may recognize Eld from the approximately ten thousand other Lancer servers he's moderated, and Darloth from modding the rest of the Rebake grunts into LT.
Giant Bomb interview
Giant Bomb (which went independent from Fandom last year! Congrats to them!) reached out and I sat down with Chuck for a *checks notes* one hour and twenty minute "quick look" where we made a character and played some Lancer Tactics on a call. It was an honor to be showcased by such a prestigious channel; love to see what they're doing in the aftermath of such a roller coaster of a journey as a publication.
Trailer
Look at this! A 60 second video by Michael Cox that showcases what Lancer Tactics is all about! Critics (disclosure: me) are saying it's the best game trailer to ever be made?? Wow.
An interesting aftershock/anecdote of posting this was seeing an aggregator youtube channel re-upload it (adding "official trailer" text to the thumbnail). At time of writing, has 150,000 views; 10x as much as our own. I'm of two minds; views are views regardless of provenance, they were mindful enough to include a link to our Steam wishlist page (more on that in a second), and it was genuinely nice to get a significant bump in visibility without having to hit the media circuit.
However, this appears to be a channel that consists of entirely other people's work, with the primary value-add is aggregation. The business plan is a clear numbers game: re-upload every single game trailer you can find & get ad revenue from the few that happen to take off. Fascinating.
Steam wishlist page
In preparation for a post-Kickstarter-funded world, we now have a presence on Steam; you may wishlist Lancer Tactics at your leisure.
As a reminder, we still have a fair ways to go post-Kickstarter to get the game Steam-ready. To the best reception there as possible, I believe it needs additional single-player content, controller support, and better new-to-Lancer onboarding. We are currently aiming by end of 2026, but that's not set in stone. And to answer the inevitable FAQ: yes, if you've backed the project on Kickstarter or bought it on itch, you will receive a Steam key once they become available.
Funny story: a general rule of thumb is that you want to, through months of effort and posting and media pushes, build up to at least 10,000 wishlists before you launch on Steam. Here's, ah, here's where we ended up after the first week after we pushed the trailer and page live:
Over 33,000! Y'all really like Lancer, huh. And as this makes clear, it really was the visibility from the repost channel that provided the biggest chunk of those. Fascinating. Well, that makes our job easier & will make prepping for that launch *so* much less of a nail-biter.
Itch.io #1 bestseller?
At time of writing it looks like we've dipped down a little bit, but in the wake of all that visibility, Lancer Tactics has been hovering around the top slot for best-selling paid game on itch.io. That's wild!!! And has a few implications:
for the first time since the Kickstarter completed, we'll be able to start paying ourselves. Other than our initial payments, the three of us in the core team have been doing this work on-spec for years and it was getting a bit tight. We're aiming for $1k a month each, which might barely be sustainable at this rate. It feels like after carrying LT for so long, its engine has revved up and has started being able to help carry us.
itch.io must be making, like, no money?? If this is what peak performance for paid games looks like, I really really hope they have a long tail or a sales leader elsewhere on the site (game assets maybe? or nsfw comics?). God bless them & their small team for making such a great platform.
we've been considering doing Early Access on Steam in order to help relieve some financial pressure on ourselves. If that can happen through itch alone, we may be able to avoid putting ourselves through the Steam ringer and stay in the comfortable game incubating environment here instead.
Wrap-up
Hey! Our target end date for the Kickstarter-funded 3-year development cycle stretch goal is at the end of this month! That'll mark the three-year anniversary of Lancer Tactics. Because being graded is fun, for the next update I'll be writing a report card & postmortem for the project. What did we do? What did we say we would do? What did we do that we didn't say we would do? Tune in next time!
As always there's a new build out & ready too, on itch.io. Here's the changelog!
Changelog
New Stuff
Finished optionals for all the remaining in PCs: archer, assassin, barricade, bastion, spector, pyro, hornet, goliath, hive, engineer, breacher, scourer, aegis, ace, seeder, mirage, bombard. This was a two week dead sprint to finish! (and I am sure entirely unrelated to the wrist problems) I'm v happy we'll be able to check NPC classes off the report card.
more icons from Alicia; talents and Core Bonuses
more sfx from Robi
new shield fx for systems from Jude
melting down adds a persistent fx to that unit
From connor, the barricade cube is no longer a plain gray box; it's now a gray box with *hexagon indentations*
Misc
added "randomizer" kits that you can add to opfor units to get random different optionals
added "randomizer" NPC classes to get a random striker, controller, etc
reinforcement groups now control whether they deploy randomized, not the event; can toggle it in Instant Action screen
Add setting to skip shader warmup on first load
change the baseline level of the out-of-bounds so elevation 0 sticks out of it
UI
"add pilot" button straight on each folder
added button to expand/collapse "using action" text boxes
Show attack bonus and accuracy for NPC weapons
attack preview lists potential reactions for that attack (not guaranteed)
added this sick tile-dissolve effect, inspired by watching my gf play Marathon (which itself was inspired by the artist Antireal)
Character Sheet
Character sheet got a design facelift from Alicia.
show weapon type restrictions in weapon mod tooltips
NPC character sheet can toggle an unlock and add any NPC system
fix back button on character sheet not get shaded out by modals
added ability to offset portrait slices with an awkward dpad. prompted by an actual code contribution from Darloth
unit barks can talk about speaker or target
Portrait Maker
Portrait maker got a design facelift from Alicia.
as seen above, added "background" slice type that is kept somewhat separate from the main portrait so it can be clipped differently in dialogue panels
Did a color overhaul; there's more options, a better yellow and red, and better contrast for very dark or light colors.
Carpenter rekeyed many assets to have better contrasts
sorted hair options by length
Add 4th color channel to pilot tokens so they can have skin + 3 outfit colors
Editor
added a system of "sitrep tags" for units, so triggers and the editor can mark & check arbitrary tags onto specific units. These persist through multiple combats and event full repairs so could be very powerful for module makers!
can set colors of the out-of-bounds area
can add nametags to speakers for conversations
added "unseen" makeup for characters, to have them show up and take up a slot but not be visible; can use for someone talking from "off-camera"
move long speech bubbles to keep them onscreen
added additional things to check to the unit bool trigger fetcher ("is_mech", "is_drone", etc)
added "is this unit a grunt/other template" fetcher
Added fetcher for if setpiece or doodad or block are destroyed at tile
added a flag to the unit death event to skip the explosion
update level filename display after saving in editor
increase size limit for compression/decompression to 1MB for complicated map geometries
significant refactor of block-rendering system to allow only rebuilding portions of the map that need it on map editor changes/map damage; from 100ms on a change to like 4ms.
Bugs
fix the fact that I broke barks last month
fixed up z-indexing and cycle wrapping issues in mech catalog screen
fix losing the selected sitrep in instant action config on save/load
can no longer double-equip ammo case
fix iskander mine deployer triggering off itself, allowing dumping all your mines at once
fix: reinforced cabling grapple swing and drag down should both be usable on the same turn
better flank trigger UX when attacking multiple possible units
can correctly trigger duelist III with non-main weapons
fix both semplar vigilo + covering fire being able to trigger on the same movement
jackhammer round does the damage it's supposed to & only knockbacks characters
asssassin drone can now redeploy correctly
can't use Leadership talent to issue orders to drones
only ignore adjacent hard cover if we can see around/over it
cancel actions if they were somehow disabled following comp/con assist movement e.g. getting jammed from a witch's chain on your way to attack
fix situation where events are sometimes skipped if queued by a child event; aka boosting now clears hidden correctly
fix being able to use a CP multiple times by overcharging on a subsequent turn
lucifer no longer consumes two charges
Fixed annihilator targetable tile calculation during overwatch
can use "shift payload" even when you're out of speed
drones don't contest payloads, and payload no longer reports that it's contested by mines, drones, & sealant goop
can't move payload when intangible or flying and not adjacent
can't stabilize your reactor when you have 0 stress
don't show wreck token in chits until you're actually dead with 0 stress
gravity gun movement ignores fall damage unless the target point is at least 3 spaces below the target unit
Deep well heat sink persists longer so it can affect other at-end-of-turn-effects
Fix double grapple application
Enforce all attachments need to be adjacent
fix countdown and reset for Gunslinger Die when using IKWMH on an AOE aux
gunslinger die resets on rests (aka spending repairs in downtime)
give integrated weapons an "integrated mount" tag on their tooltip
firing ordnance weapons as freebies is just fine, actually; stabilizer mod doesn't permanently disable vorpal gun
can't leader open channels for nonmechs
Lockbreaker only locks you out of future attacks if it's not from a rxn attack
Lockbreaker correctly interacts with integrated weapons like Fuel Rod Gun
can't lockbreak on a second normal attack on a turn
Change order of triggers so integrated weapon happens before lockbreaker movement, so it doesn't look like you're lockbreaking the integrated shot
engaging an enemy with lockbreaker (or any other system) on their turn saps their current speed
apparently orochi drones and acrobatics rxns were not supposed to be limited per-round
drone atks don't suffer impairment when their owner is impaired
don't clear prone when gear that caused it is destroyed (eg that one demolisher trait that I'm forgetting while I write this)
Fix cataphract impale not having its grapple clear correctly, allowing spooky grapple-at-a-distance
Fix cataphract impale's targets not clearing until-end-of-move abilities at the end of the movement (ie Metalmark flash cloak)
demolister's destroyer to 6+ recharge & full action, jets cost 4 heat
fix pyros trying to use their flamethowers through walls at targets they didn't have LOS at
fix ace barrel roll not being on recharge
archer suppress impairs target
sniper's moving target correctly costs a reaction
engineer flak cannon only +acc against flying targets
engineer target designator actually works
ai avoids going into firebreak shield (at least a little better)
It was a bit existentially touch-and-go there for a week or so but it now looks like my wrist is on the mend. Remember to stretch; angry tendons and nerves are no joke & will stop you from being able to touch keyboards.
Olive
Final talents, shield fx, more NPC optionals
7 months ago
– Fri, Jan 30, 2026 at 10:14:51 AM
So many more icons from Alicia! All licensed gear now has a unique icon.
Jude's been busy, fx-wise; added support for persistent shields:
Added support for "line" fx such as lasers and lightning bolts:
New teleport fx:
Misc
Through some experimentation, discovered that the exported game was +160mb biggger than it needed to be because the exclude filter isn't working for raw audio assets, so can now start deleting that before exporting
Added new setting for skipping fx delays; no longer have to wait and watch ability animations complete.
Added "autozoom enabled" setting to stop the game from zooming in on the action
Lancaster cable winch no longer allows you to climb freely; rules text is ambiguous if it was ever intended to give you infinite free climbs, or was a sort of simulationist appendix where you could lower your cables for other people/use them as a grappling hook. In any case, it was redundant with Death Head's magnetic clamps so I'm making the call to drop it.
Bugs
Fixed infinite spawns of the final enemy in a sitrep.
Fix not being able to move the payload if you have any drones deployed
Indicate when the payload is contested with the pointer text
Moving payloads can be done regardless of height differences. It feels funny but helps prevent softlocks.
Fix control sitrep not ending in defeat if you don't have a higher score
Fix holdout never ending in defeat
Fixup pass on tutorial -- a fair amount of details had broken or needed to be changed
Can only take triggered free actions (e.g. disdainful blade) on your own turn
Fix burst AOE not taking elevation into account (other AOE types still don't... and I think it'll likely stay that way to allow for airburst flexibility)
Refactored how units are classified under the hood; should now have better rules adherence to the Characters vs Objects dichotomy and drones will stop being hit by abilities that hit objects.
Also refactored how characters stack up e.g. mule harness, symbiosis, or moving a payload. Should be less likely to get snarled up when there's also other attachements like grapples in the mix.
Can climb off of mule harness as free action
Orochi drones can fly if their hydra can
Fix Agni protocol double-activation when you have deployables.
Can't give self overshield via invigorate
Fix a number of missing ability triggers from displaying in tooltips
Can overwatch with mjolnir
Can hide within hive drone cover
Intercede triggers before Brace
Fix crash when a vorpal gun kills its target
Take overshield into account when asking if you want to brace
Technophile actually pays attention to you declining the reroll
Walking armory is a normal system that you can destroy
Fix Osiris not showing up as an AI system
Orbital strikes don't cancel on scout death
Commander "press the attack" can't be used on self
Fix witch & rainmaker statblock typos
Remove core-book accuracy from operator rifle
Hound missile doesn't roll saves against its own explosion
Ultra does not ask player for permission to reroll structure/stress checks
Veterans stop overcharging when they only have one stress left
Fix size 2+ reinforcements from spawning on top of each other
Don't trigger sniper's moving target if they already have a mark on another character
Fix Ronin's counter ballistic suite triggering multiplicatively for AOE attacks
Seeder AI is better at hunkering down and just laying a buncha mines wherever it is; correctly limited to 3 mines deployed at a time
Fix bombard cluster munitions bonus damage carrying over from one attack to the next Better nanobot placeholder fx; old one was mostly invisible
Show "~100%" for near-certain hits instead of "100%"
Talent title text for rank 3 nuc cav correctly displays "Here, catch!"
Correctly show kits in recursive tooltips
Filter for invalid lancers on campaign load (if you, say, broke them by loading and then unloading a mod)
Automatically convert legacy color schemes forward when picking a new color/ramp
Characters stand on top of exploding barrels instead of inside of them
Better protections against hidden "marker" units from taking damage in odd situations (e.g. caltrops taking damage from dangerous terrain).
Editor
Potentially breaking change for custom maps: For "<string a> is within <string b>" trigger conditions, swapped their order so it actually checks that string A is within string B (previously reversed).
Fix triggers failing if the conditions were set to "any" but no conditions were set
Allow custom dialogues etc to work when launched via instant action.
Did some cleanup to the conversation editor's UI; made everything besides the speaker and the line more background-colored and reduced excess borders.
Duplicate button works for conversations and characters
Added button to view sitrep rules mid-battle
Log the change in Control sitrep score each round
Fix dialogue indents being lost when switching between code and blocks mode
Can refer to lancers in dialogue text dynamically
Drop the "no deploying within 8 tiles of the center" trigger from holdout; it's up to the mapmaker to redirect zones
add a "magic strings" list to the bottom of the trigger list that you can click to copy to clipboard
Maps can now be played on sitreps even if they don't have all the required zone IDs, if the required zone ID has been specified to point to a different zone.
When capping NPC spawns due to activation, it looks at max lancer count on your side, not current (making it so enemies can spawn before the player deploys).
When a trigger prematurely ends a unit's turn, have their phase controller recognize that and not require an extra step to end their turn
Toggled a setting to hopefully help with prematurely cut-off crash logs.
Added ability for ai behaviors to modify their score against weaponless enemies
Made event_unit_save available in the trigger system; can force a unit to make a save, and then check the result in a key stashed to the combat state
In solidarity, Olive
Pixel art recoloring, ultras, cat ears
8 months ago
– Wed, Dec 24, 2025 at 02:44:14 PM
It's my birthday tomorrow! Happy birthday, me. The team's on break for the rest of the year, and I'm starting my own break as soon as I post this (it's a famously good idea to post an update right before going on holiday). The update is as always available as always on itch.io. One quick order of business before we get into the changelog:
Mapmaking rewards: We've been trying to reach you about your mech's extended warranty. Only four of the eleven of y'all who got this high-tier reward have responded and made your map with me. If this is something you wanted to do, check yer email and sign up for a slot! We'll have a good time chatting! I'm delightful!
How we recolor pixel art
Enough was enough; I've felt overly constrained by the available colors in the portrait maker for a long time. We finally pulled the trigger on reworking the coloring system to be able to take any base color and automatically generating a palette from it instead of hand-crafting each available option.
Let's take the opportunity to go through how the recoloring system works in Lancer Tactics! We'll be looking at the mech tokens instead of the pilot portraits because they're a little more straightforward, but we use the same technology for both. Here's what a mech token looks like on disc:
Also shown above are our red/green/blue "index" color palettes. These are sequences of seven pixels of various lightnesses. The color of the index pixel on the mech indicates what channel a pixel belongs to (i.e. should it be set to our primary, secondary, or glow color) and its lightness (i.e. darker reds will end up being darker). Pretty straightforward so far!
But now we need some new colors to swap in. Our old system used a series of handcrafted 7-pixel palettes of increasing lightness. Here's me doing a manual swap-in using aesprite to show the process:
And this worked well! The keen-eyed among you might note that these handcrafted palettes were not linear shifts in lightness; check out how the center lilac palette is warmer in its lighter tones and cooler in its darker ones, or how there's an abrupt shift in lightness the rightmost yellow. These values were selected with an artist's eye for better overall effect.
However, the need to manually create each palette took time, which meant that we were always going to be limited in the number of colors we'd be able to provide in the portrait maker. Our greens were bereft; our turquoises ghostly in their lack. If we could find a way to automatically generate palettes that used artistic principles to make good-enough replacements, my hope was that the dip in quality for individual palettes would be made up for in the dramatic increase in range.
And that, my friends, is what we did. Using the OKHSL color space, it's easy to make an array of "base" colors. After some toying around, I settled on two sets of a rainbow; one high saturation, one low saturation, with each hue given a small range of possible lightnesses. With one of these selected as our base, we can spin out six more colors (three getting lighter, three getting darker) for a full palette.
"But, Olive!", I hear you say, "I thought you just said we cannot simply linearly shift a color up and down in brightness and get an artistically pleasing result!"
This is true. Thankfully, we have the wisdom of our ancestors to fall back on. And by ancestors, I mean a 12 year old tutorial on color theory for making Minecraft skins. It's a good read, but we'll be specifically copying their "Arc Method" as shown here:
In addition to shifting brightness, we can shift hue and saturation as well. And how exactly we do that *that* is where the human element can re-enter.
This ungodly thing is a "toneramp". Ironcially, it's a lot less human-readable than what we've seen til now. But let's back up a bit. There are three knobs we can turn when spinning the base color out into the rest of the palette: Hue, Saturation, and Lightness. Modifying hue can make a color warmer or colder (ie more towards yellow or blue). Modifying saturation makes it closer to or further away from grey. Modifying lightness... well, I hope you can guess what that does.
Image files, conveniently, are also typically encoded with three numbers: Red, Green, and Blue. With toneramps, we're hijacking those to actually interpret as Hue/Saturation/Lightness shifts (not respectively). We have the midpoint - 128 - interpreted as "no change from base".
There are two things it tells the system: the "red" channel, the top number, tells the system how much to shift the lightness; higher numbers are lighter, lower numbers are darker. The "green" channel, the second number, tells the system how much to make the hue warmer (less than 128) or colder (more than 128). Currently we're automating the decrease in saturation towards both ends of the palette as per the Arc Method, but may end up having the "blue" channel eventually defining that.
So! Given an automatically-generated base color and a human-crafted toneramp, we can generate a new palette:
The cool thing about this is that it's multiplicative; we can handcraft just a handful of toneramps, and then use any base color with that toneramp. In the current build, we have four: Standard, High Contrast, High Hueshift, and Inverted. Here's me going through them one at a time:
It's kind of subtle, so here they are side by side.
We're still tuning the available colors and toneramps (imo the mechs are currently coming out too dark). Has this unlocked previously impossible chromatic desires in your heart? Can you even tell the difference? If you play with this, I'd love to hear your take.
Changelog
New stuff!
Gen has finished out the PC mechs, and has dived into the NPCs. Check out her flex on this Barricade's stripes wrapping around a curved surface!
UPDATE : as I was writing this, Gen just released all the tokens she’s made for the game in a noncommercial asset pack here! Make and mod your own mechs in the image editor of your choice!
Another batch of portrait assets from Martina incl, *finally*, cat ears!
Recon + Control sitreps. That's all of them!
New templates: Completed Commander, and got Veteran and Ultra in with all their base kits and a scattering of optionals.
Implemented rest of the optional kits for: berserker, witch, rainmaker, scout, sniper, and sentinel. Six classes down in about a week... 24 more to go.
UI
Clicking on lancers doesn't automatically start their turn; you can see what stuff they have first.
Can cancel out of your standard move to click around and inspect stuff instead. auto-start turn when you only have one PC
Fade LOS area in and out while moving the mouse around, added short delay before doing so
Can cancel out of a NPC telegraph to tell the game to not show it again for the rest of this session. The era of endless Stampede Defense prompts is (optionally) over!
Added button in options to reset the list of skipped telegraphing, in case you get separation anxiety about your Stampede Defense prompts and want them back.
Editor
Add triggers that allow you to disable zones within X tiles of a given tile; can be used in sitreps to prevent having zones that spawn enemies near objective zones
Can manually set NPC tier.
Reinforce triggers can set NPC tier automatically to match the PC license levels.
"Emit trigger signal" event can emit multiple signals when given an array -- this allows you to e.g. damage all units in a given list!
Maps can now opt-out of being modified by Instant Action settings; e.g. one can have a custom sitrep but still use IA opfors (monument bay), or it can completely eschew IA and totally do its own thing.
Zone tool shows and can edit what sitreps are available to be played on the current map. Can remap expected zone IDs to alternate ones on a map-specific basis.
Add an event to trigger pilot barks.
Made a "edit sitreps" modal to dramatically increase the turnaround time for making and fixing sitrep triggers. Will be player-facing, so sets the groundwork for folks to eventually be able to upload their custom sitreps to mod.io. Also will serve as a additional examples for people to see how the trigger system works.
Fixes & minor stuff
PC mechs
deployables take burn at end of owner's turn and trigger turn start/end effects e.g. hive drone
size 2+ units can stand on "invalid endpoints" that are smaller than them; ie your tortuga is no longer blocked by a few lil cars
Can move payloads that are +- 3 spaces from you, to help prevent them from getting stuck
manticores castigating KIA the pilot, melting down removes ability to repair mech
smoke mine smoke expires on triggering unit's next turn, not its placer's next turn
thermal charge damage type changed to explosive
Vanguard 3 can't trigger against targets it can't see
fix PCP always deploying in "attract" mode
can take a quick action to clear PCP immobilization
impaired ghast drone does not mean your attacks through it are impaired
standing up does not end the protocol phase (rule bend to make overeager-to-stand AI not lose their ordnance)
being dazed does not end protocol phase automatically; need to be able to continue SEKHMET (other protocols are still unavailable)
uncle correctly prohibits off-turn usage until the start of next turn
unstoppable doesn't trigger on misses (improved)
Mechs can make eng checks to stop a meltdown
fix invigorate not being able to select past the first target
fix bug where limited charges would refill if you looked at their tooltip
NPC mechs
goliaths don't re-crush-target multiple times
add missing attack bonus for hive HK nexus
commander voice of authority actually spends the reaction
NPCs use their systems bonus for their frag sig, allied invades auto-hit
NPC basic attacks get a bonus by tier
NPC mechs can't double up on the same quick tech twice
enemies go first in a round if players went last the prev
fix blur causing the witch to treat other targets as invisible oops lol
Editor
stairs should not be difficult terrain/an invalid endpoint
invalid-tile shunting ignores fall damage
editor smoothness improvements; uses gridmap previews instead of rebuilding the map during single tool strokes
UI
fix omnigun popcorn text damage amount
persistent objective pointer arrow for payloads
fix attack preview showing "+ tech attack" when using smart weapons
snap tooltip left/right if up/down doesn't have enough space
fix camera autorotation getting you looking head-on when coming from top-down
remove bombard and sentinel from everest token list since they're size 2 now
importing NHP pilot files sets their colors to grey
ending mission mid-zero-stress-meltdown still counts as having melted down
can spend your last repair as an everest on structure
In the homestretch
With this as the last update of the year, we only have three months left for our original 100% core-book-implementation goal. What are the current projections for what we'll get done in that time?
We'll get the rest of the PC talents (Skirmisher + Siege spec) and most if not all of the NPC class optionals.
As I said last update, NPC templates are looking a lot more scattershot: of the ones we haven't already finished, I think we'll be able to knock out the other simple ones (Mercenary, Exotic, Spacer, etc) and a decent chunk if not all the optionals for Ultra & Veteran. Templates that require more significant enginework (Monstrosity, Pirate, Ship, Vehicle, Squad) are going to be left to last and I'm not confident we'll get to them in this Kickstarter period.
Module editor work has continued to go slower than expected since my focus is still on content implementation. I'd like to get it out the door as soon as we can, but doing so too early risks needing to make format changes that can break people's stuff they've made with it. Not that that's stopping folks; GavstarB basically made a module without the connective tissue by publishing each map individually.
I know that I said that mod support is a post-Kickstarter future thing, but the aforementioned GavstarB has pulled off a minor miracle in my eyes by decompiling the game and building a modloader themself. We still can't officially support modwork because we don't have the time + may need to make fundamentally breaking changes in the future + need to get a legal license drawn up to make the decompiled source available. But hot damn! Wow! Extremely cool to see what's possible!
We've super outgrown our thread on PilotNET. We've got a draft of a dedicated discord set up, but are waiting until after the holidays to launch it. I am reluctant to put our eggs in a corporate-controlled community discussion area (though I <3 the itch forums) but this is where all the kids hang out these days.
I expect a "coming soon" Steam page to be up well before March, to help transition us into the post-Kickstarter era.
Have a happy new year! And again, happy birthday to me specifically. ~ Olive