Skip to content
Shi Johnson-Bey edited this page Feb 28, 2024 · 16 revisions

Welcome to the wiki for TDRS

system overview diagram

Note

The content in this wiki applies to TDRS versions 2.0.0 or later.

Table of Contents

Overview

TDRS (Trait-Driven Relationship System) helps users model dynamic social relationships between characters in Unity projects, using various traits to represent personality traits, emotional states, relationship statuses, and faction affiliations. TDRS is ideal for RPGs, dating sims, adventure games, and life simulation games. Users can leverage TDRS as an additional layer for content gating, NPC decision-making AI, and reactive dialogue presentation.

TDRS provides the following abstractions to help developers quickly get started with modeling relationships and social networks in their projects.

  • 🤖 Agents: Can represent single characters, collecting groups of people, items, religions, concepts, or anything that might form social or conceptual relationships with something else.
  • ❤️ Relationships: Social connections between agents. They represent one agent's feelings toward another.
  • 📊 Stats: Numerical values associated with agents and relationships to track personality stats, traditional RPG stats, or relationship affinities (friendship, romance, trust, ...).
  • 🏷️ Traits: Tags of information attached to agents and relationships representing personality traits, statuses, faction affiliations, and emotional states and can apply fitting stat modifiers.
  • 👈🏾 Social Rules: Designer-defined rules that apply additional modifiers to relationships given that provided preconditions are met.
  • 🎊 Social Events: Enables agents to respond to events that happen to other agents, allowing for engaging relationship-driven gameplay scenarios where players must be mindful of the second-order social effects of their interactions with various NPCs.

If TDRS sounds perfect for your project, take a look at the Getting Started Tutorial or the various How to Guides. If you don't find what you're looking for, feel free to create a new GitHub Issue with your question.