Awesome Caderno Sql
لعبة تقمص أدوار نصية يتم لعبها من خلال psql، حيث تم تنفيذ قواعد اللعبة على شكل مشغلات PostgreSQL ووظائف plpgsql.
لعبة نصية RPG لـ psql حيث ينشئ اللاعبون شخصية باستخدام INSERT ويروي trigger المقدمة. قواعد اللعبة مكتوبة بـ plpgsql والمخطط مُدار بالإصدارات عبر ترحيلات Flyway.
نظرة عامة
اللعبة عبارة عن مخطط PostgreSQL يستخدمه اللاعبون من psql. تُقدّم عبارات SQL الخاصة بهم القصة إلى الأمام، وتجيب قاعدة البيانات عبر الإشعارات.
المتطلبات
- Docker
- psql
- make
البدء السريع
make setup # starts Postgres 17 and runs the Flyway migrations
make run # opens psql as the rpg user
ثم يقرأ اللاعبون الأجناس والفئات المتاحة ويُدخلون شخصية.
SELECT * FROM races;
SELECT * FROM classes;
INSERT INTO character_info (name, description, class, race, gender)
VALUES ('Aria', 'Uma maga curiosa', 2, 1, 'feminino');
يمكن للاعبين الذين يريدون شخصية جاهزة نسخ واحدة من القوالب. تأخذ الدالة use_template معرّف قالب وتُدخل تلك الشخصية في character_info.
SELECT * FROM char_templates;
SELECT use_template(1);
الأوامر
- make up يشغّل حاوية Postgres على المنفذ المحلي 5433.
- make migrate يطبّق الترحيلات المعلّقة باستخدام Flyway في وضع التصحيح.
- make down يزيل الحاوية ويحتفظ بالبيانات.
- make wipe يزيل الحاوية وحجم البيانات.
هيكل المشروع
- migrations يحتوي على SQL المُدار بالإصدارات، وكل ملف يحتوي على الجداول والأنواع والدوال لجزء واحد من اللعبة. يوضّح اسم الملف أي جزء، مثل V1__races.sql.
- scripts يحتوي على مساعدات shell خلف أهداف make.
- flyway.conf يحتوي على إعدادات اتصال Flyway لقاعدة البيانات المحلية.
الغرض
المشروع وسيلة للتدرب على PostgreSQL. يستخدم triggers وevent triggers والأدوار والصلاحيات وenums والأنواع المركّبة والدوال المُرجِعة للمجموعات.
الترخيص
الكود مُرخّص بموجب Apache License 2.0، وملف LICENSE يحتوي على النص الكامل. يغطي هذا الترخيص الكود ولا شيء غيره.
القصة عمل منفصل. يعني هذا عالم Nexus وأممه وشخصياته وتاريخه ومعارفه، وكل النص السردي في اللعبة مثل الرسائل المطبوعة وأوصاف الفصائل. القصة محمية بحقوق النشر (c) 2014-2026 lyszt، جميع الحقوق محفوظة. يمكنك قراءتها ولعب اللعبة، لكن لا يمكنك نسخ القصة أو تكييفها أو نشرها دون إذن كتابي. يكرّر ملف NOTICE هذه القاعدة على أي شخص يعيد توزيع الكود.
