Awesome Caderno Sql
Ein textbasiertes Rollenspiel, das über psql gespielt wird, wobei die Spielregeln als PostgreSQL-Trigger und plpgsql-Funktionen implementiert sind.
Ein Text-RPG für psql, bei dem Spieler mit einem INSERT eine Figur erstellen und ein Trigger die Einleitung erzählt. Die Spielregeln sind in plpgsql geschrieben und das Schema wird mit Flyway-Migrationen versioniert.
Überblick
Das Spiel ist ein PostgreSQL-Schema, das Spieler von psql aus verwenden. Ihre SQL-Anweisungen treiben die Geschichte voran, und die Datenbank antwortet mit Notices.
Voraussetzungen
- Docker
- psql
- make
Schnellstart
make setup # starts Postgres 17 and runs the Flyway migrations
make run # opens psql as the rpg user
Spieler lesen dann die verfügbaren Rassen und Klassen und fügen eine Figur ein.
SELECT * FROM races;
SELECT * FROM classes;
INSERT INTO character_info (name, description, class, race, gender)
VALUES ('Aria', 'Uma maga curiosa', 2, 1, 'feminino');
Spieler, die eine fertige Figur möchten, können eine aus den Vorlagen kopieren. Die Funktion use_template nimmt eine Vorlagen-ID und fügt diese Figur in character_info ein.
SELECT * FROM char_templates;
SELECT use_template(1);
Befehle
- make up startet den Postgres-Container auf dem lokalen Port 5433.
- make migrate wendet ausstehende Migrationen mit Flyway im Debug-Modus an.
- make down entfernt den Container und behält die Daten.
- make wipe entfernt den Container und das Daten-Volume.
Projektstruktur
- migrations enthält das versionierte SQL, und jede Datei enthält die Tabellen, Typen und Funktionen für einen Teil des Spiels. Der Dateiname verrät, um welchen Teil es sich handelt, wie V1__races.sql.
- scripts enthält die Shell-Helfer hinter den make-Zielen.
- flyway.conf enthält die Flyway-Verbindungseinstellungen für die lokale Datenbank.
Zweck
Das Projekt ist eine Möglichkeit, PostgreSQL zu üben. Es verwendet Trigger, Event-Trigger, Rollen und Berechtigungen, Enums, zusammengesetzte Typen und Mengen zurückgebende Funktionen.
Lizenz
Der Code ist unter der Apache License 2.0 lizenziert, und die Datei LICENSE enthält den vollständigen Text. Diese Lizenz gilt für den Code und nichts anderes.
Die Geschichte ist ein separates Werk. Das bedeutet die Welt von Nexus, ihre Nationen, Charaktere, Geschichte und Lore sowie alle narrativen Texte im Spiel wie die ausgegebenen Nachrichten und Fraktionsbeschreibungen. Die Geschichte ist Copyright (c) 2014-2026 lyszt, alle Rechte vorbehalten. Du kannst sie lesen und das Spiel spielen, aber du darfst die Geschichte nicht ohne schriftliche Genehmigung kopieren, bearbeiten oder veröffentlichen. Die Datei NOTICE wiederholt diese Regel für alle, die den Code weiterverbreiten.
