site banner

Tinker Tuesday for January 21, 2025

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service

3
Jump in the discussion.

No email address required.

Note: Meandering post as much to get my thoughts in order as to share.

Been bopping along on my roguelite (Basically the core idea is Hades gameplay meets Path of Exile/DotA style build diversity. You start with 1 character unlocked and the rest as NPCs and unlock more as you progress). Currently working on getting a dialogue system setup, and deciding how much player choice I want to provide. I'm kinda in an awkward spot because the whole point of a story heavy rogue-lite is that you keep playing the same save. You experience the story over the course of a lot of runs, and playing more runs, rather than starting a new save, is where the replayability value comes from. Which is great, and the original intent, but it does mean that it's very unlikely players will ever see the results of a second dialogue choice.

I'm considering ways to get around this, because I really like the idea of fleshing out character relationships and giving people choices for how to roleplay the characters. But it would mean really altering the design of the game and doing something like giving you a permadeath failure condition, or letting you start the game as multiple characters, instead of making them all unlockable over time on one save. But permadeath defeats the purpose of a progression focused roguelite (You'd lose all those unlocked weapons and trinkets!), and playing clean runs as different characters doesn't actually solve the multiple choice dialogue only getting seen once issue, since I'd get to write a fuck-ton of dialogue from everyone's perspective and you still probably only have 1 save per character.

I'm probably gonna add dialogue choice options for normal conversations anyway, but they'll end up being mostly for flavor and largely useless. Maybe a couple for 'makes unlocking character easier/harder depending on if you read their personality right' or 'choose between rewards/different character's favor'. I need dialogue choice as a concept anyway for hub and spoke style 'ask character about things' interactions, and I'm big on choice and customization in general.

Anyway, after I write the integration for that (Using Inkle's Ink and it's simple unity api. Everything else was too big and writing my own fancy GUI looked unfun, so I'm just gonna build features off Ink tags), I'll be working on simplifying my code for melee attacks. They're a slightly awkward feature because I built them within my framework for 'abilities'. That works well for things like attacks where you charge and hold, and one off attacks, but it's kinda weird for attacks that have mechanics like a 3 hit combo (Because mana cost and cast time is configured at the ability level, but I might want different costs or delays per attack in the combo). Also the way I handle animations currently isn't very flexible, so I need to figure out exactly how I'm handling animators and animation clip swapping between enemies/players.

Anyway, once I get all that done I'll be swapping over to art mode for a bit to flesh out the first biome and it's first miniboss. And add some clothes, so I can take screenshots and not have nude humanoid models everywhere.

If you split multiple characters with shared progression where each character gets their own version of the story you could accomplish this. You'd have a team level and your team could consist of several characters. The team could level up rather than individual characters making switching between them less costly and allowing for gear drops to be shared where most useful, maybe your ranger finds a sword and you decide to play your knight for a few levels. Think Path of Exile SSF mode but with shared character levels. Lot of narrative ways to fit it in, maybe split universes shared souls or something.

This is pretty much how the existing design works. Characters peak in power at different points in the progression, and you'll want to IE play the necromancer and barbarian a lot early to farm the resouces and build the structures the guy with the mech suit needs to really come online. Whereas their pinnacle upgrades require less grinding and more optional boss kills, so mechanaut maxing out without super-boss drop resources makes him great for grinding difficult bosses in early endgame.

It's more specifically the multiple choice dialogue that doesn't fit into it, because I don't see much player desire to actually start a new save. The central run loop being roguelite means people are almost certain to just keep playing the same save unless I provide a NG+ mode with delineated benefits in exhange for the story (And some level of progression, since that's tied to story) getting reset, or really make chosing dialogue options influential by IE locking out a character depending on your choices. And I don't really want to do either of those, so I'm thinking dialogue options will end up limited, and mostly for flavor. IE no real branching story.

If you wanted to you could have multiple timelines that different characters could be involved in but that'd depend a lot on how your story is handling the shared space and if multiverse/time travel can fit into the story well. If they're building persistent structures then yeah, that's kind of iffy. If you really wanted to I think you could find a way to write in multiple concurrent timelines.

There's definitely a way to make it work, but part of actually finishing a game is being ruthlessly realistic about what your scope is. And this one is about combat and progression. I've failed at that enough times before that I'm not gonna fall for it here. The juice just probably isn't worth the squeeze to make it a first class feature. It's a thing I can and probably will do in some conversations, but largely for flavor and without the expectation people will come back around a second time.

Could even have some incentive to go different narrative paths by having group level rewards gated behind certain paths if you wanted although that a pretty big gameplay decision.

Yeah, that's what I'm thinking just doesn't fit within the design and 1 person scope. Hah, thinking about this reminds me of how dedicated you and Nathan were to the idea of making your own game after college.

Yeah, sometimes I still think it'd be fun. I have a couple frameworks installed on the computer but suffer from a lack of motivation. Not super interested in coding after a long day of coding. Moving across the country also doesn't make collaboration easy. I've gotten to the little dudes moving around on a screen stage a few times and just can't sustain interest. Maybe I'll take another swing more aided by LLMs soon.

Yeah, I found that really difficult too back when I was working full time.

Depending on the mechanic of restarts and progression, couldn't you just allow the player to revisit conversation branches or ask follow up questions to hear the conversations they previously missed? I'm thinking of a morrowind-like system of conversation where once an NPC had mentioned something you unlocked it as a dialogue option to ask about later.

If the conversations have more permanent consequences, I wouldn't worry too much about branches being missed or made unreachable. Any kind of progression also has areas of content that you miss out on once you make a permanent choice, and lore/conversations are no different. People who want all the lore will have to replay just like people who want to try out different builds or classes.

I could. Rerunning the direct conversation would feel bad but I could probably do something where I store some conversation outcomes as tags in a dictionary and write further branches in different conversations that check that state. But doing those is lowkey a QA nightmare, since it's a lot of string match checks. I suppose I could write a validator, but even then it'd be real hard to verify that the latter conversation always comes after the former.

Starting to see there are reasons why Hades and it's sequel don't give the player dialogue choices. It's a LOT of state management for a feature that isn't going to be as core to gameplay like it is in say BG3.

Why not integrate some small 7b LLM chatbot to handle all the weird permutations roguedeath introduces? Inject game state and prior conversation outcomes into the context buffer on reload.

Cause it's actually super hard to get consistently good output doing that. I might be able to get good 'Hey, X killed you last run' conversations, but even then, with perhaps the easiest scenario, the LLM would have no hope of providing advice like 'Kite ghouls, they're slow and do high melee dps', because it has no context for what the enemy in question is. And it's even more tricky for anything story relevant, since the LLM would need to know its role, so to speak. Its one of those ideas a lot of game devs have an eye on, but even if you can run a decent local bot on the player's machine its something the game needs to be built around, not just a plug and play solution to having good dialogue.

Frankly, I'd be way more likely to write all the dialogue myself and then use AI as a solution for voice acting, since that would actually be a huge labor saver and not have big game design implications.

In general, if you want AI to write a character's dialogue, you probably need the whole character to be proc gen and inconsequential anyway. Like a Dragon's Dogma pawn, not a shopkeeper or alternate playable character with a fixed personality.