Skip to content

ShiJbey/Calypso

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Calypso

Static Badge Static Badge Static Badge Static Badge

calypso-screenshot

This project is still under development and is not ready for use.

Calypso is a unity package for creating simulation-driven visual novels. It enhances visual novels' prototypical branching narrative structure by simulating characters' lives outside their conversations with the player and their relationships with other characters. We provide a query language extension for dialog scripting that allows developers to create flexible conversation scripts that adjust to the current cast of characters. This project aims to assist visual novel developers in creating more dynamic and unique stories than can be accomplished solely using conventional branching narrative tools such as Twine.

Simulating the characters' lives and relationships

Calypso wants to help developers create stories that feel alive and dynamic. It supports storytelling with an underlying social simulation that handles non-player characters' (NPCs) schedules and social lives outside their conversations with the player. NPCs can move between locations and interact with other present NPCs. Conversation dialog is affected by the player's actions and background simulation. Also, actions have cascading effects on character relationships. For example, selecting a dialog option that insults a character might make their friends dislike the player.

Dynamic dialog using Ink and RePraxis

Conversation dialog is authored using Ink, a popular interactive fiction writing tool that was used to make games such as 80 Days. It allows writers to create branching and reactive dialogue choices that can easily integrate with and take advantage of C#.

We created a query language extension for the Ink called RePraxis that allows writers to precondition conversations and dynamically cast information from the game. It is inspired by the Praxis logic language used by Versu, a social simulation and interactive fiction engine.

Each character in Calypso is given a collection of conversation scripts, and they choose probabilistically from this collection when interacting with the player. Conversations may have preconditions that affect their availability. For example, they might check for if the friendship score between the player and a character is past a given threshold. Also, preconditions can store variable values in Ink. This feature allows us to dynamically cast characters into conversations, creating more dynamic dialog that adjusts to any configuration of NPCs.

Planned features

  • NPC schedule System
  • Simulation calendar
  • Tick-update system
  • Author new conversation dialogue using Ink
  • Weighted-random conversation selection
  • Precondition query language
  • Location selection menu
  • Relationship system
  • Control the simulation from within conversations