Playprint Docs
Dashboard Home

Core Concepts

This page explains the foundational ideas behind Playprint. Understanding these concepts will help you design better integrations and get more value from the SDK.

Legends — Playstyle Avatars

A Legend is a behavioural fingerprint of how someone plays. It captures patterns in gameplay decisions — strategies, boldness, timing, aggression, deception — and distils them into a persistent profile.

Legends are not:

  • Chatbots or conversational AI
  • Visual avatars or character skins
  • Simple difficulty settings
  • Replays or recordings

Legends are:

  • Playable AI opponents that behave like the real person
  • Built entirely from gameplay decisions (no PII)
  • Persistent across sessions and — optionally — across games
  • Available 24/7 for async play, even when the real player is offline

Behavioural Fingerprinting

Playprint builds profiles using exponential moving average (EMA) aggregation over gameplay decisions. This means:

  • Recent matches are weighted more heavily than older ones
  • Profiles adapt naturally as a player's style evolves over time
  • No single match can dramatically swing a mature profile

Games record decisions using a 3-tier input system. At its simplest, you just provide a label and the SDK infers risk automatically:

// Tier 1: just a label — risk inferred automatically
tracker.decision({ label: 'attack' });    // risk: 0.7

// Tier 2: you provide risk and information values
tracker.decision({ label: 'bluff', risk: 0.9, information: 0.3 });

// Tier 3: full control over all fields
tracker.decision({ decision_type: 'attack', risk: 0.8, information: 0.6, tempo: 'mid', intent_tags: ['aggressive'] });

Six Trait Dimensions

Every Legend has six trait scores, each normalised to 0-1. See the Traits page for detailed descriptions and examples.

Trait Measures
AggressiveHow aggressively the player plays (Defensive ↔ Presses conflict)
BoldWillingness to take high-risk actions (Cautious ↔ Risk tolerant)
DeceptiveUse of bluffs and misdirection (Direct ↔ Bluffing / Misdirection)
ChaoticConsistency vs. unpredictability of decisions (Controlled ↔ Unpredictable)
UrgentTendency toward fast or slow play (Patient ↔ Fast-paced)
ExpansiveHow broadly the player exerts influence (Focused ↔ Broad influence)

Archetypes

The SDK offers two archetype systems:

Simple Archetypes (getArchetype)

Four basic types based on aggression and deception thresholds:

  • Reckless — Aggression ≥ 0.65
  • Calculated — Aggression ≥ 0.45
  • Patient — Aggression ≥ 0.30
  • Cautious — Aggression < 0.30

Each can have a Deceiver modifier when bluffRate + patternBreakRate ≥ 0.20.

Generative Archetypes (generateArchetype)

Rich 5-layer personality descriptions with 12 core archetype types (one polar pair per trait):

  • Berserker/Ghost (aggressive), Daredevil/Sentinel (bold), Phantom/Purist (deceptive)
  • Wildcard/Metronome (chaotic), Blitz/Glacier (urgent), Cartographer/Specialist (expansive)

Each generative archetype includes a core type, style modifier, tempo tag, 0–3 behaviour phrases, and a tagline. Flat profiles produce "Enigma". Archetypes update as profiles evolve.

Async Play

The core value proposition of Playprint: players can compete against friends, family, and rivals without anyone needing to be online at the same time.

How it works:

  1. Player A plays your game normally. Playprint captures their decisions and builds a Legend.
  2. Player B launches your game later (hours, days, whenever). They choose to play against Player A's Legend.
  3. The Legend AI behaves like Player A — same strategies, same risk tolerance, same patterns.
  4. Player B gets a meaningful social experience without real-time matchmaking or server infrastructure.

Cross-Game Identity

Cross-game identity lets a player's Legend travel across games in the Playprint ecosystem. A player who's aggressive in a strategy game and cautious in a card game builds a richer, more nuanced profile.

The infrastructure is in place: per-game trait breakdowns, game-link records, and cross-platform profile shapes are all implemented. What's coming next is the player-facing opt-in flow — the UI that lets players choose which games to link.

Cross-game identity is:

  • Opt-in only — players choose to link their Legends across games
  • Privacy-preserving — only trait scores travel, never raw gameplay data
  • Per-game breakdowns available now — every Legend already stores trait scores per game via perGameTraits

Ghost AI

Ghost AI is the engine that converts a Legend profile into playable behaviour. It produces eight normalised bias weights — five from core traits and three from communication data:

Core Biases (from traits)

  • Aggression — attack vs. defend preference
  • Patience — willingness to wait for opportunities
  • Risk Tolerance — probability of high-risk actions
  • Consistency — how predictable the ghost's decisions are
  • Deception — tendency to feint or bluff
  • Reach — how broadly the ghost targets and exerts influence

Communication Biases (from CommsProfile)

  • Expressiveness — how chatty the ghost is (0 = silent, 1 = very vocal)
  • Provocation — tendency toward trash talk vs. sportsmanship

Studios apply the core biases to their game's AI decision tree and the communication biases to in-game messaging, emotes, and chat behaviour — producing opponents that feel distinctly human in both how they play and how they talk.

Next Steps