jeremyshannon / Exile

This repo is parked, moved to codeberg.org
https://codeberg.org/Mantar/Exile
GNU General Public License v3.0
16 stars 12 forks source link

Storyteller/Events #25

Open DokimiCU opened 3 years ago

DokimiCU commented 3 years ago

This is another major area of game play that needs adding.

Currently game play turns back into regular build and mine Minetest game once you've solved the basic survival challenges. That's not great.

My inspiration here is Rimworld - something that will throw various challenges at you, and give a sense of narrative. Unfortunately Rimworld (2d limited world) and Exile (3d open world) are so different I could never figure how to do this (plus the coding was beyond me).

So... ideas on what this would look like, how to do it? (this is by far the biggest feature I'd like to see)

wizardofgcc commented 3 years ago

I don't really understand how this could fit into Exile. Rimworld is a more society-oriented game, with many people and groups. Exile is oriented around you being mostly alone, in a deserted world, with no one to help. A system with things like natural disasters (though I don't have a precise idea, this was suggested on the forums) or predator attacks, but I don't see how this could form into a coherent storyline. Maybe also something about the deep city, but without some heavy procedural generation I feel like it would just be the same in every world and boring.

jeremyshannon commented 3 years ago

My thought for giving the players people to interact with was to add ghosts to the underworld. Mostly non-hostile, these would (spoilery) be remnants of people who tried to upload themselves into a virtual state, and now what's left of them still carries on. They could stand around shops or homes, some of them trying to talk to the player. The dangerous ones might be trying to carry out their duty to guard something, or there may be some who are just mad from the failed transfer of their mind.

DokimiCU commented 3 years ago

Yeah, what I mean is some system that handles events e.g. natural disasters, spawning predators, your long lost pet dog turning up having followed you there...

The basic issue is that once you have built everything the game is over. Nothing much happens. It's just regular Minetest again (with added hassles of exhaustion)

Rimworld handles this sort of thing in a way that is quasi-story like. It monitors the player's current status, time since the last event, and then chooses a new event that is appropriate for the current moment. e.g. when all your Pawns are dying, sometimes a "Man in Black" will turn up to save them.

Maybe Rimworld's approach wont work here. But I feel Exile has a huge gap in this area.

jeremyshannon commented 3 years ago

Oh yes, there's a definite lack of "endgame content." Some sort of events or something is needed.

epCode commented 3 years ago

What about the ability to find the village you were banished from?

all the villagers would be very hostile or frightened depending on their status (very hard to get through into the village). and the houses semi-pillageable.

Just an idea.

MisterE123 commented 3 years ago

I noticed that Exile has some Scifi elements (hoverboat, dystopian governments that banish you for crimes that a free world would not consider crime, and a barren earth)

What if you were banished from an orbital satellite city?

What if, it eventually is possible to travel back to that city by building a rocket?

Then you must dock to the city's airlocks (you cant mine, and anyways going outside your ship would kill you instantly) At that point, im not sure what you would do. The city would have to have ventilation ducts to hide in, and would have guards and citizens who would call guards... but im not sure what you would do there.... maybe you could get tech that could terraform the surface?

Food for thought

more ideas on this theme... you could have guard ships that protect the city from unauthorized vehicles

wizardofgcc commented 3 years ago

What if, it eventually is possible to travel back to that city by building a rocket?

I don't think that would really be a good idea. Exile isn't really about returning from your exile, its more about enduring it. I think that any further advanced technology would be better to just be in the underground city. Plus, switching from the regular hard-survival and building gameplay of Exile to stealth and rocket control would be too much of a gameplay shift.

DokimiCU commented 2 years ago

The closest I ever got to orbital space stations was the idea of having a space elevator. A giant tower in the middle of the map. No idea what the point of it would be though. But now we are starting to get off topic (the game is sci-fi tho, so totally go there with those ideas!).

An event idea: I was impressed by Draconis. I had the idea of having a breeding season for dragons. They all turn up, lay their eggs, eat a few unfortunate bipeds, then fly away. The eggs hatch one season latter. Eat a few unfortunate bipeds, fly away.

MisterE123 commented 2 years ago

I would not want to use the same draconis model though. it would be better imo to have a bulbous dragon with short stubby feet and tail and very little neck, but a large mouth with many teeth

On Mon, Nov 29, 2021, 2:51 AM DokimiCU @.***> wrote:

The closest I ever got to orbital space stations was the idea of having a space elevator. A giant tower in the middle of the map. No idea what the point of it would be though. But now we are starting to get off topic (the game is sci-fi tho, so totally go there with those ideas!).

An event idea: I was impressed by Draconis. I had the idea of having a breeding season for dragons. They all turn up, lay their eggs, eat a few unfortunate bipeds, then fly away. The eggs hatch one season latter. Eat a few unfortunate bipeds, fly away.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jeremyshannon/Exile/issues/25#issuecomment-981370959, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOSK5KCWE2C6YAFNX7X2ZZ3UOMWJJANCNFSM5EKAUBBQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

epCode commented 2 years ago

I have a bit of experience with model making and all the steps to make a model for Minetest. If you need help with that I might.

DokimiCU commented 2 years ago

In the interests of keeping this thread on topic, perhaps figure this issue out in the following order:

  1. Let's list ideas for Events we'd like.
  2. Then we figure out what system would be able to implement those
  3. Then we can figure out specifics for each event e.g. models.
DokimiCU commented 2 years ago

Okay, I was going to try making a prototype for a story system, just see if the idea even works.

I don't think I'll have time though (I got through about 10 lines of code!). If I do anything on Exile it'll probably on this, but again might not ever happen. Here's my notes, so at least people can see what I was thinking.

This is very ambitious. I don't know if it'll work. Maybe someone can figure out a way to pull this off (or something like it).

STORY TELLER

Procedural story telling system.

This system exists to arrange quests and events into a coherent narrative for each character. Each narrative is procedurally generated so that each character is unique. This system provides end goals for the character giving purpose and meaning to actions beyond simply surviving. It also allows for escalating levels of challenge to counter balance the tendency for the game to get easier as the player advances.

Genre elements

Each character story is shaped by a randomly generated combination of these narrative elements:

Scaled from 1 to 10, 10 being max.

Examples e.g. Don Quixote might be Medium threat + High comedy + High romance + Medium adventure + low uncanny + low mystery e.g. James Bond might be High threat + Low comedy + High romance + High adventure + low uncanny + High mystery e.g. Hannibal Lecter might be High threat + Low comedy + Low romance + Low adventure + High uncanny + High Mystery

Player choices will later change this over time. e.g. if they choose romance options the story becomes more romantic. Therefore depending on the how the character starts, and the choices made the type of story will be different each time.

Chapters

A chapter is a series of quests and events shaped around a single goal. The chapter starts by the player choosing a goal. Three Possible goals are presented based on the top three genre elements for the character, in combination with the character backstory (and any other necessary information). The rest of the chapter is shaped around meeting this goal.

e.g. for James Bond. Backstory:

Chapter One: Choose your goal... option 1: ???? (Adventure) option 2: ???? (Threat) option 3: ???? (Romance)

Player selects an option. This becomes their goal for the chapter. The genre element selected gets boosted plus 2. The others get subtracted minus 1. This will reorder what is top three next time, and for any quests or events that follow.

Beats

Each chapter will have a randomly chosen number of "beats", that is quests or events which must take place before it ends.

Quests: Active. The player drives what happens. Events: Reactive. The world drives what happens.

These alternate semi randomly (just enough so it's not predictable). e.g. A chapter might have 6 beats, like QQEQEE, or EQQQEE

They are drawn based on the goal + the character's main genre elements. Modifications might be added based on character backstory (and any other necessary information).

A markov chain links different possible events and quests into a plausible flow. e.g. Q: Go underground -> Q: Go deeper underground -> E: Ancient cryostasis people wake up around you NOT Q: Go underground -> Q: Go to top of volcano -> E: Ancient cryostasis people wake up underground somewhere

Intensity:

Quests will be modified for how difficult or extreme they are. Intenisty rises with each beat. Then again with each chapter. e.g. go to XYZ in chapter 1 is a 200m journey. In chapter 10 it's a 2000m journey.

Quests

A set of conditions the player is able to fulfill. e.g. Go to location XYZ. e.g. Build a signal fire at location XYZ e.g. aquire transport pad/airboat/ etc

Has a fail state. e.g. a timer

The main "reward" is to progress the story. Even failing progresses the story. The player might also be given tangible things e.g. items or information. However the point is on progressing the story, not grinding for rewards.

The markov chain will lead to different following events/quests depending on if the quest was a Win or Fail.

Chapter/Quest Initiators

Chapters, and each quest has to be started somehow. Could just have a text thing e.g. "I've been thinking about what to do..." Then gives three options for different quests.

Events

Similar to quests. This time the event just happens. e.g. spawn predators. e.g. space junk crashes e.g. space super weapon targets them. Zap!

The player must respond. Its more of a wildcard, thrown at the player, so the world is not decided entirely by their actions. Independant of genre and intensity rating (e.g. so your advanced love of comedy doesn't control the weather). But still uses markov linking so it makes logical sense.

Also has a Win or Fail state. The win might simply be surviving, or it could be taking advantage of the event somehow. The fail might be the opposite e.g. space junk crashes, but you never go look. Events might need multiple possible win-fails so it's not predictable. e.g. go look at space junk might be "Find new tech" or "survive hazardous gunk you shouldn't have looked at."

The markov chain will lead to different following events/quests depending on if the quest was a Win or Fail.

Chapter End beat

The last beat brings the chapter to an end. Starts a new chapter. Begins loop again at a higher intesity.

Progress Points and Escape Quests

Escape Quests allow your character to escape exile. Their story ends.

The probability of accessing an Escape Quest is managed by Progress Points. e.g 100 points = 100% probability of allowing Escape Quests.

Win-Fails in quests and events each add or remove a certain number of points. e.g. collect parts for giant ancient teleport machine. Win = 20 points e.g. get to location before traders leave. Fail = -20 points

This system helps manage when the character story ends. Progress is controlled by player actions. This perhaps best as a hidden layer. A kind of accounting. Not a reward system.

The character CANNOT return home. To do so would mean death. They are an exile for a reason. Coming to terms with this loss is simply another part of the tragedy.

The character also CANNOT remain in exile permanently. To do so is death sentence. If the player repeatedly fails or avoids escape quests the quest/event system should throw something so horrific at them that death is certain (although this might, take place after many years - a successful exile might endure patiently for years and years until the time to escape is right).

Making it out of exile alive should be extremely hard. Most people don't make it. Only the most determined will do so. Those willing to do anything to survive, anything to make it back to a life worth living. The question is simple: will you do whatever it takes to get out of here alive, or will you die? No third option exists.

Memory

The entire character story needs to be pulled together into a coherent whole, not just a series of random quests. This requires holding things in memory.

Callbacks. Some quests and events will need to be altered based on what previously happened. e.g. escape by walking to western map edge was failed. But now the player is halfway there. We don't want to give them a quest that then says, "Um actually, now you need to walk to the eastern edge..." e.g. if an option says "I have a mission" we need to remember that they are on a mission. Otherwise their story becomes incoherent. "I was on a mission... but now I'm in love... and now... what am I doing?"

Foreshadowing. Some early moments will need to lead to later moments definetly happening. This goes beyond simply linking things via the chain. e.g. Chekov's gun is introduced in Act 1, put many things happen before it goes off in Act 3. Narrative demands that the gun does go off.

Example Log

A Character story log could be stored somewhere.

James Bond Chapter 1. Goal: ???. Genre: Adventure Quest: go to abandoned hut. Win. Event: caught nano-virus plague. Event: mutant insect infestation. Quest: search for buried treasure. Fail. Quest: Tame a pack animal. Win. Progress Points = 2

Chapter 2. Goal: ???. Genre: Romance Quest: build radio. Win. Quest: send radio signal to lover. Win. Event: lightning strike. Quest: find artifact to heal your lover's fatal illness. Fail. Progress Points = 10 ... ... Chapter 10. Goal: ???. Genre: Threat Event: predator attack. Quest: reconstruct ancient superweapon. Win. Event: explosion. Quest: reconfigure superweapon for teleportation. Win. Progress Points = 120

James Bond escapes...

Ending Stories

Either the player dies, or they make it out of exile to some new home elsewhere. In both cases some time should be spent dwelling on it. Save a record of the story - keep it stored somewhere, accessible in game.

"Big Wow!" Moment of victory or defeat. Many games would do this with a cut scene.

Off-screen story end. By the end the player will have changed the genre elements based on their choices. e.g. James Bond might have become a happy rom-com story. This can be used to say what happened to him after he escaped. e.g. he lived happily ever after (high comedy + high romance), and murdered his enemies (he still had medium threat, he was James Bond after all)

DokimiCU commented 2 years ago

The coding for the above idea looks like it will be well beyond my abilities. I think I'll leave that one alone. We might be able to get aspects of this in somehow, in simpler ways.