#Lancer Tactics

1 messages · Page 6 of 1

tired aurora
#

But DD1 still get mod till now while DD2 get mod...very far between

final onyx
#

2 has been around for more than a year

#

It's been around since October 2021

crimson merlin
#

Full release was May '23

final onyx
#

But d1 was modded in early access to iirc

fickle pecan
#

I think it's more a difficulty in replicating vanilla art style/quality than inherent to 3d/2d necessarily

#

like minecraft is a 3d game but very easy to replicate

#

like I'd agree that replicating the sprite style is easier than the model style shown but replicating the current 3d map assets is easier than both imo

#

dd2 isn't just 3d models, it's much higher quality assets relatively speaking in general

lone cliff
#

I say this as a person who has done a fuckload of pixel art

#

Dd1 still has a very particular art style most people cant replicate without skill, yet it has a fuckload of mods that introduce new classes with completely new art

#

In comparison dd2 has like, no new class mods, only reworks of the existing ones

#

I think i saw one mod that adds a new class, but it used existing game assets to do so (an enemy model with its animations)

fickle pecan
#

yeah but my point is that's because the "entire 3d model" is a much higher quality asset

#

analagous to like a full live2d model

#

not a simple sprite

lone cliff
#

Okay but we dont have fucking live2d sprites on the docket for this game

fickle pecan
#

and that there are 3d model workflows that are just as simple

lone cliff
#

3d models alongside their animations require more upfront work

#

Whereas 2d pixel sprite animations require you to make a few pictures in sequence

#

And let me repeat that the quality of the models being shown here isnt minecraft

#

You get more leeway in terms of what you can make since this is a mech game and its easier to make passable machine objects compared to humans

lone cliff
#

Im not talking about map assets, the entire conversation is focused on the mech models

#

Also i absolutely disagree with that statement that replicating even the simple environment assets is easier than making a sprite

#

Because a layperson can just open up mspaint and eventually doodle something passable, even just editing the existing sprites

fickle pecan
#

I think that's unfair to the skill of the person who made the mech sprites, frankly

lone cliff
#

Whereas creating a 3d model requires downloading an entire 3d modeling program and learning how that works as an entire first step

lone cliff
#

Like, thats one of pixel arts greatest strengths

fickle pecan
#

yeah I'm disengaging

tired aurora
#

You can easily kitbash pixel art with like, no prior knowledge in art. Such cannot be said about 3D model, and I work on those, I know. Took me years to start delivering aceptable results. (And it took a few month to be familarise with the software and workflow and the 3D concept in the first place)

lone cliff
#

Something being easier does not inherently devalue it as art

alpine sorrel
#

This discussion has gotten more combative than I'm happy with.

#

The point about relative difficulty between styles has been made. Some stuff is easier, some stuff is harder.

lone cliff
#

my bad for my part in it

alpine sorrel
#

Carpenter and I have decided that LT is going to stick with 2D sprites for mechs in order to err on the side of being conservative about further style scope creep.

tepid temple
#

Perfectly valid decision, I remain enthused for the final product 🎉

lone cliff
#

whats with the snail react

frigid shale
#

I think it's that it's creeping along

#

so (micro)scope creep(ing snail)

little jetty
#

haha yeah I meant to represent creeping with the snail

#

someone else did microscope and pinching to say small, I think

tepid temple
#

Just a teeny bit of (micro)scope creep

lone cliff
worn tiger
#

Lancer Tactics can have a little scope creep as a treat

near linden
#

it's already got one whole extra dimension!

maiden crater
#

Idea : Metavault that adds one or two dimensions to space ( this is a joke, don't take it seriously )

misty grail
#

nah. removes a dimension.

alpine sorrel
#

But not the one you might expect
LT becomes a sidescroller

shy spruce
#

aw fuck

#

we metalstorm now

untold prairie
#

... ok but I'd play a Lancer sidescroller.

tepid temple
#

Blackbeard with Worms-style grappling

fickle pecan
#

one of the pf2e aps does that for a fight

untold prairie
#

Bastions on a ledge with Assaults behind them that keep shooting you down when you jump up

#

smashing open crates to refuel my Jump Jets

#

hotswapping between Jump Jets and Type 2 Shield when the snipers show up

alpine sorrel
#

Hey the 3rd party license is open, anyone could do it

fickle pecan
#

think it's this one (from a map remake project)

#

pretty sure it wraps around at the sides too, because you're on the side of a tower?

deft rapids
#

The dimension it adds is a narrative dimension, and the story transforms from a traditional narrative to a David Lynch project

maiden crater
#

1D metavault

#

Hope you got the right formation

torn kite
#

I did attempt a 4d map at one point for my game

alpine sorrel
#

Does darkest dungeon count as 1D, gameplay-wise?

fathom holly
#

Ruin has come to our union.

little jetty
alpine sorrel
#

What is a 2D map besides a series of 1D corridors

crimson merlin
#

One time I ran a D&D encounter using a side-on map. It was very silly

maiden crater
ripe radish
#

Secondly, I'm not actually sure infinity is enough.

maiden crater
#

With a finite plane, you can get by using a finite number of corridors

It won't be truly continuous, but not gamespace is

#

But you're right that mathematically speaking, you'd need card(R) lines to form a 2D plane

#

Aka an infinity, but uncountable ( think of it as infinity, but bigger than some other infinities, one of them being the number of natural numbers )

cold timber
#

I mean, I literally did a 1-D map for a game like this before. It was closer to chess than a full lancer implementation, but still; the game map was a single one dimensional array. A given position was at index y * map width + x, and a given index would represent y: (int)(index/width), x: index%width.

It makes adjacency a bit harder, but you don't need that for chess-like rules and in assembly this was easier than multidimentional arrays or any other more fully-featured data structure.

alpine sorrel
#

Oh yeah I'm doing that kind of mapping all over the place in LT. My current data task is actually figuring out how I want to store voxel data for the map blocks — a 3d grid mapped to a big 1D array works but it's like 21000 entries long

#

So I might split it up by layers or block type or something

crimson merlin
#

What works best with the larger terrain pieces like the hangars?

cold timber
#

You could simplify to just 2d, with a heighmap for initial ground level. Game objects could track their own altitude internally. Two mechs could stand on the same x,y if one is on the ground at altitude = world_height, and the other flying with altitude >= world_height + other_mech_size.

If you want destructible terrain, you can modify the 2d heightmap, and overhangs can just be ground-like objects with the same altitude logic (assuming you want to bother with such)

You don't have to track all voxels minecraft style, just object positions on a 2d grid.

#

probably not far off from what you've already got, I'd guess.

alpine sorrel
#

Ah this is only for like the ground Minecraft voxels. Things like hangars and mechs are handled in different arrays and tile systems

#

That's what I meant when I said this is still a 2d game under the hood; almost everything else still deals with 2d tiles instead of voxels

#

I thought about doing a simple heightmap for the blocks but that doesn't allow for having different block types under each other

#

There's no overhangs

crimson merlin
#

It's not a bad idea if it's just the ground. Once you've got scatter on there it won't matter much

ripe radish
maiden crater
#

Yeah, but programming-wise you can just make a grid

#

You're right that mathematically speaking, you need an uncountable infinity ( same as R's ) to form any plane out of 1D lines, but this isn't a situation where algebra is relevant

naive yacht
#

weird request but dfid anyone have that big godottutorial collection that got posted in here a while back?

#

got some friends who are doing a game jam and theyve decided to use that so i thought i might throw some resources at them

alpine sorrel
#

getting the 3D camera automatically responding to game events again has done some good things

crimson merlin
#

Looking good!

tired aurora
#

This brought me back to good old Front Mission days. The graphic style is phenomenal ngl, and the movement is real good and so are the sfx

shy spruce
#

scoot scoot scoot scoot scoot

cold timber
#

This looks so good! Olive, you're killing it with your attention to detail!

fickle pecan
#

ooh that's so fun

leaden spruce
#

Hell yes just played the demo I love this

final onyx
#

advance wars music plays in my head

cold timber
#

Also I adore the way the travel indicator hugs the terrain down the steps there for a second, when the morning cloak moves? Gorgeous.

lone cliff
#

this is looking great!

alpine sorrel
#

portrait maker is also coming along well

leaden spruce
tepid temple
#

Oh look it's them, the HORUS Goblin frame

leaden spruce
#

They look so adorable

#

I eagerly look forward to playing just for.the portrait creator

alpine sorrel
#

I'm so jazzed to see Martina's art in it. We should be getting a standalone public build of the portrait creator in the next few months

crimson merlin
#

Looking really good!

worldly violet
#

I know there's a TON of work left to do just to get mech gear in, but wow the progress so far has really blown me out of the water

tired aurora
#

👀 About to see a bunch of players and Gm using this to make a bunch of pc and npc portraits

#

(I know cus I would love to be one of them XD)

alpine sorrel
worldly violet
#

I've certainly heard worse development strategies.

leaden spruce
#

I always hear about not enough focus on underlying structure messing up a project so like

#

That seems smart

#

This is so cool.....

agile lagoon
#

Oh wow Olive! Every section of this is looking spectacular

#

And it's real satisfying to hear the technical process of creating this and the work going into the software architecture

minor trench
#

Spetacular, indeed!

#

I do kind of wonder, how would the Ultra AI be handled? I wonder if there's a way to customize it a bit. 🤔

alpine sorrel
#

How so?

minor trench
# alpine sorrel How so?

Like if an Ultra has multiple weapons and Volley Module is selected, how does it pick which weapon? And et cetera.

#

Or if a boss would go after the lowest HP member, nearest, or random?

#

Like it'd be cool if we can customize a boss' attack pattern to give certain fights a feel.

alpine sorrel
#

Interesting. I'm definitely adding that on the dev side because it's necessary for tuning, but I hadn't thought of exposing that in a player-facing way.

#

That'll be lowish on the priority list most likely but noted.

little jetty
#

Would there be speedrun support for LT? Curious about potential LT speedrun scene

alpine sorrel
#

Haven't looked into what that entails, but unless there's easy QOL pick-me-ups (e.g. dialogue autoskip?) I don't think it'll be a development focus.

#

Also, the anthology structure of the campaign modules won't lend themselves well to a linear path, so it'd probably end up looking like "fastest time to complete each one in any order"

little jetty
#

oh wow i totally expected a pretty linear structure

#

that sounds pretty cool

alpine sorrel
#

Yeah I spoke about it to a narrative designer and taking a stance that focuses on making each campaign (likely one or two missions?) modular will set us up better to fold in player-created campaigns

#

So prioritizing flexibility over a canonical cinematic sequence

#

The great thing about the NPC tier system is that it's pretty dang easy to scale NPCs to whatever LL character you enter the campaign with

tepid temple
#

That makes me wonder, is there gonna be a set party size or is that flexible? Would opfor numbers change based on party size in the latter case?

alpine sorrel
#

I'm not certain about it yet, but a good reference for our model is BG3; it assumes a party size of 4, but you can play with less if you want to for some reason. I don't think the world scales down if you choose that.

#

But the current party size is an available number in the trigger system so there's nothing technically stopping a level maker from scaling like that

#

I should lay this out in a blog post, but we think we'll have three kinds of character slots:

  • fixed — a premade companion lancer that is required to play a mission
  • PC — only a player-made lancer
  • flex — either a player-made lancer OR a selection from a palette of premade companions
#

The level designer can choose the available slots for each mission. For the demo, the tutorial would have been a single fixed slot for Granny, and the albatross mission would have been four flex slots

#

To make it easier on the writers and to make all-PC parties not miss out on story, a companion can talk and react to the mission whether or not you bring them; they radio in from their mech or from base.

lone cliff
alpine sorrel
#

yeah everything is subject to change if we need to from core, but we're not gonna make predictive small tweaks like that. it's only a problem if it proves to be a problem.

patent pasture
#

it frustrates me as a player where if you don't intend to play a Mass effect or whatever 3 times you're going to miss out on stuff because weren't precog and realised mission X was going to have lots of Mordin stuff

#

just have him radio in with his comments!

#

With this all said, gosh, theres part of me that's considering the idea of adapting wallflower if the tools allow for it

#

do you plan to add eidolons?

alpine sorrel
#

not until everything else is done tbh, they're a can of worms. You should be able to get a lot of their custom rules working though with the normal trigger system ("when unit X gets below Y health, swap it out for unit group Z and raise the water level"), but stuff like ||the darkness layer|| would require special one-off mechanics that I don't want to have to think about until I have to.

tired aurora
#

#lancer-vtt message

Unrelated but I just wanted to share something really cool.

alpine sorrel
#

Oh that's so much fun

alpine sorrel
#

Spent some time today figuring out how I wanted to do glossary tooltips; I've not figured out how to do this sort of fancy in-text hover-for-the-definition subtooltip spawning you see in bg3 or rogue trader, so I'm going to try letting players tab through related concepts and keep it all in the same box instead:

#

Wrangling a single box is a lot simpler, anyway; it's a weirdly tricky problem to compactly arrange a bunch of variably-sized text boxes while keeping them onscreen without covering up whatever you're looking at

crimson merlin
#

You don't see tabbed tooltips like that often. Can you have it so mousewheel them as well as tab through them? I prefer hotkeys as much as possible, but not everyone does

tired aurora
#

The UI is amazing btw, love the minimalistic

agile lagoon
#

That looks amazing Olive.

final onyx
#

Looking great

#

I think Morrowind did that a lot to

worn tiger
#

I love the tabbable tooltips, and damn that UI is looking clean

pastel flax
#

I like it a lot! The nested experience is great, but this looks super clean too.

alpine sorrel
#

I actually want more greebles // visual identity in the UI, and have been thinking of this as very prototype-looking... good to know it's already doing ok lol

alpine sorrel
pastel flax
#

What's the issue with nesting?

#

if i can ask

alpine sorrel
#

For sure! The three challenges of making something like bg3's system are:

  • the processing of text blocks to turn certain words into hoverable elements.
  • laying out the boxes; sounds easy but can be tricky if you don't want to cover up certain parts of the screen
  • figuring out the ux of how do you lock the previous tooltip so you can start mousing over specific parts of it
#

Think about the user inputs for that last one - it's hover over a tooltippable thing, lock the tooltip with a button press somehow, hover over the next thing in that tooltip, repeat

#

Whereas tabbing is just hover - tab - tab - tab

#

We will actually have one level of tooltip nesting because there's two kinds of tooltip: arbitrary lockable tooltips for things like weapon or system abilities (thing hovering over an ability in a hotbar) that you can tab to lock/unlock. If you mouse over stuff while it's locked, you get this tabbable glossary tooltip when you hover over stuff like range or damage.

#

It might make more sense with pictures 😅 I'll see if I can get a screenshot sometime today

tepid temple
#

It does feel a little odd that the tabs are the thing you’re hovering over itself + the things inside of it, feels like there should be a hierarchy there

alpine sorrel
#

here's that example of nested tooltips; hovering for an ability one, locking it, then hovering on that tip for (potentially tabbed) glossary terms.

#

and here's LT's soon-to-be-award-winning dialogue

#

(for some reason the translations aren't coming through, lol)

fickle pecan
#

id vote for it

crimson merlin
little jetty
#

slotcanyon.intro.100.cloak

worn tiger
#

truly, some of the most impactful writing of the modern age

lone cliff
#

this is looking so slick!

final onyx
#

I'd love a Horus Tooltip to be self recursive

#

(don't do this but it'd be funny)

void hornet
#

Horus tooltip that just crashes your game
Horus tooltip that deletes your save
Horus tooltip that gives you hrt
The possibilities are endless

agile lagoon
magic cave
#

please make Horus tooltip that gives you HRT 🙏

#

for no reason in particular

naive yacht
#

im just going to say slotcanyon at people now

#

oh wait slotcanyon sounds like a vague insult

#

perfect

#

"quit being a slotcanyon.intro"

alpine sorrel
#

Exciting news: I spent today mechanically finishing the full Mourning Cloak license. All weapons and effects are mechanically ingame — e.g. bonus damage from variable sword and hunter trait, invis and terrify from the hunter suite, teleportation from the CP/fold knife/singularity motivator. It still needs graphics and testing, of course (and the Intangible status doesn't do anything yet) but doing a license dive has come back very promising for how easy it is to add new content to the engine.

#

One (sorta) down, 27 PC mechs to go.

tepid temple
#

Exciting!

shy spruce
crimson merlin
#

Selective hearing: "I'm almost done"

#

Dev hearing: "And then there's the NPC classes, tiers and templates" *scream

feral veldt
#

Glad to hear it's easy!

worldly violet
#

Ok, genuinly curious, what do you think will be the hardest license to import?

crimson merlin
#

Going to guess Goblin with all its wierd hacks

worldly violet
#

That's what I'd guess too, though Hydra could be spicy

alpine sorrel
#

I anticipate goblin's CP being a bigger problem than its hacks... though I need to solve the same problem for the mule harness

#

stuff being unique isn't too bad if the complexity is entirely within its one script. like duat will take some doing but all its state and stuff should be able to be mostly handled by the action itself

tepid temple
#

Is "units sharing a space" also an issue for deployables like the omnibus plate?

alpine sorrel
#

ye

#

mostly for figuring out what thing to target when you target that space

#

so a UI problem; stuff will have to handle waiting for the player to choose instead of just querying the map

#

it would be fun to make a betting pool, but I don't know the metric

tepid temple
#

Is "Units attacking their own space" any harder? It'd come up for jockeying and the webjaw snare

#

(The extremely common use case of Goblin on Sehkmet I imagine is already covered by the AI)

sharp smelt
#

Page 246’s misspelling of “Near-Thread Denial System” is making me giggle.

#

Not intending to sound rude

crimson merlin
#

Wrong channel? 🤨

tepid temple
#

Huh, the kickstarter update doesn't seem to have gifs for me

alpine sorrel
#

Yeah I just saw as well. KS changed their system and it seems to have worked in the preview but not published version ☠️

tepid temple
#

That's a night-and-day difference, haha

alpine sorrel
#

The gifs worked in the email though? Wacky

crimson merlin
#

Combat popcorn is a great term!

alpine sorrel
#

I agree!!

#

I love food-based UI terms

#

Hamburger menu

ember hemlock
#

Does it become a Döner Kebab if the lines are rounded off?

crimson merlin
#

Working in IT I've said to confusion enough times "Click the elipsis." Meatball menu forever

grand notch
#

The gifs for these updates never load right on Tumblr. But only the gifs for these updates on Tumblr. Gifs elsewhere? Fine. Other things on Tumblr? Fine. These animations specifically on Tumblr specifically? Nope, they just load forever.

#

I assume the super condensed version of the updates is "doin' fine 👍," by the way.

alpine sorrel
#

XD yeah lol

grand notch
#

I do not know enough about any of this to have anything to say other than "hooray, keep up the good work." So hooray, keep up the good work.

alpine sorrel
grand notch
#

I have no idea why they keep breaking on Tumblr. But it's Tumblr, I don't expect anything to work right anymore.

#

Best I've got is a stopgap "here's a link to the itch mirror of the update, where we know things work" at the start of the Tumblr version. ¯_(ツ)_/¯

shy spruce
#

i'm surprised you actually get them all into a post on tumblr without tearing your hair out, uploading images there is a nightmare for me

alpine sorrel
#

yeah... the news that its devs are being downsized to a skeleton crew is not the worst when it comes to the enshittification process (see: them giving up on tumblr Live) because there's less of a financial incentive to grow, but is obviously worrying in terms of maintenance and basic functionality.

alpine sorrel
grand notch
#

I think it would be extremely funny if "oh thank whatever that they're going to stop breaking everything when they ~improve~ the site" made the value go back up.

#

I mean, really, when's the last time "hey we're adding a bunch of NEW FEATURES" wasn't met with groans of disgust and wails of despair?

tepid temple
shy spruce
#

i mean more to the effect of "if i try to add multiple images to a post at once, ever, all but one of them will fuck up. every time" and have to agonizingly do it one at a time until the little loading ellipsis goes away

sand goblet
#

holy shit olive this update looks so cool!

alpine sorrel
#

Thanks Kat! 😊

#

Every time it feels like we're moving so slow, but then these updates are like oh huh ok I guess we are making progress

flat steppe
#

Me whenever olive drops a new update, and I'm astounded at the progress (This happens every time)

#

(this is my 26th broken phone)

flint portal
#

Personally i think you should do a taco menu

#

No clue if that exists

#

I just like tacos

mild jay
#

That’s where you try to open one sub menu but all the sub menus spill onto the screen at once

livid fractal
#

Have posted in a while but saw the latest update and wanted to pop into to say you’re doing a fantastic job, Olive! Tadanimated

feral veldt
#

Gotta say, it's looking impressive, and glad to hear putting in an entire frame 'only' took a day!

sharp smelt
#

🍿TransKnife

#

Combat popcorn

wraith cradle
#

I'm honestly excited with how fast the development of it is going! I can't wait to try this out with some friends.

worn tiger
#

No more slotcanyon.intro 😔

little jetty
#

(I'm just now reading the notes)

alpine sorrel
#

I would have also been satisfied with Toasts or Chips

little jetty
#

but chips don't pop up

#

toasts though 🤔

#

they have the shape too

fathom holly
#

combat popcorn my beloved

rain cipher
#

shoulda put them at the top then lol

#

anyway, had a UI idea for how to handle Goblin core and Mule Harness: disappear the sprite then add a little floating window over the "host" with a portrait

#

somethng like this

#

Doesn't handle PCP though, best I can think of to cover both is a small popup list after selecting a space so you can select from items that occupy the same space. Feels a little cumbersome but as long as "the ground" isn't one of those options and it hapens all the time, it should come up irregularly enough

#

I can't actually think of any NPC side flat deployables like PCP or effects like Goblin where they share a space, so maybe it's a non-issue

alpine sorrel
#

oh that's not a bad UI solution. The thing I was really fearing though is the engine side of having multiple valid targets in the same space — I've taken lots of shortcuts throughout the code saying "give me the unit (singular) at this space, favoring mechs over deployables" and that's been good enough.

#

Like if you click on a tile to choose which unit to activate next, there'll now have to be a special side-flow to see if there's multiple potential guys at that tile in case it's a mule harness stack.

#

and that'll have to happen everywhere anything ever wants to target a tile for any reason

#

it's fine, it'll just be annoying to have to add because of one or two abilities

little jetty
#

would something like coding mule harness and goblin core as the passengers existing in a separate zone, and they're targetable whenever the base unit is targetable work?

#

that's even more shortcut that might be better solved by allowing the engine to handle shared space though, I think

tepid temple
rain cipher
alpine sorrel
#

Again, nice solution for the player side, but the space-target logic needs to work for the AI as well

feral veldt
#

This probably won’t work/cause more issues, but would it be possible to make it, code wise, have the attached goblin share the same ‘target’ code so when an enemy attacks, it mirrors whatever is done to the main target…. If that makes sense?

alpine sorrel
#

I think we're getting a bit into the weeds — I don't think the solution will be hard, it'll just end up being an annoying refactor when we get to it.

#

And I dunno what the specifics will be until then

#

🙂 will probably make a good tidbit for a devlog

crimson merlin
#

The earlier a change the cheaper it is in dev time. But sometimes you just have to wait and see what you need later on because other things are going to change too.

#

Always enjoy a devlog!

little jetty
#

what's the asset pack used for the mechs? Trying to use it for my table

little jetty
#

hell yeah thank you

#

ahh npc side is paid, I see

#

that's fair

alpine sorrel
#

Doing a batch of late campaign sticker/coin orders today, and I just found someone who exploited the small tier/add-on loophole to get like a five dollar discount and then added back a dollar tip. People are strange

tepid temple
#

Maybe they were in it for the thrill of the exploit

lone cliff
#

maybe they felt guilty about it but still wanted a "discount"

ripe radish
#

Maybe they think kickstarter takes a smaller amount of tips

little jetty
#

can you ask them

loud dove
#

Such strange behaviour for such relatively small amounts of money

obtuse delta
#

Oh my god

#

Just found out about this project

#

Me want

crimson merlin
fickle pecan
#

the demo is though!

obtuse delta
#

Noice!

alpine sorrel
#

Been having a pretty slow week, but today I added x-ray shader for seeing units and movement lines while they're obscured by terrain.

crimson merlin
#

Looks effective

little jetty
#

ooh it looks gorgeous

#

I was just expecting basic outline but it's got this cool vfx

#

oh and it works with arrow too?

crimson merlin
#

Are the black lines showing obstructed LOS?

shy spruce
#

oh god fuckin bless

feral veldt
#

That looks so much better then a simple outline

obtuse delta
#

Damn that looks sick!

cold timber
#

Yesssss that looks so good!

mild jay
#

Gonna need to save that link for later. Looks like a good resource

patent pasture
#

i like the digital effect a lot. To the point that I'd kind of like to see some subtle effects throughout? Kind of give a little "we're actually playing on the commanders holo display" diagetic effect. Almost certainly awful for readability but hey

#

literally anything that implies a menu is in universe I will fall over for

alpine sorrel
#

This is a BIG thing carpenter and I have been trying to think through for the last few weeks

#

Where do we draw the line? Are character sheets diagetic too? If so, what are they in-universe?

#

COMP/CON strikes a nice voice of being a sorta "you're in a faction-themed computer UI's registration software"

#

but do we really want to take the stance that the player is a commander looking at a holo-map sending orders to allies? If we're making a general-purpose Lancer engine, I don't know if that's always the narrative positioning we want

#

The more generic it is the more situations it fits, but you lose that excellent diagetic flavor that comes from specificity

#

The balance we decide to strike will dictate a LOT of artistic decisions; it was spurred in this case by our musician asking us "so... what sort of space is the player in during downtime?"

#

We haven't come to a strong decision yet.

#

and we can kick a lot of cans down the road, most UI theming can come as a late layer of polish

feral veldt
#

Maybe make it something that can be modded? Like, have one thing that you work on and is the 'main' UI, but have the option for people to make their own UI or make 2 or three of your own?

#

But that would probably be alot of work

patent pasture
#

I'd personally lean towards diagetic but excited for whatever you go for

tepid temple
#

Do what Xcom did and give the player a cool psychic commando for the final mission of Lancer Tactics 2

obtuse delta
#

Maybe even changing it depending to wich character youve currently selected (this one might be complex in terms of visual clarity as it could confuse the player, especially if the layout changes)

alpine sorrel
#

I mean starcraft did that and it ruled

#

but also "I don't want to make a decision, I'll implement them all and leave them as options" is in many cases the worst decision you can make scope-wise

tepid temple
#

Tv Tropes actually has a cool list with examples

TV Tropes

The Player and Protagonist Integration trope as used in popular culture. A big factor in many video games is a sense of immersion—the feeling that you …

alpine sorrel
#

plus that doesn't solve non-UI stuff like music being tailored to specific environments

obtuse delta
#

From what i heard in the demo, the music slaps

alpine sorrel
#

it'll be very different than the demo!

#

we're working with a new artist. I think it needs to be more mellow, the demo is kinda intense

#

more into-the-breach-y

obtuse delta
#

Into the breach is an amazing example for games like this

#

Mechanically and artistically too

#

Its just a great game

sharp smelt
alpine sorrel
#

In other news, I got overwatch working today!

obtuse delta
#

Oh thats sick!

sharp smelt
#

yahoo

obtuse delta
#

Btw little question me and a friend i showed the project to were wondering, will this game be usable as some sort of VTT for lancer, where a GM can like make a lvl with custom stuff and all, invite his players and have everything playable?

alpine sorrel
#

nah multiplayer is too big a swing for me to try and tackle, unfortunately

#

the best we might get is local multiplayer

#

and if we manage that, it might be possible to set up some sort of remote-play thing

crimson merlin
#

Steam has remote play built in

crimson merlin
#

This has been stuck in my head since it was raised. Online multiplayer doesn't look significantly harder than any other part of game dev. https://godotengine.org/article/multiplayer-in-godot-4-0-scene-replication/
But also multiplayer wasn't a promised feature. I think if you add multiplayer you should take a swing at networked connections, but... do it later, once more of the game is done. Or maybe even after 1.0 if you have the budget for it.

calm charm
#

If you're going to add multiplayer to a game typically the times to do it are "as you are starting development" or "never", waiting until a game is done is asking for trouble
As the game has already started development with no multiplayer planned, retooling it to have multiplayer would inevitably be a large effort because you need to shift how so many things are handled

final onyx
#

I think it's probably a lot harder than it looks from the outside

tepid temple
#

I think the best that can be swung for is “remote-play friendly local multiplayer”, which I’m sure is still non-trivial

#

At any rate, the “Nice to have’s” pile is tall and there’s stuff which much higher demand on it

void hornet
#

Ultimately its up to olive, it wasnt a kickstarter stretch goal and theres already a ton to do

burnt frigate
#

"Online multiplayer doesn't seem hard to add" seems like one of those things that game devs hear moments before the sort of disaster you read a tell-all about years later

#

A good rule of thumb in my experience is that if you think a thing is easy to add to a game, it probably isn't

feral veldt
#

Yeah, online is ALOT. There is a reason why when rollback is added to a game later in life, it takes ALOT of time and money

mild jay
#

Any given game engine has a lot of features to help support multiplayer. The problem is that while it often seems simple at a basic level, in practice as things get bigger and more complicated, getting things to work consistently across servers and clients becomes more difficult, depending on what you’re trying to do

#

I can’t speak for this game or godot, but as an example I’ve dealt with working with Unreal, maps (lists of key-value pairs, aka dictionaries) just don’t replicate. Any client-facing functionality that depends on data you store in a map on the server? You have to get creative in how you get that data on the client in a way that takes up minimal bandwidth. And that’s gonna change on a case by case basis

calm charm
#

if you weren't already thinking about it when you started a project, chances are that many of the solutions you have made to various game systems are going to turn out to be fairly unsuitable for networked gameplay where you need to start caring about client/server communication

ripe radish
#

I mean, multiplayer is easy. When its your friends turn, hand them the keyboard

crimson merlin
#

Play by email

unborn glen
#

Competive mode, you must wrestle over the ability to take a turn

#

vordt of the boreal valley plays

alpine sorrel
digital maple
#

"Play by mail" mode where it's possible to, like, send over a code of the move taken and its outcome, similar to chess notation, so the other person can synchronize game state, would be pretty funny.

alpine sorrel
#

Modders adding multiplayer to Skyrim was a feat of heroes

unborn glen
#

Holy crap, I want to play this game while arm wrestling now

mild jay
#

That was sorcery and you can’t convince me otherwise

alpine sorrel
#

That said, I'm cleaving closely to best practices in keeping view separate from game logic and it's already saved us once in the switch to 3D so maybe it might nevermind I need to stick to a strict policy of keeping multiplayer expectations at zero

digital maple
#

Good move. You've got tons on your plate already.

unborn glen
#

Well you can still coop by passing controlable mechs around

alpine sorrel
#

Yeah I'm feeling whelmed these last few weeks in trying to tie things together into the first EA demo. Lots of boring stuff like getting resizable fonts working and adding game settings to persistently adjust audio levels // organizing sfx into fmod channels so they can be independently adjusted, etc

#

The plumbing that doesn't matter until you want to hand it off to someone

burnt frigate
shy spruce
#

this is why you hear about in so many game retrospectives about how the multiplayer part was handed off to someone entirely separate, 'cause that shit's so much extra work.

burnt frigate
#

you also hear a lot of "the c-suite demanded we add multiplayer and it fucked everything up"

#

This happened to Mass Effect 3 (which somehow magically ended up not sucking to everyone's great surprise) and Spec Ops: the Line (which was just sort of there) among other things

#

I think "a strict policy of keeping expectations for X at zero" is one of the smartest things a game dev can do in terms of workflow planning

deft rapids
#

it's still wild to me that 1) me3's multiplayer was good and 2) that i miss it

mild jay
#

Really caught lightning in a bottle with how me3 multiplayer turned out

shy spruce
final onyx
#

I once got host migration for a hololense project working once

#

Unless you walked too far away

#

Even if the connection was perfect

#

If you moved too far away in the real world it couldn't keep the assets synced

#

Never again

patent pasture
#

Code notwithstanding, I always see the suffering of devs handling off turn reactions in turn based adaptions and lancer has lots, and that sort of thing gets worse in multiplayer

#

Like high level bg3 is an ocean of "do you want to force a reroll" on every single attack. Then have it happen for every player. Then have it happen when a player stepped away because it wasn't their turn.

#

And now everyone is waiting and you probably have to implement a timer, which end adds an unpleasant pressure all the rest of the time

#

A nightmare

#

I play bloodbowl. "Do you want to take this interupt" type things have like.. 5-10 second? timers, happen regularly enough you need to pay attention, but rarely enough that your attention can wander. It's a long enough pause that the other player gets frustrated at it interrupting their turn and also completely screws you if you dont make the choice.

All interactions that flow nicely in a table game.

grand notch
#

Three days late, but the major thing I remember about the multiplayer of Spec Ops: The Line is that the devs straight up called it a tumor on the disc.

ripe radish
#

Idea for multiplayer: whenever you lose, the other person can now play as Luigi until they lose.

void hornet
#

i support this because i wanna see luigi goomba stomp a goblin

agile lagoon
#

Aaa!! I didn't realise I'd also be getting stickers after the initial campaign! Got some things for my laptop now.

alpine sorrel
#

today was a "have fun with shaders" day, vis a vis working out how to represent the "off map" area. I don't want it to be an Into The Breach puzzle box; I'd like to have it feel like it connects to the outside world, but also I do't want to have to deal with off-map actual terrain. A weird shifting texture seems like an OK compromise.

little jetty
#

looks nice! the little touches you're adding is gonna make the game look so gorgeous

tepid temple
#

Looking fine

#

The edge just going to be a solid wall, no Icon-style insta-death modifiers?

tired aurora
#

a literal "fog of war" 😎

lone cliff
#

you could try like, blurring/fuzzing/dithering the map edges to blend it into the outside map texture too?

alpine sorrel
#

Oh I like that idea! I'll try it

alpine sorrel
#

but I like the concept of integrating the edge with the map... maybe outward is the solution rather than inward, like leeching watercolors outwards. That sounds hard enough that it's probably a final-polish step though.

lone cliff
#

yeah not a priority

#

and if it helps i was imagining more blending outwards

crimson merlin
#

Having the edges bleed into the map is artsy. Having the hard edge is more gamey. I think it's OK for games to be games - I'd go for hard edges

obtuse delta
#

maybe one cool thing that could be done is adding a little text barrier that appears saying something like "out of radar", kinda like in armored core 6 where if you get too close the edge of the map you see it

patent pasture
#

a thought - there was some discussion previously about how diagetic you want the UI to be - if you were to end up going in a diagetic direction, you could do some kind of digital effect, like the computer is bleeding out the colour or fading to like, digital noise

alpine sorrel
#

Yeah! That's a little what I was going for with the jerky pixel-y quality of the clouds. It's probably on the subtle side, but I think that's a really promising aesthetic approach for this.

shrewd anvil
#

The hard edges look a little better imo

feral veldt
#

Yeah was thinking maybe give the outside a staticky look or fading into plain grid or ‘outside of sensor range/battle field’?

alpine sorrel
#

got ramps working! the plan is to have odd ramp shapes later, but they're not mechanically different than these basic ones so that gets kicked down the road

tepid temple
#

I have watched this gif on loop a good 10 times trying to absorb every bit of info

crimson merlin
#

Noice!

#

Is climbing/mag clamps a problem for later?

alpine sorrel
#

Nope they're already in!

#

Just not pictured here

final onyx
#

Things are really ramping up

alpine sorrel
#

whichever backer has been pressing whatever button that sends me this message has just been making me spiteful about writing the next update. They're monthly because that's the pace that works for me. /rant

crimson merlin
#

I haven't seen that particular popup, but Kickstarter sends something similar when there's been comments on your project and it's enormously stressful. It's not just you

alpine sorrel
#

Ah I like seeing the comments one, it's nice when people have stuff to say themselves

feral veldt
#

Yeah that seems bloody rude of them.

little jetty
#

why is it a big red banner and not a small notification icon 💀

loud dove
#

I wish we had less intentionally-hostile ux, it really is a shame

#

:/

fathom holly
#

I can understand why they'd make it a big red banner, and I can also understand why it'd be annoying for it to be a big red banner.

ripe radish
#

What if it was a big green banner?

glad lotus
#

If it's something that can be triggered at you by any one of thousands of random internet people with zero cooldown, it shouldn't be anything.

alpine sorrel
#

It's not clear to me what exactly cooldown it has. I've gotten one every few weeks for the last month or two.

#

the "start writing" button really annoys me because it sounds like a command more than an invitation

little jetty
#

can it be turned off? that is just ridiculous

glad lotus
#

Yeah, I'm sure they put "start writing" there with the idea that it makes it easy. We'll reduce friction! We'll close the loop between creator and backer!

In practice I'm 100% with you. The message my brain would see is, "stop slacking and procrastinating, get to work! 😠"

tepid temple
#

Can you get rid of it using something like uBlock?

final onyx
#

Just post an image of your git history /j

little jetty
#

posts one screenshot
"stop asking for updates or this is what you're gonna get, see you at the end of the month"

worldly violet
#

"Every time you ask for updates another mech License is removed from the scope. Now silence"

alpine sorrel
#

I want to read the intention in good faith; that someone is excited for the updates and wants to send encouragement, not knowing that kickstarter's notif for it is so odious

untold prairie
#

"The end user doesn't know how odious the platform is" is a safe bet in 2024.

alpine sorrel
mild jay
#

They got different facings!

alpine sorrel
#

heck yeah they do!!

#

we can get away with just having a front-and-back by not caring that their sides flip when we mirror them

fickle pecan
#

oooooooh!

worldly violet
#

That fucking railgun shot on the update made me feel things

alpine sorrel
#

The games version of carcinization is getting closer and closer to Minecraft. Love removing and adding blocks.

fickle pecan
#

just gonna go full on deployables to play as much minecraft as possible

obtuse delta
#

In the end, everything is Minecraft

mild jay
#

Kobold/hydra for maximum mining and crafting

worldly violet
#

SEISMIC RIPPER KYAAA
extremely aggressive ear ringing

alpine sorrel
#

Fun fact: it's bad accessibility to have "ear ringing" sfx in a game; it can set off tinnitus much the same way flashing lights can set off a seizure.

little jetty
#

love the color scheme, is this also like a preview of mech art customization?

alpine sorrel
#

They're the working colors for showing the different customizable areas. I think the current approach carpenter and gen are working with is having 3 modifiable color channels: the primary modifies the grey, secondary the red, and then a tertiary for energy or highlights like the tips of the goblin spines.

shy spruce
#

oh beeg gun

alpine sorrel
#

we haven't actually implemented any color-customization for them yet, but it'll use the exact same recolor-shader tech as we do for the pilot portraits

flint portal
#

HOLY SHIT Y'ALL GOT GEN FOR THIS?

#

Oh my god

#

perfect casting for doing mech sprite for this

#

this is exciting news, genuinely

#

You're gonna be happy to know that Winter Scar also has those in a few places

little jetty
#

i would love to use these arts in my actual games

#

omg are the NPCs getting same treatment by any chance

sharp smelt
#

YEAAAA LET'S GO FACINGS

#

COLORES

alpine sorrel
#

I'll make a note to think about that far down the line

tepid temple
#

Yooooooo, I love Gen's art, they're a great fit for this

#

I just hope they get to flex their muscles and do some larger pieces as well, those are amazing as well

little jetty
#

oh i was just thinking png export like the character art
I think that was one of the features, right? or am i misremembering

obtuse delta
#

would be so cool if in the future the game got support for custom mech sprites, imagine using your own retrograde minis

little jetty
#

i think it's not in the scope bc pixel art doesn't compress well, among other reasons

digital maple
#

Sprites! Geometry! Rotation! It's looking fantastic.

pastel flax
#

Fantastic update

alpine sorrel
#

Flying in LT is a status that increases your effective elevation and lets you ignore terrain/climbing movement costs

#

I'm currently considering collapsing hovering and flying into one thing to simplify it

#

I feel like at my table we usually forget about stuff like the "fly only in straight lines" rule

#

Mayyybe just have the difference be that some mechs have an extra buff that keeps them from falling when immobilized

tepid temple
#

It does feel like an indirect nerf to the Dusk Wing, since it rides or dies on being the only mech with hover

frigid shale
#

Dusk Wing is the only frame in the game that can fly by default, so I'd say it makes out just fine tbh

mild jay
#

Yeah it’s also still heat free flight

#

Crack Shot 1 might be a little buffed with that hover change? Hover is still either rare or a big investment though

#

And the duskwings I’ve played with didn’t like to sit still anyway

alpine sorrel
#

Oh looks like I misread/remembered the hover rule. The only difference besides the straight line thing is that non-hovering characters have to shuffle around a bit on their turn to stay flying?

#

That seems doable.

deft rapids
#

Yeah if you don't fly on your turn, you fall

patent pasture
#

I do want to use this to just like... build wallflower

sharp smelt
#

Now you’ve got me thinking the same thing

marsh swift
#

Hey, I don't know if someon already asked, but is there any plans to make a multiplayer version? 0_0

little jetty
#

multiplayer is out of scope

grand notch
#

I'm curious how hard it'd be to hack it in.

#

Given that it's out of scope for the original developers, I'm going to guess the answer is "very."

magic cave
#

It has been done for other games before, a fact that continues to baffle us, but.
Yes, the answer would be very we think

ripe radish
#

with most options being closer to the "very hard" side of the spectrum.

calm charm
#

however as stated, there isn't any plan to implement it for this game 😅

agile lagoon
#

I am an experienced (and have been paid professionally) multiplayer game dev. It is a nightmarish endeavour that colours every inch of the development pipeline and sours everything it touches and I do not wish it on anyone.

mild jay
#

“Your game is multiplayer now” is one of the most cursed spells to be banned by the wizard high council. “My game is multiplayer now” is not banned, but it does incur a terrible price on the caster

deft rapids
#

i keep petitioning the council to additionally ban "arbitrary multiplayer focused franchise installment" but they refuse my letters on account of "not being a magician"

grand notch
#

I still recall the tale of the multiplayer stuff for Spec Ops: The Line being outright called "a tumor on the disc."

marsh swift
# little jetty multiplayer is out of scope

Ty! I found the game and was curious about that. I decided to back up the project anyway after played the demo. I think the soloplay experience solve the time "time problem" of lancer so well that even the stuns are not frustrating like in the TTRPG version. Very excited to see the beta 🙂

alpine sorrel
#

Do we think that size 1/2 units should be able to reach up and hit another standing on size 1 elevation with a threat 1 weapon?

#

They count as height 0 in terms of line-of-sight so they can't see over size 1 things (bc LOS is reciprocal and size 1 objects should obscure them), so it seems a little strange that they'd count as height 1 for things like threat or engagement.

#

I also think the image of a napoleon fruitlessly waving its sword at an enemy on slightly higher ground is funny

tepid temple
#

The way I see it, a size 1/2 still occupies one space, and threat is drawn from the edge of the space, and a mech that's on top of size elevation is still within 1 space of that space, just a bit diagonally, so yeah

mild jay
#

My gut thought is that 0.5+1 = 1.5, which still puts the reach high enough to get to the top of the size 1

alpine sorrel
#

chill thanks for the sanity check

wraith cradle
#

I don't think we need to bully Napoleon any further.

alpine sorrel
#

I guess the "size 1/2 units are worse at engagement" angle is already covered by the normal engagement rules

little jetty
#

is their base still size 1 like normal? for edge to edge calculation purposes

alpine sorrel
#

yeah "size 1/2" is implemented by being a normal size 1 unit but with an extra boolean that downgrades their height when checking LOS or causes them to be treated differently under specific circumstances like comparing unit sizes for engagement

#

plus their sprites are a little smaller

tepid temple
#

I was wonder if that or "Size 0.5 in the backend but with special exceptions for some things" was the easier option to program

alpine sorrel
#

Yeah keeping the size stat as an integer is waaaay simpler

flint portal
#

okay i'm actually really curious

#

Is lancer tactics going to handle grapples?

#

It just hit me that grapples are weird

alpine sorrel
#

I just had a several hours meeting with Carpenter talking about how we're gonna handle them. I thiiiink we have a good theoretical base for them, but I haven't started implementation. We need a general attached-units system for MULE/goblin CP/Lancaster tether cables anyway.

#

It'll get a bit hairy when there's like a chain of units grappling eachother and moving around like a big piece of adhesive flotsam, but I think technically viable

#

It's also an open question how to figure out what are valid move tiles when grappling. You shouldn't be able to walk someone else through a wall, but you should be able to walk them off a cliff

#

If anyone ends up in an illegal space, the game will have to kind of shunt them somewhere else. I suspect this will be an abusable surface area for speedrunners

crimson merlin
#

And what about if you're moving through a friendly unit's space and then lose mobility?

tepid temple
#

That reminds me, are you expecting Size 2+, which I have seen a conspicuous lack of in promotional materials, to be a big headache wrt illegal spacing?

alpine sorrel
alpine sorrel
alpine sorrel
#

jericho cover deployables show up as 3D meshes & you can stand on them. the carcinization towards minecraft continues apace.

pastel flax
#

that's so slick

obtuse delta
#

looking good so far!

#

cant wait for a public test, but i actually CAN wait tho

#

take your time

final onyx
#

cooool

alpine sorrel
#

Cute bug I just found: after terrain destruction, all units (incl. deployables) 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.

#

Literally pull themselves up by their own bootstraps

pastel flax
#

Ahh the classic "Ah wait it's self inclusive"

marsh swift
maiden crater
worn tiger
#

self-ascending jerichos

#

instant space elevator

crimson merlin
#

*stacks cover on itself for height advantage

jade reef
#

All these previews are looking gorgeous!! Your efforts are really paying off. :]

boreal dust
#

with the carcinization towards minecraft is it possible to make a tower of mines and other deployables? is there a maximum height?

alpine sorrel
# boreal dust with the carcinization towards minecraft is it possible to make a tower of mines...

Alas, no, we're not doing stacking multiple units; the way I fixed the above situation is by having units/deployables that add height always stick themselves to the ground, ignoring all height-adding effects (including their own). Since most of the engine continues to be a 2D game under the hood, there's not a good way to track which unit should be lower on a stack — units don't remember their z-level. Whenever it's needed, it's calculated from the current ground level + height-adding-effects + if they're flying.

#

There's currently a maximum ground height of like 6 blocks to make room for large setpieces like the hangar going even higher up but carpenter has petitioned that I increase that substantially. There's a performance cost of doing up-front line-of-sight calculations for more layers, but I think we're still within reasonable bounds for that.

little jetty
#

how do y'all plan to handle line of sight and cover with height and flying?

#

I vaguely remember you mentioning that flying will be handled differently but if we're getting terrain height of up to 6, I feel like that may change some things

tepid temple
#

Have you put any thought into the Kobold's trait and cp? I know it's not core book content, but I do remember it being one of the demo frames

alpine sorrel
# little jetty how do y'all plan to handle line of sight and cover with height and flying?

The cover calculator does a center-to-center raycast looking for blocks that give hard cover and adjudicates based on the position of intersections (adjacent blocks can give hard cover, further ones are just soft).

It's really friendly in comparison to the prickly LOS system, which is still basically the same as the 2D system but with more layers. When I need to see if one tile can see another, I check sight clearance using the higher of the two tiles. This means no overhangs/bridges. And flying works the same as if they were just standing on a higher block.

alpine sorrel
alpine sorrel
#

testing out a topdown mode to fix not being able to reach units nestled between two tall buildings

tepid temple
#

I spy both Gen NPCs and the Drake 👀

#

(though I'm pretty sure the NPCs were also in that last gif)

little jetty
#

oh this doesn't look nearly as cursed as i thought

#

huge fan of the how flying is representated here

glad lotus
#

Yeah, this looks great!

#

It is a bit hard to tell things are flying in top down. Maybe there's a little note or modifier you could show next to the mech in that case?

alpine sorrel
#

That's a good point. Carpenter was talking about maybe going full straight-down so the elevation edges disappear too and give that information with colors or borders or something... I think the ideal would be something like how Homeworld has a blue-schematic "tactical" view that you can switch to.

#

Sigh lol we're back to making a 2D game, pack it up

little jetty
#

if you're still doing the "flying as a status" thing, you could put an icon on it, right?

deft rapids
#

put a tiny little goku cloud under the feet of the flying sprite

#

this is only like 45% a joke

shy spruce
#

there's always the standby of 'flying units get an obvious dropshadow'

tepid temple
#

Like Kingdom Hearts

little jetty
alpine sorrel
#

all good, I had similar fears initially

crimson merlin
#

Maybe flying units need an effect like jet wash?

alpine sorrel
#

also not a bad idea!

tepid temple
#

I'm rotating the sprites in my head to imagine how the non-flight units would look like soaring through the air

patent pasture
#

I know you are doing flying as a status, but I'm interested in what that means mechanically?

#

I guess in the sense of like, can you melee a flyer, kind of thing

alpine sorrel
#

it means they're at +3 elevation above the ground

#

so to melee them you'd have to have enough threat or like be standing on a cliff high enough that's next to the flier

#

or be a melee barb lol

#

they also ignore all extra movement costs from the ground // elevation changes

final onyx
#

To fly is to not be ground

lone cliff
#

@alpine sorrel how do yall plan on handling the sprites for the core bonuses that change your size?

alpine sorrel
#

Goooooood question, we've talked about it and we're gonna see what looks best when we get to it — either resizing the sprite (possibly ugly-ly) or just giving it more spaces to take up without changing the graphic.

#

If a straight x2 scale fits we'd probably do that, but it might not work for the size 2->3 change

#

Size half->one probably has no visual change tbh

lone cliff
#

yeah resizing sprites is a big ew

#

tbh

#

the why would you do this option is to make new sprites for every possible player size up to 4 lmao

#

casually quadruple the number of sprites why not

alpine sorrel
#

Wow I've never actually contemplated a size 4 barb

lone cliff
#

so fucking unwieldy lmao

#

the few size 4+ homebrews ive seen all have some trait that lets them circumvent the problems of moving as size 4

#

like being a big nano slime blob or flying or whatever

alpine sorrel
#

Pixel art is such a pain to work with. I don't know why we're still doing it

#

Gamemaker's toolkit just posted a video where he learned this firsthand once it moved beyond a tech demo and was like lol forget this and converted to hires art: https://youtu.be/UlzgvZqig40?si=_yGqu1EL4l-Y2gzT

🧲 Wishlist Mind Over Magnet on Steam! - https://store.steampowered.com/app/2685900/Mind_Over_Magnet/ 🧲

🍿 Watch the trailer - https://www.youtube.com/watch?v=71MzN_vYEgo 🍿

Developing is an on-going YouTube series, where I share the step-by-step process of making my first video game: Mind Over Magnet!

In this episode, I look at the work behind...

▶ Play video
alpine sorrel
wraith cradle
mild jay
#

Iirc barb used to be size 4 in some old playtests and it was rough, so it might even be the reason fomorian frame has that limit

final onyx
#

Worth considering the Ship Template when thinking about max possible sizes, scaling up NPCs and all. Although I'm not sure what the plan with templates is so ignore me if it's not relevant

alpine sorrel
#

Oof, yeah, I hadn't actually thought of that. The only solution I can think of is to make a sprite specifically for ships and use it for any NPC class that gets the template. But it might also end up being a thing that we shoot for for the 100% port but ultimately not get to.

final onyx
#

If any template was gonna get a unique sprite, it would be ship

alpine sorrel
#

vehicle maybe

#

As long as we're adding scope and new unplanned art lol

worn tiger
#

no size 3 dusk wings or other silliness

tepid temple
#

Now I'm realizing there needs to be something for Sag + Fomorian Sag

#

That reminds me Olive, you solicited opinions in letting any size 1 NPC double as an Everest sprie. That sounds like a cool and easy way to expand the options, so long as there isn't some secret big overhead to doing that

magic cave
#

maybe like a "main" ship sprite that then gets 5 variants for the various roles? (or 6 we guess for Bio)
that is 4-5 more sprites than 1 though so like. y'know.

alpine sorrel
#

and the thing about pixel art is that making something twice as big typically takes about four times as long from the larger area, so even a single size-4 sprite is a reach

#

honestly it might be easier to have it be a 3D model, now that I think about it.

little jetty
#

the line thickness increasing proportionally with size sometimes looks really weird

#

do we just like pixels for nostalgia? discuss

tepid temple
#

Dumb suggestion I mean entirely as a joke: reserve the 3D model for NPCs with the Exotic template

alpine sorrel
#

ha that's good too

#

I bet paper mario did something with the eldritch horror of beings with a third dimension

little jetty
#

i switched from hex to squares just for this one metavault scene myself

little jetty
tepid temple
#

In Super Paper Mario, Mario can shift into the 3rd dimension, and doing so is physically dangerous to his health and he can only do it for a limited time

#

In Sticker Star mundane, 3D real world objects are alien artifacts that nobody understands the purpose of, that you can use as weapons

tired aurora
#

In Cassette Beast, all characters are 2D pixel art who live in a pixelated texture 3D environment. The Eldritch Archangel in the game range from 3D model, 4D model, paper cut collage, 90’ Cartoon looking guy, and a moving painting.

alpine sorrel
#

Amazing

lone cliff
#

cassette beasts is such a good game

feral veldt
#

Heard both good and bad things about it- Supposed to be good but it's Slow

maiden crater
#

Can't be slower than gen 4 Pokémon

feral veldt
#

No idea

unborn glen
#

You can consistently get FTKs or ZTKs in cassette beast if you get the right set up

#

I do think pixel art has worn out its welcome. Kinda disappointed me when octopath traveller went for the retro look, you could had this beautiful pop up story book look without the "grainy filter"

crimson merlin
#

Variety is the spice of life. Pixel art games are, should be and will be always in the mix and that's a good thing

unborn glen
#

True, when it's additive to the game experience. Something like hyper light drifter for example

lone cliff
#

:v

#

ill always appreciate good crisp pixel art

marsh swift
#

Pixel or not pixel, I'll love this game anyway

little jetty
#

it's also a low barrier to entry if you wanna make your own assets

#

of course you can make amazing pixel art, but also it's relatively easier to make a decent one compared to other styles

grim locust
unborn glen
#

I dunno, i get that often they are try to invoke the retro look of older games, but it just makes me think of those games rather then what I'm playing.

It gets me a bit with sea of stars as well because it just makes me think of chrono-trigger, which is annoying because Sabotage Studio are epic.

The messenger is one of stand out games with pixel art because it's uses 8-bit and 16-bit to show time travel. And the writing is amazing.

crimson merlin
cold timber
#

I do pixel art, and yeah some of it is the nostalgic factor, but I really enjoy the limitations of the style. The limited color palettes and low resolution can be inspiring, and require some interesting techniques to try and work around them. It almost turns some pieces into a puzzle, where moving or changing a single pixel can completely fix or ruin the whole work. Also dithering just scratches a certain itch in my brain.

Those same limitations can be a crutch, making it easier to get into, but there's still a lot to learn to do it well. It's it's own medium with it's own tropes and styles and techniques to learn. Not that there's anything wrong with it not being a style of art someone personally likes! I can certainly understand it being over-represented in a lot of games, leading to the style overstaying it's welcome for many.

unborn glen
#

I think especially from square-enix that it's just for that nostalgia, I don't mind when it's genuine expression because there's a passion behind it that gives it character. Square doing it seems like baiting.

burnt frigate
#

For literal decades in the video game industry squaresoft was like one of the go-to examples for quality pixel art in video games, saying that them using pixel art these days is just nostalgia baiting is like saying that lebron james winning basketball games is just pandering

#

If anyone in the industry is allowed to make pixel art rpgs it's them

#

There are plenty of avenues you could look at and reasonably say that modern day square is trying to leverage nostalgia, like the fact that they're going to be spending a decade+ remaking a 27 year old game, or their lackluster ports that bring little to the table an emulator couldn't except with worse fonts, but making new games with all new pixel art graphics is just making a game that has art direction

worn tiger
#

god forbid someone use an artstyle

unborn glen
# burnt frigate There are plenty of avenues you could look at and reasonably say that modern day...

I do agree with almost everything with that, I didn't want to expand this out to a greater discussion on square-enix as a company since it would getting away from my grips with the what I feel is the overuse of pixel art.

The specific grip with square-enix and their use of pixel art is that it doesn't feel like the style itself is evolving, they have a specific style which to me is a safe chrono-trigger like style. octopath 1 and 2, live-A-live, star ocean are all games that to lose their identities visually because they are so much like chrono-trigger.

I ragged on sea of stars a bit, but that studios art style still has quite a bit more of identity outside of chrono-trigger which is clearly it's inspiration. I guess what I'm trying to separate is inspiration from pandering.

I will check by basis now since I probably should have stated this at the start; I don't enjoy games that feel like they want me to look backwards as the reason they are good. It's why when I look at modern games using pixel art, especially games with large budgets, I'm critical if they are choosing the style for an artistic/limitation reason or for pandering.

#

I do wanna present what are some strengths with pixel art in addition to what Ada and Suji said. it is in my opinion, pixel art is fantastic for maintaining clarity in fast paced games or games lots of visual information. Replaying some of the old sonic games as well as mania highlighted this, playing games like katana-zero, hyper-light drifter or Risk of Rain returns would be incredibly difficult without that visual divide which pixel art is known for

#

I'm not saying it an invalid style or doesn't have strength, it clearly does on both fronts. I just question when it feels off, when the choice feels doesn't have some reason outside of invoking the past.

flint portal
#

I feel like its a bit unfair to say the style "hasn't evolved" and then mention octopath 1 and 2 who, personally, by all account actually use the pixel art to amazing effect

#

not even mentioning the boss fights, which use this effect of giving them more detail which really makes them stick out

#

Pixel art requires a ton of effort, more so than what a lot of people give it credit for

patent pasture
#

There's some really interesting stuff around making pixel art work, because a lot of the old pixel art was specifically engineered to create specific effects on old crts - If an artist understands the mechanics, they can use it to imply detail that simply doesn't exist in the raw image. Super cool stuff, and absolutely not the same as antialising it.

But that means pixel art now isn't really the same technique at all except at the most rudimentary level, old sprite styles can look pretty rough on modern displays, (and somehow no retro games or emulators seem to offer crt shaders that look remotely like the old blending you used to get.)

That might be using greater bit depth or some specific shading techniques to get the look right, but I think it's really cool how it's different and it's really not the same thing it was back in the nes/master/snes/megadrive era

burnt frigate
patent pasture
#

like, dracs eye there. One red dot creating sinister narrowed eyes

burnt frigate
#

if Live a Live shares some resemblance with Chrono Trigger, well, there's a reason for that considering Live a Live was made by square in 1994 and Chrono Trigger was published in 1995

frigid shale
#

It’s feeling like this convo has drifted away from the thread topic to a wider discussion of pixel art in video games? Would it be appropriate to move it to another place?

patent pasture
#

I'm done, tbh

unborn glen
#

Valk right, apologies I do like to debate.

alpine sorrel
#

Three solid days of work; we got data serialization for save/loading (mostly) working! It was very satisfying; everything in the game can neatly fold and unfold itself up, to and from json.

The remaining thing to do is to figure out how we want to handle pilot portraits in the JSON; you can see the pilot's picture become "unknown" after loading. Our options are to regenerate the portrait image (will make loading a little slower), try to encode the image in text (will make the save jsons a little less convenient to manually edit), or just give up on it being json at all and save the game in a binary format. Not sure which one yet.

#

here's a savestate, if anyone is curious. a nice an compact 12kb for the above scene

crimson merlin
#

How long you talking on regenerate portraits? In a scene with 4 players, and 6 structure worth of enemies that would only be 10-20 portraits

#

I think smaller saves are better

alpine sorrel
#

almost certainly less than a second

#

it's just a bit more finicky because they're currently cached by essentially taking a screenshot while in the portrait maker; we don't have machinery for generating an image from the data while in a different mode

crimson merlin
#

I remember doing mod work on SS13... Load times add up fast

agile lagoon
#

You're crushing it Olive

final onyx
#

Make all portraits be a combination of pre-set face characteristics. To then load a save you need to mix and match those characteristics (as stored in the JSON) to unlock it. This saves needing to cache the image and also gives your game Facial Recognition software /s

pastel flax
#

My understanding is that you couldn't store it as a blob file

alpine sorrel
#

Oh?

deep nest
#

Shot a message on twitter but I didn't realize there was a whole as thread dedicated to this:

This is incredible you are incredible keep kicking booty

pastel flax
# alpine sorrel Oh?

ah i meant to put a "?" at the end, you storing it as an image. But off the top off my head - if you store it as a face you can't swap it true, but it does mean if i force a new asset into the game it could replicate outside of the modded save?

cold timber
#

If manual editing of the JSON is a valuable feature, you could store all portraits as a JSON blob with a key value to link to it's actor in a top level array at the end of the JSON. Then all the human-readable stuff will be at the front, and when you hit the base64 morass you know you've passed all the useful data. Personally I'd still lean on regenerating the portrait from saved character creator parameters, but if it's a blob I'm absolutely going to experiment with swapping that data with arbitrary images for my pilot portrait.

crimson merlin
#

It is a good point though; allows custom portraits instead of forcing players to use the in-game portrait maker

#

I love the portrait maker already, but I know people who would feel constrained

alpine sorrel
#

That's got the "look into supporting for its own sake" tag anyway, I agree it's valuable to be able to have strange one-offs. I'm leaning doing regeneration as well, but at some point add an escape hatch where you can feed it a file path to an arbitrary image.

#

or a blob, I dunno

little jetty
#

if you make the portrait into svg instead of png (nightmarish task imo) you can probably store the entire svg file inside the json

alpine sorrel
#

that's what the blob thing we're talking about basically is; represents image data in plaintext

#

a lot more condensed than svg would be

crimson merlin
#

Spitballing; what if you cached portraits to their own folder so they don't have to be added to the save file? Editable, doesn't have to be regenerated

alpine sorrel
#

ha, I literally just did that to address the slight loadtime issue! I don't save the cache to file; after it regenerates I stick the portrait into memory (they're small pngs, it's probably fine) keyed by a hash of the portrait json. It'll have to reload em the first time you start up, but I think it'll be a lot faster when like you have 100 pilots in your roster.

#

i'm calling it the backstage photobooth where pilots line up to get their pictures taken

sharp smelt
#

license mugshots

glad lotus
#

I wonder if you could save out the images as Godot resources, use a generated hash/uuid as the file name, then refer to that in the save data JSON?

#

{"portrait": "abc123imauuid"}

#

I guess the save us not all encapsulated in one file then, which might not be desirable.

alpine sorrel
#

yes, I'd like if possible to keep these saves as a single file as much as possible... and I think that that'd be about equivalent to persisting this cache on disk instead of memory. Which we could do no problem but since pilots/unit objects come and go, I think a persistent on-disk cache would pretty quickly become a graveyard of portraits with pilots long gone.

#

which is kinda cool I guess but a bit messy

toxic badge
# alpine sorrel here's a savestate, if anyone is curious. a nice an compact 12kb for the above s...

"tile":"(14, 16)"
Does this mean every time you store a vector in the json blob, on the loading side there's a utility function to parse this string back into a Vector2 / Vector2i?
No judgement, json just makes my bones itch; I had this problem working on the lancer map creation tool for mr. ralf interpoint and eventually threw up my hands (and my breakfast) and switched to store_var(giant_dictionary)

alpine sorrel
#

good eye! yes, exactly, Godot can automatically do the conversion to vector-like string but to get a vector back out I have ```
static func is_serialized_vector2i(value) -> bool:
return (value is String and value.match("(*, *)"))

static func deserialize_vector2i(value:String) -> Vector2i:
if is_serialized_vector2i(value):
var split:PackedStringArray = value.split(', ')
return Vector2i(int(split[0]),int(split[1]))
return Tile.INVALID

#

not having to do that would be another benefit to switching to a binary format instead of json

#

and I have some general serialization/deserialization utils that I can feed a resource and a list of props in to handle the basic variable types while turning a resource into a dictionary:

static func serialize_attributes(resource:Resource, serial:Dictionary, attributes:PackedStringArray) -> void:
    for attribute:String in attributes:
        if attribute in resource:
            serial[attribute] = resource.get(attribute)

static func deserialize_attributes(deserial:Resource, serial:Dictionary, attributes:PackedStringArray) -> void:
    for attribute:String in attributes:
        if serial.has(attribute):
            var value = serial.get(attribute)
            if is_serialized_vector2i(value):
                deserial.set(attribute, deserialize_vector2i(value))
            else: # normal property
                deserial.set(attribute, value)
toxic badge
#

yeah, being able to do reflection-like stuff in gdscript like iterating over attributes is a neat feature of the language!

alpine sorrel
#

it really is! I ran into a case earlier today when I didn't know up-front the list of attributes I wanted to serialize (a resource type that has like a dozen inheriting types that all do slightly different things with different attributes) and I was actually able to write something up that is able to step through whatever resource I fed into it and serialize all their attrubutes automatically. It saved me having to write a ton of teeny boilerplate functions.

#

it definitely started to get arcane though, with weird hardcoded internal ints as type values 😅

#

eg this snippet

    24: deserial.set(prop, load(serial[prop])) # Texture2D
    28: deserial.get(prop).assign(serial[prop]) # array, in a way that handles enum conversions
    _: deserial.set(prop, serial[prop])```
toxic badge
#

uh oh
if you start hallucinating about enums, stop at once and consult a physician

sharp smelt
#

Olive loses it

alpine sorrel
#

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

#

Also I think we're gonna have the top-down mode square up and lock the orientation to be north = up while in that mode. Not sure if we want to do 85deg where you can see the heights a little still or a straight-down 90deg which looks tidy but more opaque vis-a-vis elevation.

worn tiger
#

I like the 85, personally. Elevation is a lot more easily readable (I can read it on the 90 but I gotta think a little), and I kinda like the slight tilty to the view

Gives overhead drone vibes

shy spruce
#

ye, also like the 85

mild jay
#

It gives a little more information without significantly obscuring any tiles, and doesn't look bad either

sand goblet
#

also in favor of 85 for the same reasons

tepid temple
#

Honestly I don't think 85 is any meaningfully easier to read than the 90, and I do like how the 90 looks

glad lotus
#

I could see a desire to have both top-down locked to north and top-down with your current iso rotation (i.e. only a vertical rotation on the camera, no horizontal rotation). Would it be possible to have both as options?

alpine sorrel
#

What do you think a good control scheme for that would be? Right now it's a dedicated button to toggle the topdown mode on and off.

final onyx
#

Toggle makes sense to me

#

I think that's how I've seen other games do it

glad lotus
#

Ah yeah, that makes it tricky. UI or keyboard button? A single toggle is simple and elegant, it might not be worth complicating that.

alpine sorrel
#

Keyboard

hollow oracle
alpine sorrel
#

Oh that's not a bad idea; I could maybe add an elevation number to this terrain box? Except it only comes up when there's non-standard terrain... hm.

flint portal
#

could be a toggle?

tepid temple
#

Could it be a number in the corner maybe?

alpine sorrel
#

corners are pretty primo UI real estate

#

I'm sure humans have figured out many, many good ways to have maps depict elevation.... I should just do a research dive on it at some point.

glad lotus
# flint portal could be a toggle?

Alt to show more info? That's a fairly common idiom. Could either only show while you're holding Alt, or pressing it toggles the extra info display.

#

Could also have that toggle things like HP bars? 🤔 Threat ranges?

alpine sorrel
#

Added to the list

patent pasture
#

If your doing an 85 for thr overhead it might be worth looking at what a.. 10-15 or so degree shift from North looks like too, imo it might be a bit more readable because you'll get height information from 2 faces

#

Another thought, what if height intrinsically was tied to colour, with the tile getting a tiny amount more or less saturated. Then in the pure top down view you'd get a little impression of heights at a glance.

hollow oracle
shy spruce
#

here's how a couple super robot wars games did it, though not near as much terrain info to be had there. in the first, you either tap the cancel button one tile at a time for terrain info, or you can scroll all around the map for it when you're selecting a unit's movement to check everything. you get a popup box for info that could shift around the screen, sometimes paired with one for units if you're doing movement and you cursored over a unit in your range. (sometimes these would glitch out and overlap in the same space, whoops.) the second, the cancel button toggles a sort of investigation mode where it brings up a less obtrusive persistent bar at the bottom for terrain info, and cursoring over units gets a much fancier quick-info popup box.

hollow oracle
#

not sure how doable it is, but could you put an elevation number on the top tile of every square when someone holds a button? Would make for quick and easy comparison of relative elevations

alpine sorrel
#

I'm sorta hoping that for quick comparisons, they can just look at em in 3D mode, otherwise what was the point?

hollow oracle
#

fair point!

torn kite
#

Belatedly, I've always been curious how save/load systems worked in video games!

near linden
#

goes from very simple to "oh gods no"

#

depends entirely on how much state you want to save: a platformer can get by with very simple data, a skyrim needs a way to store the state of every cheese wheel in the world if you touched it once.

tepid temple
#

Skyrim, incidentally, bungled that up such that every PS3 copy invariably crashed on boot past a certain playtime

near linden
#

yup

#

be glad if the game you're working on is turn-based; having natural sync points where you can just serialize the game state makes it so much easier than trying to deal with a continuously interactive, real-time game

glad lotus
#

This is also why you see things like checkpoints or save/load only being available in the menu

#

Data management is one of the larger problems to solve for an MMO, for example, and is often why you see them sharded.

mild jay
#

This is also something that can make mod support tricky; how do you handle the possibility of loading a save that was made when a missing mod was enabled? It’s one of those things that gets handled differently depending on how the game’s data is organized and what the developers feel fits their game best

alpine sorrel
#

just did an import of a buncha updated assets from Martina, so now the rest of the hair and clothes options are recolorable

#

For like the last month I feel like I've been saying "we're getting close to a vertical slice" but sub-tasks keep getting generated the more I playtest, but Carpenter and I just had a meeting where I think we've outlined the rest of the things that I need to add for it. Today we got a UI for getting structured/stressed.

fickle pecan
#

skyrim also has some quick save/quick load nonsense used in any% speedruns

#

aargh! discord scroll

little jetty
alpine sorrel
#

no, that had to be handled with a "photo booth" that regenerates + caches them the first time they're loaded during a session

#

this just finally updated the assets so they could be recolored; the original asset needs to look weird and red like this so the game knows which pixels to recolor to what channel

worldly violet
#

I know this is probably wildly beyond where you are right now, but have you thought about enemy AI at all? I'm always curious about how it's implemented.

little jetty
#

actually I guess this stuff shows up a lot in a lot of places

alpine sorrel
# worldly violet I know this is probably wildly beyond where you are right now, but have you thou...

I think I've overengineered the current solution... this is the diagram I made while putting it together and I don't super understand it anymore. I think the idea is that it makes a "heatmap" for each tile on the map based on how much it would like to stand there, calculated by what abilities/weapons it can use from there + if it's in a command zone tile - some decay if the tile is far away. It then goes to the hottest point on that heatmap and does the highest-rated action from there.

#

I think it was supposed to be flexible where its behavior is dictated entirely by the stuff it's equipped with rather than a top-down objective. It does its best making that heatmap with normal weapons (each point of damage they could do is +1 score for that action) but it could also be overridden by special abilities to prefer targeting allies, for example.

#

I should have started smaller and built outwards, because one of the things on my to-do list right now is figure out why the berserker keeps frag sigging instead of using its axe

#

and it's hard to navigate this system because there's a lot of stuff I added that there's no actual examples of yet

tired aurora
#

It is a sore point for me and likely many others too

alpine sorrel
#

here's one of the tests for the AI heatmap that's generated with an AI unit at (0,0) that's equipped with a pistol and a potential target at (3,3). The 2s in the heatmap are because it likes being further away when using ranged weapons.

tired aurora
#

I think Weight based AI sound like an opportunity for a lot of cool customization moment like having sliding scale of how much an AI want to do something like "attack in melee more" or "support ally more". Which can be used by mapmaker

alpine sorrel
#

it's more bottom-up than top-down; instead of an AI unit that's set to "support ally more" it's an AI unit seeing "oh, I have an action available that's highly rated for supporting allies. guess I'll do that." Here's the current fields for customizing an action's behavior via those weights

worldly violet
toxic badge
alpine sorrel
#

but maybe folding in "structure/stress potential killshot score bonuses" would make a negative base score fine

worldly violet
#

I imagine defensive behavior might be hard to implement... how would you get a NPC to dive into cover?
True. I like to spike my own NPC's chances to hack when a player is in the dangerzone. To punish reactor crimes, ya know

alpine sorrel
#

I haven't done it yet, but I assume I'll be able to scan the map and give tiles that have cover from enemies a bonus score

#

I don't know if they'll be smart enough to tell what players they should take cover from.

worldly violet
#

Its certainly abusable, but if you put have a way to expose it to their decision making, you could make the benefit depend on the size of the player's largest mounted gun

#

Means that they'll make bad plans against howitzers but idk what can you do

tired aurora
#

call that a feature FemmeHeckYeah

alpine sorrel
#

I'd also like to introduce some amount of randomness/jitter to spice it up a bit but I'm not sure what's the best vector for that. Add a small amount of noise to the final heatmap? Have it sometimes pick the second- or third-best options?

tepid temple
#

The latter sounds more impactful

worldly violet
#

yeah having some randomness is probably good.

glad lotus
rain cipher
#

I had done a decent amount of pondering on an AI system for a tactical game, that took into account mission goals for longer term decision-making and tactics for planning with other units with a similar weighting system; but seeing this and what needs to go into it even without those aspects reminds me of how naïve I was being, not surprising since I've never done any game programming let alone complex AI lol. Your mention of possible overengineering just reminded me of some videos I've seen from "AI in Games" about FEAR and Into the Breach, where sometimes simple systems can seem more complex than they really are. E.g. FEAR's enemies don't know anything about each other's actions or decisions, but they don't really live long enough for that to become apparent. Hopefully that implied complexity comes about here too!

alpine sorrel
#

Me, triple-checking that weapons can only have one weapon mod: "OK, I think we're safe linking weapons to weapon mods as a singleton rather than an array; there's never going to be more than one."
OPCal waiting in the wings: 😈 😈 😈

#

(it's not technically a weapon mod but is best modeled as one, so now I gotta make the system be able to handle multiple things modifying a single weapon)

#

I could hack it in as a one-off but then where will that leave AutoStab... and here we go, more sub-tasks are being generated when I'm trying to tie off the character sheet work for the vert slice.

deft rapids
#

autostabs and, presumably, core powers that buff weapons too?

#

tuga, sherman, raleigh, etc

#

or does the limited duration of those effects change how you model them

alpine sorrel
#

it's more the "this only applies to one weapon that you have to choose"

#

those CPs all have their own thing going on and don't require a player choice in the character sheet

tepid temple
#

I imagine this also applies to the Tagates' thing

alpine sorrel
#

how's that work, again? I don't have it on hand

tepid temple
#

When you equip a weapon you can choose to make it a Rifle instead

alpine sorrel
#

ohh yeah hm... that'll be a later problem, but my gut is that yes it'll be a weird "weapon mod" that you can apply to multiple weapons

#

lol it'll require a broad search-and-replace for all the places I directly fetch the weapons' types and instead make weapon types a derived state that needs to check its mods

pastel flax
#

is tagetes core?

alpine sorrel
#

nope, hence later later problem

tepid temple
#

And the Viceroy making Launchers two things at once can't make that easier to program <_<;

alpine sorrel
#

ohnnoooo right

#

lancer is a complicated game, everything can be modified by anything 😩

tepid temple
#

Atleast if you get the Viceroy working you can apply that solution to the Mimic Gun?

frigid shale
#

This is reminding me how I wish that weapon types were an array in CompCon

deep nest
#

why isn't everything immutable like clojure

toxic badge
tepid temple
alpine sorrel
#

yeah we're being pretty conscientious on this front, have already hired a Black sensitivity consultant specifically to take a look at the portrait maker once we get it a few more steps forwards.

alpine sorrel
#

Thinking today how it'd be cool if people end up being able to eventually make and sell larger LT modules as like 3rd-party DLC. I know modding culture is that most mods are free, but we have an interesting parallel where players are buying 3rd party campaigns for the tabletop game, so why shouldn't there be the same deal for LT campaigns?

#

Since we're already planning on supporting being able to import other people's maps, it'd just be a matter of those people putting those maps behind like an itch.io paywall.

#

I think in-app purchases are beyond what we wanna do, but we could probably have an in-game curated list of paid/free community content like CompCon does.

little jetty
#

that sounds really cool

#

how will lancer tactics be distributed? just itch.io?

alpine sorrel
#

For the KS version, yeah.

#

A later steam release is likely after all the obligations from the campaign are cleared

little jetty
#

i wonder how steam does paid mods
i know it's been done before

mild jay
#

It doesn’t anymore, really. That feature got pulled after a lot of negative backlash

#

Unless it’s been re-added and news about that is buried under older search results

#

But as far as I can tell that’s still the case

#

Still, I imagine itch being the primary distribution platform (if I’ve understood things correctly) for the base game would make using itch for paid campaign mods easy enough

quiet leaf
#

i think optics would matter for this. If it's "people can sell mods", it's bound to have some negative backlash. however, if "third parties can sell mission packs" or expansions or something along those lines, it might go over better

mild jay
#

I’d have to do more research to fully refresh my memory, but I recall it being more complex than just the principle of paying for mods being objectionable. I vaguely remember complaints about how much of the sale revenue went to Bethesda and steam? So there could be other differences that inherently make this more palatable

quiet leaf
#

for one, distribution of third party content would certainly still need to be made through itch io. steam doens't really stop you from installing external mods, so you can just buy them on itch and manually install on your steam version

alpine sorrel
#

That's a good point... gotta get some sorta "third party DLC" stamp for them.

patent pasture
#

re the DLC - An incredible idea.

#

quick question about how the scripting possibilities for campaigns - does your scripting as it stands allow for pop up images or animations? My circle involves a few comic artists and I dabble so it's something of interest to be able to do

tired aurora
#

something like a visual novel esque segment? That sound pretty fun actually

quiet meteor
#

I love the idea of community made story DLC. I think that idea of having a currated list in the game (with accompanying links) is a good idea, but I would also have a link to an itch.io tag so people can easily find the rest. I do expect you'll get some backlash regardless, but hopefully the fact that you're not Bethesda and that your main market are people that are, as you stated, used to buying story packs leads to it being an overall positive.

alpine sorrel
pastel flax
#

So there is prescident for this?

#

a friend is playing NWN - and they actually do have "Premium" modules, modules that people can sell

#

YMMV if they'll take off

alpine sorrel
#

Oh neat, I'll take a look at how they did it, thanks.

shy spruce
#

kinda wanna see someone use that avenue to make a big mission collection with a purposefully wonkily-drawn mech for the cover (think some of the more awkward 80s battletech and transformers art) and labeled as L-ZONE in throwback to those questionable huge 90s map packs for doom and duke nukem and the like

quiet sparrow
#

Does anyone have the exact dimensions for the campaign challenge coins? I wanna get a bezel or something similar for mine, and I'm not sure about getting those right by hand.

nimble pine
#

Just checked with my calipers, it's got a diameter of ~38.22 mm and a thickness of ~3.35 mm.

#

I wouldn't trust that last decimal place, I had a decent amount of variance in measure depending on where I checked.

dire ivy
quiet sparrow
alpine sorrel
#

However would it be possible for interested parties to submit a DLC for you to test and subsequently release in an official capacity?
Hard to say before we get to that point. I'd prefer to not have us be a bottleneck for people releasing stuff in general, but if we get to the point where someone has made something big, it'd be cool to be able to highlight it.

little jetty
#

I've seen portal 2 mods on steam store, and I doubt they contacted valve for a deal

fathom holly
#

in a similar vein there's Slay the Spire: Downfall, which is a mod that has its own store page.

tough urchin
#

There’s a series of total conversion mods for Elder Scrolls games (Enderal for Skyrim, Nehrim for Oblivion, etc.) that have Steam store versions which give a separate executable to launch. They’re free though (for obvious reasons).

sharp smelt
alpine sorrel
#

Wow a lot of people have paid valve $100 to basically get a VIP workshop page

pastel flax
#

some of those mods are basically new games

#

but i wonder if there's a deal you get for that kind of thing

glad lotus
little jetty
#

it costs $100 to make a steam listing? didn't realize that before 😱

alpine sorrel
#

Better than having to run a greenlight campaign (back in my day...)

alpine sorrel
#

The video for a talk I did on LT's project architecture just went up: https://www.youtube.com/watch?v=T9f5POJywcA

Dive into Godot with the creator of the adapted CRPG "LANCER TACTICS" for structural tips on systems-heavy games!

Recorded live from the Portland Indie Game Squad Talent Talks in March 2024.
View the playlist here:
https://www.youtube.com/playlist?list=PLRf17HFnsZ8cK-3jOqAKXxKfmeiT9mo9Q

For more information about the Portland Indie Game Squad ...

▶ Play video
sand goblet
alpine sorrel
#

Got the alternate actions panel ironed out, complete with WA's shock effect

tepid temple
#

👀 What's this for? Just anything where you go "want to add another effect to the one you just did?"

alpine sorrel
#

Kinda like in BG3 where you have multiple options for an action e.g. upcasting a spell; we don't want to add an icon for each WA option in the main picker, so the engine collects all the possible variations on an action when you start using it and lets you switch to them. To complicate matters, sometimes there's multiple dimensions of how an action can be changed; something like WA on a throwable melee weapon would have to let you independently choose both the attack option and whether you're throwing it or not.

#

here's the flow for it; it was a beast to sort out. When you pick a new action, it essentially has to cancel the in-progress previous version of the action (since we want people to be able to start using the default version without having to make an explicit choice first) and swap in a new modified version of the action (e.g. with knockback) and start running that.

#

whenever I discover a new exciting bramble like this that is required by Lancer's mechanics, this tweet from tom during the kickstarter echoes in my brain

#

but hey I also added in a lil takeoff and landing animation for flight

final onyx
#

Finish lancer tactics, conquer hell, become the devil

tepid cipher
#

lance six billion tactics

little jetty
#

tac 6 billion tics

tepid temple
#

Not to be confused with tic 6 billion tacs 💊

mild jay
#

No one has ever finished a game of that. Takes a long time to get 6 billion in a row

lethal leaf
#

Apparently, they make 55 billion Tic Tacs a year. So it wouldn't take that long.

sharp smelt
#

nah someone'd accidentally nudge one and mess it up

tepid cipher
#

and ra forbid someone add a toe

toxic badge
# alpine sorrel The video for a talk I did on LT's project architecture just went up: https://ww...

Nice Talk 🎉
I have a question about how functionality is being organized in that giant node graph of doom
One of lancer's rules is "weapons aren't allowed to have more than one mod applied to them" and I'm curious about where that logic lives
Is it a question of wandering up the graph to the closest common "ancestor" of the two interacting functional nodes and chucking the logic there?
I.e. is the Kit responsible for ensuring that weapons only ever have one mod?
Are there other situations like that you've run into where quirky interactions between multiple separate nodes in that graph have caused you headaches, or has it been pretty smooth sailing?
Sorry if this is Top Secret or too thorny to explain quickly, no worries if you are too busy, thanks again for linking the recorded talk!

alpine sorrel
#

I was just talking about that, specifically! The way it's currently modeled is that a GearCore (e.g. a weapon) can have a pointer to one other GearCore (i.e. a weapon mod system). I thought I'd be safe having it be a single cxn but now I need to have other things also be able to modify a single weapon (opcal) so I need to modify the doomgraph so there are multiple "mod" cxns. I used to be able to just see if there was a cxn when checking if the mod slot was filled, but now I'll have to step through all the attached modifications to see if any are a true weapon mod.

#

#1079952007915376711 message

#

So I guess the logic for ensuring single weapon mods will mostly be enforced by the character sheet interface more than the engine itself.

mild jay
#

That sounds like if someone made a third party save editor, it could open things up for some fun, funky builds

alpine sorrel
#

there's a good chance that pilot saves will just end up being json so a text editor will do

little jetty
#

any chance the pilot build will be comp con compatible?

mild jay
#

Copy/paste 30 molten wreathes onto a combat drill

alpine sorrel
#

technically possible, not something high on the priority list

#

would have to make some sort of importer to convert between the formats

little jetty
#

that's fair enough, I'm sure somebody would be interested enough to write something that convert formats if you don't do it

mild jay
#

Actually, I realize this isn’t relevant to the vanilla product since in game there won’t be a way to do it, but I’m curious; would the same mod applied multiple times via mucking around with files actually have its effects applied multiple times? Or does some part of how it’s structured stop that

alpine sorrel
#

Not sure since I've not figured out mods yet, but from what I've read files can be overwritten by mods, so I assume for multiple mods the last one loaded would win

mild jay
#

Oh sorry, I meant weapon mods via save tweaking

alpine sorrel
#

Oh 😅 yeah it depends on the mod but I think most of them would apply twice.

alpine sorrel
#

Adding knockback, which means I need to add cone calculations (to choose which angle to knock back), which means I'm adding a half-implemented daisy cutter (soft cover'll come later).

#

algo still needs some wrinkles ironed out

alpine sorrel
#

gotit

sharp smelt
#

cry all you want

#

it won't uncut your dasies

tepid temple
#

Oh that was a quick turnaround

shy spruce
#

bad and naughty pilots get repositioned by the cone of shame

glad lotus
#

Cone 7's, continuing to be ludicrous in the best possible way

alpine sorrel
#

I first entered it as 2d6 cone 5 because that's what seemed reasonable to me and was once again shocked when I doubled checked lol

little jetty
#

3-18 is so much funnier to look at than 3d6

#

you look at it and immediately go "wait there's a chance I might do 3 damage"

alpine sorrel
#

knockback and fall damage!

tired aurora
#

YOU GET TO CHOOSE TO KNOCKBACK DIAGONALLY ?????????????????????????????????????? THAT SO COOOOOOOOOOOOOOOOl

fickle pecan
#

that npc is cool!

mild jay
#

Oh yeah, is that a berserker?

alpine sorrel
#

I keep getting distracted adding little touches; having the unit turn around to face your mouse as you target moves/actions makes it feel a lot more dynamic

tepid temple
#

It did look a lil weird in the previous gif without that

glad lotus
#

Doing amazing work, Olive.

tepid cipher
#

it's come so far in so little time

little jetty
#

power of day job

storm nexus
#

Nelson looks adorably chunky as always

mild jay
#

I really like the sorta shark face the berserker has

alpine sorrel
#

mostly consisting of gifs that I've been posting here over the last month lol

#

I'm surprised every month at the "feels slow" // "look back and a lot happened" contrast

worn tiger
#

update post LETSFUCKINGOOO

love seeing all the progress collected in one thing

boreal dust
#

Great work and thank you again for the updates

tepid temple
#

What’s that last teleportation bugfix?

alpine sorrel
#

It used to be that since teleportation only counts for one step, it would only cost one movement no matter how far you went. This was relevant for the Mourning Cloak's CP; it could teleport several times to go much further than its normal speed budget. Teleportation is now costed by how many tiles away the destination is, OR the height difference between the two spaces, whichever is more.

#

the second bit is so it still costs like 4 movement to teleport 4 spaces up onto a building

#

which seemed right?

#

or like so a fold knife's two spaces can't do that

tepid cipher
#

i assume the updates will not happen to the downloadable version for a while as it's a demo and you're going to putting out a final product

alpine sorrel
#

It's actually on my list to figure out how I'm gonna juggle the itch.io page

tepid temple
#

Ahh, I get it now

alpine sorrel
#

I want to leave the pre-kickstarter demos up, and it'd be nice if they could keep living on that page

#

but also that's where it makes the most sense to put the alpha public demo of this

tepid cipher
#

could leave a link to them or smk? I mean hey, the demos are wonderful, i had a lot of fun with them during a slightly slow lecture

gaunt jungle
#

Put new one there
And a link on the page "Are you looking for the old one? Click here!"

sharp smelt
#

YEAAAAAA

torn kite
#

It's a small thing but I like the little up and down dance the sprite do when selected

#

The importance of a good 'lemme at em' selection movement is nice

alpine sorrel
#

lol just found a bug with knockback, can you see it

deft rapids
vague fractal
#

you've heard of "running up that hill" now get ready for ramming up that hill

sharp smelt
#

zoop

alpine sorrel
#

improbably dense ball of beserker grunts

deft rapids
#

will we be able to deploy an improbably dense ball of ronin in lancer tactics?

alpine sorrel
#

I beleive so

#

the prophecy will be fulfilled

sharp smelt
#

Ka blooey

shy spruce
#

ballin'

deft rapids
little jetty
#

would chomolungma using core power in a cloud of hornets crash the game?
I know lungma isn't in the game but like, if someone were to add it in

little jetty
#

or i guess what I'm really asking is, how long of a chain of actions can be handled in a reasonable way

alpine sorrel
#

I can't think of a theoretical limit. Depends what you mean by reasonable. This sort of stress-testing is what public playtesting will be for 🙂

little jetty
#

hell yeah

tepid temple
#

I was gonna ask if Wrecks are the sole exception to the "Obstructions = 3D" rule, but then realized they're not obstructions, they're actually difficult terrain. I never knew that!

alpine sorrel
#

wait what, I thought they were obstructions as well and was planning on making em 3D

#

The way I'd read this is to have them be both obstructions and difficult terrain

#

...oh, but that's going to be hard for the engine in the case of a wreck being placed on top of another object like Jericho cover. I might have to have the shunt-to-a-nearby-legal-space check cover that.

tepid temple
#

Doublechecking the obstruction rules, it says " Characters are obstructed by any solid objects", and I presume that wrecks aren't that because they're merely difficult terrain instead. The alternative would be... An object with difficult terrain on top of it? Which doesn't seem right

#

I never had to reckon with this my GM played without wreckages

#

At any rate, wouldn't you have needed that check anyways, in case a mech got destroyed on top of a wreck?

trail echo
#

Oh cool so this is the lancer tactics group chat. I played the demo and I thought it was pretty fun

#

Is there a release date for the full game yet?

tepid cipher
#

oooo

alpine sorrel
flint portal
#

Yeah wrecks are odd but they are def meant to be difficult terrain as well

#

Maybe easier to look at them like fucked up water spaces I guess

frigid shale
#

I don’t think anyone would blame you if you tweaked Wrecks to play nice with the game, too

neat wolf
#

im a fan of wrecks for producing the exceptionally fucked phrase of "zone of hard cover" in most rulings of them ive seen

tepid temple
flint portal
#

Wrecks working like this is also an important part (imo) of a lot of npcs

#

Destroying a Goliath means you're making a big patch of difficult terrain

#

Imo it could be worth making it a zone of hard cover you can move through that can also be destroyed maybe?

rain cipher
#

Yeah how am I supposed to gum up the escort path with grunt bodies if they aren't difficult terrain ;D

#

(a thing that happened in my first Wallflower combat that was a cool visual, and mechanical hurdle to figure out)

alpine sorrel
#

A non-obstructing destructible zone of hard cover is actually pretty easy to do in the engine I think... that might lose the "objects that can be pushed and moved around" aspect but seems fine.

rain cipher
#

If I remember right wrecks only provide hard cover for pilots inside once destroyed, so they don't get immediately shot out in the open but are still targetable. For mechs they only provide difficult terrain.

#

So it's only sometimes a non-obstructing zone of destructible hard cover, as well as a non-obstructing destructible area of difficult terrain 😄

#

Completely ignoring the "objects that can be moved around" thing sounds like the way to though, pretty sure everyone forgets about it, myself included. Maybe can make it a target for Ram at a push?

#

(Pun unintentional)

smoky glacier
smoky glacier
#

they just. provide hard cover.

lone cliff
#

Are there any discord only qna rulings

frigid shale
#

Not from what I see in the lancer-faq website

sand goblet
#

worth noting that despite not being obstructions you still can't end your movement within them, as that's a function of being a character or object (for example, a size 1/2 drone doesn't provide obstruction to a size 1 mech but you still can't end your movement on the same space, and the same with allied mechs)

#

which hopefully means you won't need to code a special case for that (except for the pilot of a wrecked mech, and maybe the Atlas if you ever get around to doing that)

alpine sorrel
#

oh that's very interesting as well! .... so RAW it'd be you can't end on the space, they provide hard cover like Jericho does, are difficult terrain to move through, and you can attack/knockback/target them like any other mech/drone/deployable?

I think the engine can handle that all pretty easy; just means I need to toggle these terrain data bools appropriately that are applied to the space the wreck is in.

frigid shale
#

Oh boy it’ll be interesting to see how Size 2+ gets implemented with dealing with “walking over smaller stuff but being forbidden from ending one’s turn there”

#

(Anecdotally it’s a common headache for me without House Rules)

tepid temple
#

I take "Any spaces occupied by wreckage are difficult terrain" as implicitly fulfilling the "[Characters] can’t end a movement in a space that is occupied by another character or object unless specified" clause of obstruction rules, but that's just my reading, what's best probably really is what's easiest to program here

sand goblet
#

unfortunately the lifting and carrying rules are not particularly well defined, so figuring out how a wreck can be moved might require some judgement calls

lethal leaf
#

TSS1 will do it for a size 1 or smaller.

alpine sorrel
#

after a day and a half of work, lancer tactics now has... drumroll please.... remappable controls. captivating, I know.

neat wolf
#

custom keybinds are something you dont realize how much you appreciate until theyre gone

mild jay
#

God I remember spending a good week or two trying to get something like that working in early ue4

alpine sorrel
#

it's a surprising amount of work to get all the piping set up correctly; being able to swap inputs, validating that everything has at least one input, saving both the default and changes from that default (like if a slot ends up empty, I have to store the presence of that blank slot), handling the names and icons for each possible input (there are some very useful godot addons that help with that tho), and correctly animating the results to better see what changed/didn't change.

#

I left gamepad support as a later addition, but had to build the whole system to be forward-compatible with adding new devices like that.

#

I didn't write tests for it but I probably should have 😅

little jetty
#

i hear it's huge for accessibility! Thank you for adding this

tepid cipher
#

a really important thing to add for accessibility!
wonderful work even if it doesnt' seem like muhc

pastel flax
alpine sorrel
#

Yeah but there's a world of difference between "can this game detect inputs from a gamepad" and "can you use the gamepad to play the game"

pastel flax
#

Mm. Silly question

alpine sorrel
#

Not at all! Hard to know the piping from the outside

#

And how much of it is prebuilt or not

lone cliff
#

oh yeah, @alpine sorrel you should check out Reverse Collapse: Codename Bakery if you want to check out a really smooth turn based tactics UI imo

#

genuinely really good and smooth ui in my experience

alpine sorrel
#

i'll take a look!

#

what a name

tepid temple
#

Can you write off game purchases as a business expense?

alpine sorrel
#

yes

tepid temple
#

Haha, that's good

little jetty
#

benefits to being an indie gamedev