Awesome Caderno Sql
Tekstowa gra RPG uruchamiana z poziomu psql, w której zasady gry są zaimplementowane jako wyzwalacze PostgreSQL i funkcje plpgsql.
Tekstowa gra RPG dla psql, w której gracze tworzą postać za pomocą INSERT, a trigger opowiada wstęp. Zasady gry są napisane w plpgsql, a schemat jest wersjonowany za pomocą migracji Flyway.
Przegląd
Gra to schemat PostgreSQL, z którego gracze korzystają w psql. Ich instrukcje SQL rozwijają historię, a baza danych odpowiada komunikatami.
Wymagania
- Docker
- psql
- make
Szybki start
make setup # starts Postgres 17 and runs the Flyway migrations
make run # opens psql as the rpg user
Gracze następnie czytają dostępne rasy i klasy oraz wstawiają postać.
SELECT * FROM races;
SELECT * FROM classes;
INSERT INTO character_info (name, description, class, race, gender)
VALUES ('Aria', 'Uma maga curiosa', 2, 1, 'feminino');
Gracze, którzy chcą gotową postać, mogą skopiować jedną z szablonów. Funkcja use_template przyjmuje identyfikator szablonu i wstawia tę postać do character_info.
SELECT * FROM char_templates;
SELECT use_template(1);
Polecenia
- make up uruchamia kontener Postgres na lokalnym porcie 5433.
- make migrate stosuje oczekujące migracje za pomocą Flyway w trybie debugowania.
- make down usuwa kontener i zachowuje dane.
- make wipe usuwa kontener i wolumen danych.
Struktura projektu
- migrations zawiera wersjonowany SQL, a każdy plik zawiera tabele, typy i funkcje dla jednej części gry. Nazwa pliku wskazuje, której części dotyczy, np. V1__races.sql.
- scripts zawiera skrypty powłoki stojące za celami make.
- flyway.conf zawiera ustawienia połączenia Flyway dla lokalnej bazy danych.
Cel
Projekt jest sposobem na ćwiczenie PostgreSQL. Wykorzystuje triggery, event triggery, role i uprawnienia, enumy, typy złożone oraz funkcje zwracające zbiory.
Licencja
Kod jest objęty licencją Apache License 2.0, a plik LICENSE zawiera pełny tekst. Licencja obejmuje kod i nic więcej.
Historia jest osobnym utworem. Oznacza to świat Nexus, jego narody, postacie, historię i lore oraz cały tekst narracyjny w grze, taki jak drukowane komunikaty i opisy frakcji. Historia jest Copyright (c) 2014-2026 lyszt, wszelkie prawa zastrzeżone. Możesz ją czytać i grać w grę, ale nie możesz kopiować, adaptować ani publikować historii bez pisemnej zgody. Plik NOTICE powtarza tę zasadę dla każdego, kto redystrybuuje kod.
