indentlabs / notebook

Notebook.ai is a set of tools for writers, game designers, and roleplayers to create magnificent universes – and everything within them.
http://www.notebook.ai
MIT License
354 stars 72 forks source link

Character location history #120

Open andrewcarreiro opened 7 years ago

andrewcarreiro commented 7 years ago

This could possibly fit in #98, but I wanted to open up the discussion a bit more. I would love to track current locations of player and non-player characters, but there's no link between characters and locations except for birthplace.

Ideally, I think a LocationTime data type would be great. While playing, if the players decide to go to another city, I could quickly pop in and fill out some form that says "MOVE (Character 1, character 2) TO LocationA on WhateverDate.

That being said, it may also require some kind of Time data type (given how fucked up fantasy worlds can be with the different eras and whatnot).

This would also open up the app to showing players' movement over time, and possibly automating certain characters' movement in the future (merchants on shipping routes, wandering bandits, etc)

Thoughts?

drusepth commented 7 years ago

I like this idea, but I'm not sure how to make this work well for everyone quite yet, I think. What if we did something like this with timelines (#29) and scenes (#88)?

I think if you have an ordered timeline of Scenes, each Scene would have a location and a list of characters there. That means you could replay the locations each character was at in order (minus a sense of non-relative date/time -- perhaps we should add that in), and to "move" a group of characters to a new location, you'd just create a new scene at the end of your timeline with those characters and the new location.

Do you think something like that would cover showing characters' movement over time for you? I'd also eventually like to expose an API (#55) that you (or theoretically, some other DM software) could use to create new scenes in a campaign's timeline as characters move around. Not sure if that'd also be helpful.

andrewcarreiro commented 7 years ago

I think Scenes could work at least in a rudimentary sense, but one pitfall is that the Scene would only include the "staged" action at a given location.

For example:

Scene (Staged Action): On October 10th at 742 Evergreen Terrace in Springfield, Homer asked Bart to get him a Beer. Untracked Actions: Marge, Lisa, and Maggie would also be at home at that time, but aren't directly involved in the scene.

You wouldn't want to add Marge, Lisa, and Maggie (or everyone in Springfield) into the scene, but you should be aware that they're currently at home. If that data is tracked in a separate system, then it would open up the possibility of bringing them into their own Scene, or locking characters to only appear in a single Scene at a time.

For my uses, specifically, if my characters are going into a city, I'd want to have a list of characters who are currently or permanently living there.

That being said, this level of detail might complicate things for more casual users.

drusepth commented 7 years ago

That's a good point, and definitely a very interesting idea. I think it'd be awesome to have some way to say "give me all the characters at this location at this time" somehow (and it'd tie directly into some of the in-editor knowledge-while-writing stuff we're planning), but I think we'll have to figure out a way to handle it so it doesn't complicate things for more casual users, as you said.

I'll give it some more thought and see if I can come up with anything, but if you have any ideas on how best to do it, I'd be happy to hear them. The original LocationTimes would potentially work, I'd think, although I think things could get a bit weird fast when you try to assume timelines for universes, considering some might span a day/week/year/century/millennium/etc, not to mention "weird" timelines seen in sci-fi a lot (though maybe the latter needs something specific to them instead of trying to fit here).

drusepth commented 7 years ago

Another thought on Scenes here: if we treat them like some kind of relative timeline (e.g. a scene is now a point in time), perhaps we could add something to Locations that, given a time (as a scene), provides a list of

Perhaps? Would that allow you to grab a list of characters at whatever current location your characters are at? Would love to figure something like this out. :)

andrewcarreiro commented 7 years ago

I think that might be a good middle ground between a data-driven and human-driven approach! (It'll be understandable, but also be extendable in the future)