Backend
The backend is comprised of the following systems
Knowledge Base - Used for storing, indexing, and retrieving knowledge that NPCs have access to. Knowledge is world-specific; it tracks knowledge of various entities (people, places, things, locations, etc).
Long Term Memory - Used for storing, indexing, and retrieving NPC memories. Long term memories are NPC-specific.
MongoDB - Used for storing a variety of date including: game-state progression information, NPC information, conversational data, mission progression information, etc.
Npc User Interactions - The system by which the player interacts with NPCs.
Mission Outcomes - The system by which the players are given a mission brief, send companion(s) on missions, and then receive a mission debrief.
Before diving into each of these systems separately, it’s important to understand how each of these components interact with each other on a larger level. The knowledge base, long term memory system, and MongoDB are essentially just storing information about the game / game-state. However, NpcUserInteraction and MissionOutcome are the two systems that drive the game and allow for the game state to evolve over time. Both of these systems take knowledge, long term memory, and mongoDB as inputs. However, one key difference between the NpcUserInteraction and MissionOutcomes systems is their outputs. Whereas the mission system updates both long term memory (NPCs remember what they did on the mission) AND the knowledge base (the world is changed by the results of the mission), conversing with an NPC does not generally update the knowledge base except for one corner case (user journal, see below).
Last updated