Awesome Caderno Sql
Un juego de rol de texto que se juega desde psql, con las reglas del juego implementadas como disparadores de PostgreSQL y funciones de plpgsql.
Un RPG de texto para psql donde los jugadores crean un personaje con un INSERT y un trigger narra la introducción. Las reglas del juego están escritas en plpgsql y el esquema está versionado con migraciones de Flyway.
Descripción general
El juego es un esquema de PostgreSQL que los jugadores usan desde psql. Sus sentencias SQL avanzan la historia, y la base de datos responde con avisos.
Requisitos
- Docker
- psql
- make
Inicio rápido
make setup # starts Postgres 17 and runs the Flyway migrations
make run # opens psql as the rpg user
Luego los jugadores leen las razas y clases disponibles e insertan un personaje.
SELECT * FROM races;
SELECT * FROM classes;
INSERT INTO character_info (name, description, class, race, gender)
VALUES ('Aria', 'Uma maga curiosa', 2, 1, 'feminino');
Los jugadores que quieran un personaje listo pueden copiar uno de las plantillas. La función use_template toma un id de plantilla e inserta ese personaje en character_info.
SELECT * FROM char_templates;
SELECT use_template(1);
Comandos
- make up inicia el contenedor de Postgres en el puerto 5433 de localhost.
- make migrate aplica las migraciones pendientes con Flyway en modo debug.
- make down elimina el contenedor y conserva los datos.
- make wipe elimina el contenedor y el volumen de datos.
Estructura del proyecto
- migrations contiene el SQL versionado, y cada archivo contiene las tablas, tipos y funciones de una parte del juego. El nombre del archivo indica qué parte, como V1__races.sql.
- scripts contiene los ayudantes de shell detrás de los objetivos de make.
- flyway.conf contiene la configuración de conexión de Flyway para la base de datos local.
Propósito
El proyecto es una forma de practicar PostgreSQL. Usa triggers, event triggers, roles y permisos, enums, tipos compuestos y funciones que devuelven conjuntos.
Licencia
El código está licenciado bajo la Apache License 2.0, y el archivo LICENSE contiene el texto completo. Esa licencia cubre el código y nada más.
La historia es una obra separada. Esto significa el mundo de Nexus, sus naciones, personajes, historia y lore, y todo el texto narrativo del juego, como los mensajes impresos y las descripciones de facciones. La historia es Copyright (c) 2014-2026 lyszt, todos los derechos reservados. Puedes leerla y jugar el juego, pero no puedes copiar, adaptar ni publicar la historia sin permiso por escrito. El archivo NOTICE repite esta regla para cualquiera que redistribuya el código.
