This is a system implementing an advanced dialogue system that is capable of complex dialogue flow including choice trees and conditional branching. Speechless was first developed for the "Kandria" (https://kandria.com) game, and has since been separated and made public in the hopes that it may find use elsewhere or inspire other developers to build similar systems.
Speechless is based on the "Markless" (https://shirakumo.github.io/markless) document standard for its syntax and makes use of Markless' ability to be extended to add additional constructs useful for dialogue systems.
Speechless can compile dialogue from its base textual form into an efficient instruction set, which is then executed when the game is run. Execution of the dialogue is completely engine-agnostic, and only requires some simple integration with a client protocol to run.
Thanks to Markless' extensibility, Speechless can also be further extended to include additional syntax and constructs that may be useful for your particular game.
postmodern is a Common Lisp library for interacting with PostgreSQL databases. It provides the following features:
Efficient communication with the database server without need for foreign libraries.
Support for UTF-8 on Unicode-aware Lisp implementations.
A syntax for mixing SQL and Lisp code.
Convenient support for prepared statements and stored procedures.
A metaclass for simple database-access objects.
This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date
SIMPLE-DATE is a very basic implementation of date and time objects, used to support storing and retrieving time-related SQL types. It is not loaded by default and you can use local-time (which has support for timezones) instead.
S-SQL is used to compile s-expressions to strings of SQL code, escaping any Lisp values inside, and doing as much as possible of the work at compile time.
CL-POSTGRES is the low-level library used for interfacing with a PostgreSQL server over a socket.
POSTMODERN itself is a wrapper around these packages and provides higher level functions, a very simple data access object that can be mapped directly to database tables and some convenient utilities. It then tries to put all these things together into a convenient programming interface
.
HTML parser/emitter for CommonDoc.
Modeline support for CPU info.
Modeline support for network connectivity.
Modeline support for memory info.
Electron binding for Common Lisp
Generic documentation builder for Common Lisp projects.
Enables fast and convenient interoperation with foreign objects.
This package provides a SuperCollider client for Common Lisp.
This package provides a CONSPACK implementation for Common Lisp.
This package provides functions for generating lorem ipsum text.
A Stumpwm mode-line module for displaying MPD information.
This package provides a SuperCollider client for Common Lisp.
This is a c2ffi-based wrapper generator for Common Lisp.
A library for encoding text in various web-savvy encodings.
Fully auto-generated Common Lisp bindings to Raylib and Raygui.
This is an implementation of a Markdown parser in Common Lisp.
CL-STRFTIME is a Common Lisp compiler for the strftime “language.”
BOOST-PARSE is a simple token parsing library for Common Lisp.
cl-electron is a binding to Electron for Common Lisp.
This package provides an ANSI CL adaptation of the SBCL mailbox utility.
assoc-utils provides utilities for manipulating association lists in Common Lisp.