The thing I’m currently working on (in TADS3) has a mostly-static “real world” and a procgen-lite “dungeon world”.
One of the game mechanic involves befriending characters in the real world to help you explore the dungeon world. The different characters provide different skills, which in turn provide different approaches to solving problems (both in the real and dungeon worlds). So for example one NPC might be good at sneaking around, and so could help you avoid enemies in the dungeon world. And one of the ideas I’m experimenting with is having an NPC that’s good at just straight up fighting (which would otherwise not be an option).
The way I’ve been approaching the combat aspect is to treat it more or less like a card-based game under the hood. Kinda like Gloomhaven, if you’re familiar with it: each character has a “hand” consisting of cards containing various abilities, and each turn you’re selecting a “card” and using its ability. Instead of “straight” RPG-ish “attack +2” sorts of abilities (which is mostly what Gloomhaven uses), they’re something more like the old Lost Worlds (and Ace of Aces) gamebooks: your abilities are things like “duck”, “overhead smash”, “low swing”, “block”, and so on. “Easy” actions are always available (you can always just try to run away, for example), but “hard” actions can only be used once every couple turns (like a card that gets discarded and isn’t available again until you recover your discards).
As the character accomplishes various things, they can acquire new “cards” to be used later (bonk a couple skeletons on the head and discover you can take off their heads in a single blow if you do it right, boom that’s a new move).
In terms of the player experience, this is mostly just a series of context-specific actions that can only be used by a specific character.
I think the approach I’m leaning toward is just switching the player character to be the combat guy if combat is initiated. I’d previously been working on changes to the parser loop such that in certain circumstances the player would be given a sequence of character-specific prompts for multiple commands which would then be executed simultaneously, like:
ALICE> S
BOB> TAKE ARTIFACT OF UNSPEAKABLE EVIL FROM THE ALTAR
CAROL> PUNCH SKELETON
Where Alice is the most-of-the-time player, Carol is the fighter, and Bob is some other NPC currently with the “main” player (the core idea I’d been working on is that the player is basically the navigator and the NPCs would have all of the useful “adventuring” skills). Under the hood that worked by processing the turn as if the player was just doing whatever the player command was, and each of NPCs would conduct their turn as if the player had given them an BOB, [do something]
command. Which worked, but ended up posing “puzzle containment” problems.
Not sure if anything like this will end up in the final game…I’m certain I don’t want to implement a full-on RPG engine to handle combat, and I’m not sure that a RPG-like thing might feel unsatisfying (like you’re just playing rock-scissors-paper repeatedly or something like that).
But throwing it out there anyway in case it inspires someone else to do something better.