Encounter Coding

Hey Folks! Still struggling a bit with this encounter system. I'm not a lot further along with it than yesterday, though I've had a bit more time to explore and test ideas.

Ultimately, the problem boils down to me not knowing how to describe how this system should work. It's a really abstract idea that I can see pieces of fairly clearly, but I can't figure out how they come together. And whenever I think I've discovered a concrete rule, it seems like that rule gets broken easily by other needs.

Maybe I just need to enumerate those pieces, and I can reread this Monday with a fresh perspective.

  1. I need a way to locate another person somewhere in the system that fulfills certain criteria.
    1. Some criteria are related to social relations: friend/enemy/family
    2. Some criteria are related to their pspec data: name, career, homeworld, age
    3. Some criteria are related to traits and other game flags: treacherous, faction1
    4. Each of these three types of criteria involves a separate data type.
  2. If I can't find a suitable person above, I need to be able to generate that person.
  3. I need to be able to specify certain criteria in relation to the current encounter's participants. E.g. third party should not be on this station
  4. I need some way to apply one or more conditions to one or more of the third parties found/generated above. E.g. so when I encounter them later, special conversation options are available
  5. I need to be able to assign new relationships to the player and other characters based on interactions.

That last one might be a key point: my interaction system has no relationship info, since that was added to the game later. In addition to the usual tools for adding/removing/transferring items and condition flags, maybe my interactions need to affect social relations. And/or generate new people like life events from chargen? Maybe interactions just need to have room for life event data, and those get executed along with other rewards in the interaction?

Hmm. I'll have to see if this makes sense Monday. Hope everyone has a good weekend!

Tags: Ostranauts


Rovlad's picture

Skip step one, it's absolutely unnecessary. Just generate the quest-related stuff on player acceptance of the said quest. You can also avoid any relationship issues with this approach as well. Or maybe you DO want to generate them so people related to him will get angry at you for setting him up.
You can also flag that stuff as quest-related and persistent so rooted to the spot until the quest is failed or resolved or a time limit runs out.

dcfedor's picture

I think it's doable without step one, but there were a few reasons I thought it'd be worth the trouble.

First, reusing existing NPCs where possible could add depth and history to the world. Instead of spinning-up a fresh, blank bartender every time I needed a quest, imagine if the game chose the same bartender you sold out last time you visited Europa.

E.g. the quest giver says you need to get the whereabouts of his son from "Callum on Europa," but that's the same Callum you ratted-out in your first mission to make a buck.

It also might be weird to make a new bartender each quest when there are a limited number of bars and they all need to be staffed for when the player arrives. I could make a rule that no spin-up quest NPCs can be important people like store vendors or something, but that seems like it'd make things less interesting.

And yeah, like you said, it'd be nice if these NPCs weren't just existing in a vacuum. If they had relationships, and stepping on the wrong foot could get you in hot water indirectly.

Getting into a "tight spot" and trying to get out again is pretty much the spark of every spaceship crew episode :)

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture

Fair enough.

Reminds me of how Bethesda handled randomly generated ("radiant") quests in Skyrim: you could get sent to beat the money out of a random unnamed nobody specifically generated for this purpose, or it could be your favorite trader in town. Except there were no real consequences unless you killed the important person since there was no actual "relationship network" in that game which I'm guessing is going to be quite different in yours. :)

dcfedor's picture

I'm hoping that part will be different! Whether I can pull that off or not is another question :)

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture

Yeah I'm sure it's not going to be as easy as it sounds. But if NEO Scavenger is anything to go by, you'll manage to pull it off.