All Posts

  • Simulation of History and Recursive Narrative Scaffolding (2/11/2018) Posted in: Blog, Dev Update - I wanted to write a blog post about some of the thoughts I've been having about character backstory / history generation techniques. I don't claim they're original, but I think they're pretty powerful! There's a great quote from the makers of Caves of Qud on their history generation approach that gives a really good organizational framework for this post, so I'm gonna start with it: "There’s a distinction to be made between history as a process and history as an artifact. The former can be conceptualized as the playing out of rules and relationships that continually produce the present. To simulate this process, we might seek to reproduce its logic. On the other hand, the latter is a constituent of the present, something we engage with through a contemporary lens and whose complexities may be obscured by that flattening of perspective." (Subverting historical cause & effect: generation of mythic biographies in Caves of Qud) I'm going to take these two approaches, apply it to a technique I call "recursive narrative scaffolding", and talk about each approach's advantages and disadvantages. The Technique: Recursive Narrative Scaffolding The general approach isn't one I'm claiming is unique, and it may go by other names elsewhere, but the name I … Continue reading Simulation of History and Recursive Narrative Scaffolding
  • Event Systems and Ontological Skill Trees (7/23/2017) Posted in: Blog, Dev Update - Disclaimer: I Have No Idea This is a somewhat rambly post where I'm trying out some ideas that I'm currently halfway through implementing... Making Memories Before the player can mess with character memories, they need...well...memories. This is done currently by starting off with some number of characters, and letting them each randomly choose an event to add to their timeline, whose pre-conditions they satisfy. (It might be confusing right now that I call them events instead of actions, but hang with me.) Here's an event: Not so bad, right? Here are the fields: id: unique ID timeSteps: how long this event takes surfaceText: the Expressionist grammar to generate surface text for this event, depending on who's asking. preconditions: simple blackboard-style state variables that must be valid effects: changes applied to every character in cast after event runs What About Cast? Ok this is the complicated bit. Cast can be any number of characters. Each character has their own "characterArgs" (preconditions for filling the role) and a memoryGrammarBank. So...Events are tree structures. For each character in cast, for the number of timesteps, it iterates over their memoryGrammarBanks and chooses one to process. What are those things in memoryGrammarBanks? They're other events. When trying to pick … Continue reading Event Systems and Ontological Skill Trees
  • Dev Update- April 2017 (4/5/2017) Posted in: Blog, Dev Update - Rough Stuff & Research The first three months of the year threw me for a bit of a doozy. I was able to secure a contract gig for the summer (yay) involving some work in Unity (oh.) so I decided to upend the dev priorities to facilitate brushing off my C# / Unity skills. I made a sample room using assets from the Victorian Interiors and Sally's Country Home asset packs (just to get my feet under me for working in 3D) and a simple room generator (though no decoration). The room generator is embarrassingly buggy so I won't link it, but if you want to see the first 3D thing I've ever made in Unity and have a Mac, knock yourself out. Most of the rest of the work was getting up to speed on pipelines for photogrammetry, 3D stuff in general, and figuring out the development plan for the following quarter. Collaboration I have reinforcements for spring quarter! Three people working with me to make room generators, and two working on photogrammetry. We'll see what we get done, but the rough plan is to have working room generators with room decoration for two asset packs (Victorian Interiors and Village Interiors), and interstitial … Continue reading Dev Update- April 2017
  • Dev Update- January 2017 (4/4/2017) Posted in: Blog, Dev Update - Beachhead Play This is the first interactive prototype, so it's more of an interface to explore how the systems behave than anything remotely resembling a game. This evolving JS prototype will eventually be used to get player feedback on some of the underlying assumptions, while I (and possibly others) toil at the 3D realization angle in Unity this year. The biggest goal of this first prototype was to get a large chunk of the generative systems working in concert. Features Knowledgebase / ontology (I call it the Substrate)-driven generation of: palace façades (text description) palace layout (text description) room decoration (text description) memory objects (text description) Semantic tag-driven object affordances: breaking and burning objects Attribute grammar-driven memory generation (courtesy of James Ryan's Expressionist) A force-directed graph of the Substrate nice to look at, but not terribly useful. I'll probably be switching to a different visualization approach, as much as it breaks my heart. Didn't Get To... user-editable NPC qualities user-editable sub-system qualities (not sure what this even means anymore, to be honest) user selects memories for their palace, suggests realization possibilities diagnostic output number of possible combinations w/ same current parameters diagnostic: "uniqueness" of possible builds Pre-mortem (written Jul 2016) The first demo will be a toy example, where I'll … Continue reading Dev Update- January 2017