Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entry: Gamebook of Starship Tropes #25

Open
maetl opened this issue Oct 27, 2016 · 5 comments
Open

Entry: Gamebook of Starship Tropes #25

maetl opened this issue Oct 27, 2016 · 5 comments

Comments

@maetl
Copy link

maetl commented Oct 27, 2016

I don’t have as much time as I’d hoped this year, so instead of attempting something ambitious and algorithmic (really excited to see what others come up with here), I want to do something more mechanical, particularly as I have put a lot of time into crafting a really useful API/library for template grammars over the past few months. This approach will be the fastest and most intuitive way for me to actually finish something.

My current plan is to make a sequel to my 2015 entry using stock scifi and spaceship tropes with more sophisticated world gen than last time (maybe with the capability to visit different planets, star systems, etc).

Also hoping to make more extensive notes and document as I go, this time around.

@vovanz
Copy link

vovanz commented Oct 29, 2016

Link to Gamebook of Dungeon Tropes is dead :(
https://github.com/dariuskazemi/nanogenmo-2015/issues/189

The correct link is: dariusk/NaNoGenMo-2015#189
(in case someone is interested too)

@maetl
Copy link
Author

maetl commented Oct 30, 2016

Fixed the links now. Thanks @vovanz.

@maetl
Copy link
Author

maetl commented Nov 1, 2016

Spatial and narrative continuity

The way I conceive of this series is a set of grammars nested inside grammars that compose the different layers of a narrative structure. The story generator starts with a random seed and a top-level root symbol, and expands a broad outline of the story and the world state from various small grammars, randomly selecting themes, tropes, settings, aesthetic flavours and antagonists/goals which can then be shared across all the other generators.

With these global elements selected, the next step is to generate the main structure of the story. The Dungeon gamebook did this in a very rudimentary way by laying out each passage of the story on a 2D grid of cells with each cell representing a room or chamber—a 1:1 mapping between spatial units and story units. This worked fine for establishing basic connections between passages but severely restricted the potential for continuity across many scenes.

One of the opportunities afforded by working on a sequel is to be able to improve on things that were less than ideal last time around, and this issue with spatial and narrative continuity is probably the main thing I’m looking to focus on this year.

Continuity can potentially be improved by swapping the explicit spatial data structures for a lookup API or world generator with potential solar systems with associations to other solar systems. Part of what the story has to communicate is the vast distances between planets and stars—so the idea of having a fixed end to the journey on a map is probably not necessary anymore. I already have some recent material I can draw on here as part of a star system generator I worked on for #fermijam.

If planets (or regions of a planet) become the primary unit of scene setting structure for the story, another significant change is that I’ll have to move away from a 1:1 mapping of spatial units to passages in the story. This will involve introducing a new layer of narrative data structures—probably some sort of directed graph or just another grammar—which can be used to map out encounters, actions, activities and story events that take place in one setting and yet need to play out across a series of individual passages.

An example encounter might look like:

CONFRONTATION -> FIGHT | SURRENDER
FIGHT -> SURVIVE | DIE
SURRENDER -> CONTINUE

An example narrative activity might look like:

SPY_ON_ALIENS -> SUCCEED | FAIL
SUCCEED -> GAIN_INTELLIGENCE
FAIL -> CONFRONTATION | PLEAD_IGNORANCE
PLEAD_IGNORANCE -> WIN_THEIR_TRUST | GET_IGNORED
WIN_THEIR_TRUST -> GAIN_INTELLIGENCE | GAIN_RESOURCES

This is just a basic sketch of what’s in my head. What’s missing above is any sense of specificity/generality. The level of abstraction here is still very handwavy and it might not make sense until I try out a few different things.

@maetl maetl changed the title Entry: Gamebook of SciFi Tropes Entry: Gamebook of Starship Tropes Nov 13, 2016
@maetl
Copy link
Author

maetl commented Nov 13, 2016

My first though was to focus on generating an oversimplified world model of stars and planets, then charting a path through it to build the narrative.

An alternative approach is to start with the abstract narrative structure itself, and build on it by attaching context, story events and settings. This is obviously strongly influenced by my previous work on narrative graph models which references standard patterns in choice-based games.

So now, I’m looking at a generator which builds chunks of the world model as directed graphs with branching pathways, representing the choices of whether to travel to one particular star or another and explore.

@maetl
Copy link
Author

maetl commented Nov 13, 2016

Branch & Bottleneck

branch and bottleneck

Time Cave

time cave

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants