"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün

Oxucuların çoxsaylı istəklərinə görə, real proqramın hazırlanması üçün serversiz hesablama texnologiyasının istifadəsi ilə bağlı geniş məqalələr seriyası başlayır. Bu dövr tətbiqin inkişafı, sınaqdan keçirilməsi və müasir alətlərdən istifadə edərək son istifadəçilərə çatdırılmasını əhatə edəcək: mikroservis tətbiqi arxitekturası (serversiz versiyada, OpenFaaS), klaster kubernetlər proqramların yerləşdirilməsi, verilənlər bazası üçün MongoDB, bulud klasterinə və tətbiqinə, həmçinin bulud avtobusuna diqqət yetirir TÜRKLƏR. Tətbiq məşhur salon oyununun "Mafiya" variantlarından biri olan "Dastanlar" oyununu həyata keçirir.

"Dastanlar" nədir?

Bu, "Canavar" kimi də tanınan "Mafiya" oyununun bir variantıdır. Bu, iştirakçıların kimin kim olduğunu addım-addım öyrənməli və qalib gəlməyə çalışmalı olduğu komanda oyununa əsaslanır. Təəssüf ki, onlayn oynayarkən, şəxsi qarşılıqlı əlaqə kimi oyunun vacib bir komponenti yox olur və klassik "Mafiya" nın qaydaları olduqca sadədir, buna görə də daha qeyri-xətti və maraqlı bir oyun üçün adətən digər simvollar əlavə olunur, lakin ümumiyyətlə orijinal "Mafiya" nın əsas xüsusiyyətləri qorunub saxlanılır, məsələn, gecə və gündüzün dəyişməsi, yalnız gecə hərəkəti, eləcə də iştirakçılar arasında ittifaqlar. Onlayn oynamaq arasındakı digər vacib fərq, ev sahibinin (aka Game Master, Storyteller) adətən kompüter proqramı olmasıdır.

Oyunun təsviri

Həyata keçirmək istədiyim oyunun qaydaları təxminən 10 il əvvəl şəxsi arxivimdə saxladığım köhnə irc botdan götürülüb. "Dastanların" hər oyunun başladığı bir tarixçəsi var:

Uzaq səltənətdə, otuzuncu dövlətdə, yeddi dənizin o tayında, bir neçə kənd yaşayır və yaşayırdı və onlarda Yaxşı yoldaşlar и Gözəl qızlar. Çörək səpdilər və göbələk və giləmeyvə yığmaq üçün ətrafdakı meşəyə getdilər... Və bu, əsrdən əsrə, dəhşətli bir fəlakət Yer kürəsini sarsıdana və pislik bütün dünyaya yayılmağa başlayana qədər davam etdi! Gecələr uzun və soyuq olur, qaranlıqda rəhmsiz və qorxunc məxluqlar meşədə gəzir və kəndin içinə girirdilər. Bir yerdən gəlib Əjdaha Qırmızı qızları oğurlamağa və kəndlilərdən qiymətli hər şeyi almağa vərdiş etdi. Zərərli və acgöz Baba Yaga, uzaq meşələrdən minaatanla uçaraq sakinlərin fikrini çaşdırıb, hətta bəziləri sənətini atıb, soymaq üçün meşəyə girib, orada dəstə yaradıb. Bədxahlar görüşdülər GoblinAğaclara və kollara çevrilməyi bilən o, dinc kəndliləri izləməyə və quldurlara xidmət etməyə başladı, Yaxşı Yoldaşların yaşayış məntəqələrini pis ruhlardan təmizləmək üçün bir şey olub olmadığını iyləyirdi. Quldurların basqınlarından yorulmuş yaxşı yoldaşlar və gözəl qızlar və dəhşətlilərin əlindən dəhşətli ölümlər Cəsarətli Tək Gözlü, qızıl toplayıb qonşu şəhərdən məşhur pəhləvan dəvət etdi - İvan Tsareviç, kəndi quldurlardan təmizləməyə söz verən. Meşədəki boşluqda İvan ölümdən xilas oldu Boz Qurd, Oğruların pit tələsinə düşən. Bunun müqabilində Qurd Tsareviçə müxtəlif meşə pis ruhları haqqında məlumat verəcəyini vəd etdi. Məşhur bir şəfaçı keçdi Müdrik Vasilisa, və çətinlik gördükdə, cəsarətlilərin hücumlarından əziyyət çəkən sakinlərə qulluq etmək üçün qaldı. Meşənin arxasında, şayiələrə görə, məskunlaşdığı qara bir saray göründü Ölümsüz Koschei, hər gecə kəndlərə baş çəkər, Xeyirxahları və Qırmızı Qızları ovsunlayırdı ki, onun əmrlərini yerinə yetirməyə cəsarət etməsinlər, hər şeyi onun dediyi kimi edərdilər. Və Cansız Meşədə məskunlaşdı Pişik Baiyun, və onunla qarşılaşan hər kəs onun nağıllarından sonra yuxuya getdi və ya dəmir caynaqlarından öldü.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Uzaq Uzaq Krallığı

Artıq gördüyünüz kimi, oyunçular bir neçə qrupa bölünür:

  • mülki şəxslər (Yaxşı Yoldaşlar, Qırmızı Qızlar, İvan Tsareviç, Boz Qurd və Müdrik Vasilisa)
  • quldurlar (quldurların özləri, həmçinin Baba Yaga və Leşi)
  • müstəqil (Snake-Gorynych, Cəsur Tək Gözlü, Qurbağa Şahzadəsi, Ölümsüz Koschey, Cat-Bayun)

Oyunun məqsədi, yuxarıda qeyd edildiyi kimi, sağ qalmaq və qalib gəlməkdir. Rəqiblər bu və ya digər şəkildə oyunu tərk etməli, müstəqillər də oyunun sonuna qədər sağ qalmalıdırlar. Oyunda qızıl var, oyunçuların yalnız oyun ərzində qazandıqları bir növ oyun valyutası. Qaliblər qızıl alırlar. Nə qədər çox qızıl olsa, oyunçunun reytinqi bir o qədər yüksəkdir.

Personajların təsviri üzərində bir az daha ətraflı dayanacağam.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Yaxşı yoldaş

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Qırmızı Qız

Yaxşı yoldaş и Qırmızı Qız - oyunda ən geniş yayılmış və əsas rol. Bunlar gecə yatan, gündüz işləyən mülki şəxslərdir. Gecələr quldurlardan biri, Serpent Gorynych və digər rolların hücumuna məruz qalırlar və Müdrik Vasilisa onları sağaldır. Kiçik bir ehtimalla, Yaxşı Dost və ya Qırmızı Qız hücumdan zərər görmədən sağ qala bilər (bu prosesdə qızıl itirə bilər), lakin hücumdan ertəsi gün hamı oyunçunun ləqəbini tanıyacaq. Gecələr bu oyunçular heç bir hərəkət etmirlər, ancaq oyun söhbətindəki mesajlara əsasən oyun vəziyyətini təhlil edirlər. Gün ərzində bu oyunçular səsvermə yolu ilə hansının Yaxşı Yoldaş və ya Qırmızı Qız olmadığına qərar verirlər. Digər oyunçuların əksəriyyətinin səs verdiyi oyunçu oyunu tərk edir, qalan oyunçular qızıl alır və ya itirirlər. Oyunçular səs çoxluğu ilə heç kimi seçməsələr, heç bir oyunçu edam edilməyəcək.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
İvan Tsareviç

İvan Tsareviç - əvvəlcə mülki şəxslərin anonim müdafiəçisi. Gecələr digər oyunçuların rollarını yoxlayır, çünki müttəfiqlərindən yalnız birini - Boz Qurdu tanıyır. Boz Qurdun birbaşa iştirakı ilə (o, digər oyunçuların rollarını da yoxlaya bilər) İvan Tsareviç yoxlamaq əvəzinə gecə başqa bir personajı öldürə bilər. Əgər yoxlama nəticəsində İvan Tsareviç bir oyunçuda Yaxşı Yoldaş və ya Qırmızı Qız rolunu görürsə, o zaman onları öz yerinə dəvət edə və onları Boz Qurd və digər Yaxşı Yoldaşlar və Qırmızı Qızlarla tanış edə bilər. İvana gecələr onu şirnikləndirə bilən Qurbağa Princess müdaxilə edə bilər, gündüzlər digər oyunçulara öz rolunu açıqlamadan. İvanın özü Qurbağa Şahzadəni kəşf etsə, onu mülki şəxslərə qoşulmağa dəvət edə bilər, lakin şahzadə imtina edərsə, o, İvanın əlində ölür. Serpent-Gorynych də İvan-Tsareviçin çeklərinə müdaxilə edə bilər, lakin Qurbağa Şahzadəsindən fərqli olaraq, gün ərzində digər oyunçulara hansının İvan-Tsareviç olduğunu söyləyəcək. Gün ərzində İvan Tsareviç digər Yaxşı yoldaşlardan heç bir fərqi yoxdur.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Boz Qurd

Boz Qurd - İvan Tsareviçin köməkçisi, onun kəskin qoxu hissi İvana digər Yaxşı Yoldaşlar və Qırmızı Qızlar tapmağa kömək edir. Boz Qurd bu oyunçulara İvan Tsareviçin kim olduğunu söyləyir, həmçinin Yaxşı Yoldaşlar və Qırmızı Qızlar rolları olan digər oyunçular haqqında məlumat verir. Qurd quldur və ya başqa bir düşmən aşkar edərsə, dərhal İvan Tsareviçə xəbər verir ki, növbəti gecə hərəkətə keçsin. Qurbağa Şahzadənin hücumuna məruz qaldıqda, o, adi bir Yaxşı Dosta çevrilir və heç kimə baxa bilməz və Şahzadə bunun əslində Boz Qurd olduğunu bilməyəcək, çünki Qurbağa gecələr yatmır. Bununla belə, Qurbağanın özü gün ərzində oyunçulardan hansının Qurbağa Şahzadəsi olduğunu öyrənəcək və İvan Tsareviçə gətirdiyi qalan yaxşı yoldaşları və Qırmızı Qızları Qurbağanın edamına səs verməyə inandırmağa çalışa bilər. Şahzadə. Həmçinin növbəti gecə o, Qurbağa Şahzadəsini anonim şəkildə mülki şəxslərin tərəfinə çəkməyə çalışa bilər ki, heç birinə toxunmasın. Qurd gecə vaxtı İvan Tsareviçi və ya Müdrik Vasilisanı xilas etmək üçün özünü qurban verə bilər, əgər o, onların qəfildən quldurların hücumu altına düşəcəyini və ya Koşey tərəfindən zombiləşdirildiyini güman edərsə (Qurd Koşeyin cazibəsinə fitri immunitetə ​​malikdir), lakin sonra fədakarlıq Wolf oyundan düşür.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Müdrik Vasilisa

Müdrik Vasilisa - mülki şəxslər üçün oynayır, amma onun haqqında bilmirlər, çünki Vasilisa çox təvazökardır. Həm də Müdrik Vasilisa müalicə edəndə sual vermir və yaxşı həkim kimi hamını müalicə edir. Ancaq Koschey, Likho və ya Leşi dərmanlarını içsələr, bir gündən çox yaşamayacaqlar, çünki Vasilisa yalnız insanları müalicə edir. Müdrik Vasilisa'nın dərmanı da ilan Gorynych və ya Cat-Bayun'a kömək etməyəcək, lakin onlar da zərər verməyəcəklər. Həm də Kot-Bayun gecələr Vasilisaya toxunmur, çünki Vasilisa dərman bitkiləri almaq üçün Cansız Meşəyə getmir. Bundan əlavə, Qurbağa Şahzadəsinin qadın cazibəsi Vasilisa üzərində işləmir. Xəstəni iki dəfə öldürməyə cəhd etsəydilər, dərman aciz olardı. Vasilisa sizi sehrli hücumlardan, məsələn, Dashing lənətindən xilas etməyəcək. Gün ərzində Vasilisa Qırmızı Qız kimi davranır və yalnız tez, bir az kədərli bir görünüş onun Uzaq Krallığın ən yaxşı müalicəçisi olduğuna bir az işarə edə bilər.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Yaramaz

Quldurlar, bütün əvvəlki rollardan fərqli olaraq, onlar bir-birlərini tanıyırlar, çünki eyni Lairdə yaşayırlar, həmçinin Leshy və Baba Yaga-nı tanıyırlar, buna görə də ilk hərəkətdən konsertdə çıxış edə bilərlər. Ancaq yalnız dəstənin Rəhbəri gecələr hərəkətlər edir və gündüzlər səs vermir, qalan Quldurlar isə səylə özlərini Yaxşı Yoldaşlar və Qırmızı Qızlar kimi göstərirlər. Lider hər hansı bir səbəbdən oyunu tərk edərsə, qalan Rogues biri dərhal onun yerini tutur. Əvvəla, Quldurlar İvan Tsareviçi gün ərzində fəal şəkildə quldurlarla qarşı-qarşıya qoymaq üçün yaxşı yoldaşlar və qırmızı qızlardan kifayət qədər qüvvə toplayana qədər onu sıradan çıxarmağa çalışırlar.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Goblin

Goblin gecələr o, Quldurlar üçün casusluq edir, onlara yuvalarında tapılan rollar haqqında məlumat verir, lakin gündüzlər kənddə yaşamadığı üçün səs vermir. Bununla belə, digər oyunçular Leşiyə səs verə və beləliklə, onu edam edə bilərlər. Leşi bataqlıqdan gəldiyi üçün onu Qurbağa Şahzadə aldada bilməz və əgər cəhd etsə, Leşi onun evinə damğa vuracaq və kəndlilər onun həqiqətən kim olduğunu öyrənəcəklər. Leshem Koshchei'nin sehrindən qorxmamalıdır, amma Vasilisa onu ölümə qədər sağalda bilər. Kot-Bayun Leşiyə hücum etməyə çalışarsa, o, dəmir pəncələrini itirmək riski ilə üzləşir və sonra Kot qurbanları sadəcə mırıltısı ilə yatmağa məcbur edəcək.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Baba Yaga

Baba Yaga O, həmçinin Quldurlarla birlikdə işləyir və gecələr sehrlər edir: ya digər oyunçulara xəstəlik göndərə bilər, ya da müttəfiqlərindən birini hücumdan qoruya bilər. Onun cadugərliyi Lixin lənətindən də güclüdür. Gün ərzində Baba Yaga da aktivdir: himayəsində olan hər kəs səs çoxluğu ilə belə edam edilə bilməz. Bununla belə, gündüz mühafizəsi üçün sehrli köklərin tədarükü məhduddur, buna görə də Baba Yaga özü də daxil olmaqla heç kəsi oyun başına üç dəfədən çox qoruya bilməz. Gün ərzində Baba Yaqa özünü adi Qırmızı Qız kimi göstərir və hamı ilə birlikdə səs verir.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Əjdaha

Əjdaha gecələr kəndlərin, meşələrin və bataqlıqların üzərindən uçaraq quldurluqla məşğul olur, gündüzlər qarət edilənlərin rolunu ortaya qoyur. Gündüzlər İlan yatır, ona görə də səs vermir, lakin səs çoxluğu ilə edam edilə bilər. İlan hər kəs üçün, xüsusən Quldurlar və İvan Tsareviç üçün çox təhlükəlidir. İlan kimin qarət etdiyinə əhəmiyyət vermir, lakin onu Qurd və ya Leşi aşkar edərsə, o, dəyərli müttəfiq ola bilər. Əgər İlanı gecə öldürsəniz, müəyyən ehtimalla çox qiymətli bir əşya əldə edə bilərsiniz - sahibini bir dəfə fiziki hücumdan qoruyacaq İlan Dərisi.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Cəsarətli Tək Gözlü

Cəsarətli Tək Gözlü gecələr yoluna çıxan hər kəsi öldürür və öldürə bilməyənləri (Leşi, Kota-Bayun və ya İlan Qorınıç) lənətləyir ki, həmin gecə lənətə gəlmiş adamla əlaqə saxlamağa çalışan hər kəs gündüz ölür. . Bu vəziyyətdə lənətə gəlmişin özü də ölür, yalnız Kot-Bayun ölmür, o, sadəcə olaraq növbəti gecə növbəsini atlayaraq güc qazanmaq üçün yatmağa gedir. Yalnız Baba Yaqa Lixı lənətdən xilas edə bilər. Lənət Pişik-Bayunu məğlub edənə təsir etmir: o, Pişik kimi, sadəcə yatağa gedir və döngəni atlayır.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Şahzadə Qurbağa

Şahzadə Qurbağa oyunu qazana bilməz, lakin gecələr digər oyunçuları şirnikləndirərək çoxlu pul qazana bilər. Aldanmış adam öz növbəsini qaçırır. Qurbağa Müdrik Vasilisanı aldada bilməz və o, ertəsi gün onu hamıya satacaq Leşidən də qaçmalıdır. İvan Tsareviç və ya Quldurların Rəhbəri Qurbağanı tapsalar, mülki şəxsləri və ya Quldurları öz tərəflərinə dəvət edə bilərlər, İvan isə Qurbağanın imtinasını qəbul etməyəcək, lakin Rəhbər o qədər də seçici deyil. Ancaq Şahzadə olduqca hiyləgərdir, o, ikiqat agent ola bilər, çünki tək qazana bilməməsinə baxmayaraq, bu qızıl qazanmaq üçün əla şansdır, çünki oyunun sonuna qədər sağ qalmaq şansı çox artır! Gün ərzində Qurbağa Şahzadə özünü Qırmızı Qız kimi göstərir və hamı ilə birlikdə səs verir.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Ölümsüz Koschei

Ölümsüz Koschei qalasında yaşayır. Gecələr ətraf kəndləri gəzir və onun xidmətinə gələn və bütün əmrləri şübhəsiz yerinə yetirən Yaxşı Yoldaşları və Qırmızı Qızları zombiləşdirir. Sifarişi yerinə yetirməkdən imtina edərək, məsələn, gün ərzində Koshcheinin söylədiklərindən fərqli olaraq səs vermək və ya Koshchei qadağan edərsə, gün ərzində söhbətdə mesaj yazmaqdan imtina edərək, Koshchei'nin Qulluğu ölür. Beləliklə, Koschey özü səs verməsə də, gün ərzində səsvermənin nəticələrinə təsir göstərə bilir. Koshchei öldürülsə, onun bütün qurbanları da ölür. Vasilisa qulluqçu Koşçeyi sağalda bilər, o, sonra öz orijinal roluna qayıdır. İlan Qorıniç və Qurd zombifikasiyaya qarşı fitri immunitetə ​​malikdir, ona görə də Koschey nə qədər istəsə də, onları öz xidmətinə çevirə bilməz. Canavar da özünü qurban verərək İvan və ya Vasilisanı bəladan xilas edə bilər. Qurd tərəfindən xilas edilən canavar zombifikasiyaya qarşı immunitet qazanır.

"Yeni dastanlar". İnkişaf etdiricilər, əməliyyatçılar və maraqlı insanlar üçün
Pişik Baiyun

Pişik Baiyun meşədə yaşayır, gecələr ov edir. Gündüzlər öz çuxurunda yatır, ona görə də səsvermədə iştirak etmir. Lakin gün ərzində o, səs çoxluğu ilə edam edilə bilər. Pişik iki şəkildə hücum edə bilər: mırıltı - sonra onun qurbanı yuxuya gedir və gecə yeriyə bilmir və ertəsi gün səs verə bilməz - və ya dəmir pəncələri ilə birbaşa öldürür. Pəncələrlə hücum İlan Qorıniçdə işləmir və Leşiyə hücum etdikdən sonra Pişik ümumiyyətlə pəncəsiz qala bilər! Cəsarətli pişiyi lənətləyə bilməz, lənətdən sonra sadəcə bir gecə yatacaq. Kim Kota-Bayunu məğlub edə bilsə, o, Lixin lənəti də daxil olmaqla, hər hansı bir xəstəlik və ya xəstəlikdən sağalacaq. Bu Pişik qabiliyyəti oyunun sonuna qədər oyunçuda qalır. Koşeyin xidmətçiləri gün ərzində Pişiyə səs verə bilməzlər, lakin Koşçeyə bu barədə məlumat vermədən Pişiyin kim olduğunu dolayı yolla öyrənə bilərlər. Kot-Bayun İvan və ya Quldurlarla ittifaqa girmir, ona görə də Kot üçün əsas hədəf onlardır.

İstifadə olunan texnologiyalar

Oyunu yazmaq üçün OpenFaaS-ə əsaslanan serversiz hesablama texnologiyasını seçdim, çünki oyunu təşkil etmək kifayət qədər sadədir və eyni zamanda lazımsız fəsadlar olmadan mürəkkəb oyun qaydalarını yazmaq üçün kifayət qədər təkmildir. Mən Kubernetes klasterindən də istifadə edəcəyəm, çünki tətbiqlərin yerləşdirilməsinin bu üsulu sürətli yerləşdirmə və asanlıqla miqyaslandırma qabiliyyəti əldə etməyi olduqca sadə və etibarlı edir. Oyun məntiqini yaratmaq üçün siz yalnız OpenFaaS ilə əldə edə bilərsiniz, lakin mən də həyata keçirmənin mürəkkəbliyini müqayisə etmək üçün Storyteller-i ayrıca konteyner kimi etməyə çalışacağam. Mikroservislər və funksiyalar üçün əsas proqramlaşdırma dili olaraq mən seçdim Go, Perl-i əvəz etmək üçün uzun müddət boş vaxtlarımda onu öyrəndiyim üçün js mikroservislər və funksiyalarla istifadəçi qarşılıqlı əlaqəsi üçün müəyyən çərçivə əsasında istifadə olunacaq. Yekun qərar barədə seriyadakı müvafiq məqalədə sizə məlumat verəcəyəm. Funksiyaları bir-biri ilə əlaqələndirmək üçün mən NATS.io-nu seçdim, çünki onunla əvvəllər qarşılaşmışdım və onun Kubernetes-ə kifayət qədər asan inteqrasiyası var.

Duyurular

  • Giriş
  • İnkişaf mühitinin qurulması, tapşırığın funksiyalara bölünməsi
  • Backend işi
  • Frontend işi
  • CICD-nin qurulması, sınaqların təşkili
  • Sınaq oyun sessiyasına başlayın
  • Nəticələri

Mənbə: www.habr.com

Добавить комментарий