
Közkívánatra egy nagyszabású cikksorozatot indítunk a szerver nélküli számítástechnika valós alkalmazásfejlesztésben való használatáról. Ez a sorozat az alkalmazásfejlesztést, tesztelést és a végfelhasználóknak való eljuttatást tárgyalja modern eszközök használatával: egy mikroszolgáltatásos alkalmazásarchitektúra (szerver nélküli változatban, a következő alapján: ), klaszter alkalmazás, adatbázis telepítéséhez , a felhőalapú klaszterezésre és alkalmazásokra, valamint a felhőbuszra összpontosítva Az alkalmazás a "Bylina" játékot valósítja meg, amely a népszerű "Mafia" társasjáték egy változata.
Mik azok a "Bylinák"?
Ez a „Mafia”, más néven „Vérfarkas” játék egy változata. Csapatjátékon alapul, ahol a játékosoknak lépésről lépésre kell kitalálniuk, ki kicsoda, és meg kell próbálniuk nyerni. Sajnos az online játék kiküszöböli a személyes interakció kulcsfontosságú elemét. Bár a klasszikus „Mafia” szabályai meglehetősen egyszerűek, általában más karaktereket is hozzáadnak, hogy a játékot nemlineárisabbá és lebilincselőbbé tegyék. Az eredeti „Mafia” alapvető jellemzői azonban általában megmaradnak, mint például a nappal/éjszaka ciklus, a csak éjszakai körök és a játékosok közötti szövetségek. Az online játék egy másik fontos különbsége, hogy a házigazda (más néven Játékmester vagy Mesélő) általában egy számítógépes program.
A játék leírása
A játék szabályai, amiket meg akarok valósítani, egy régi IRC botból származnak, amit körülbelül 10 évvel ezelőtt mentettem el a személyes archívumomba. A "Byliny"-nek van egy háttértörténete, amivel minden játék elkezdődik:
A távoli királyságban, a távoli államban, a hét tengeren túl, több falu élt, és azokban Jó fickók и Szép leányokGabonát vetettek, és a közeli erdőbe jártak gombát és bogyót szedni... És így ment évszázadokon át, mígnem egy szörnyű katasztrófa megrázta a Földet, és a gonosz elkezdett terjedni az egész világon! Az éjszakák hosszúak és hidegek lettek, és a sötétségben barátságtalan és szörnyű lények járták az erdőt, és tévedtek be a faluba. Valahonnan berepültek... Kígyó Gorynych és gyönyörű lányokat lopott, és minden értékeset elvett a falusiaktól. Ártalmas és kapzsi Baba Yaga, amely a távoli erdőkből mozsárgán repült be, összezavarta a lakosok elméjét, és néhányan még a mesterségüket is feladták, és rabolni mentek az erdőbe, bandát alkotva ott. A gazemberek találkoztak Leshy, akik fává és bokrává tudtak változni, elkezdte kémlelni a békés falusiakat és szolgálni a rablókat, szimatolva, hogy a Jó Emberek vajon terveznek-e valamit, hogy megszabadítsák településeiket a gonosz szellemektől. A Jó Emberek és a Szép Leányok, belefáradva a Rablók fosztogatásaiba és a szörnyű halálesetekbe a szörnyű Rohamos Egyszemű, aranyat gyűjtött és meghívott egy híres birkózót egy szomszédos városból - Ivan Tsarevich, aki megígérte, hogy megszabadítja a falut a banditáktól. Egy erdei tisztáson Iván megmentette őket a biztos haláltól. Szürke Farkas, aki a Rablók csapdájába esett. Cserébe a Farkas megígérte, hogy tájékoztatja a cárevicset a különféle erdei gonosz szellemekről. Egy híres gyógyító haladt el arra. Bölcs Vaszilisza, és amikor bajt látott, ott maradt, hogy ápolja a gonoszok támadásaitól elszenvedett lakosokat. Az erdőn túl egy fekete palota bukkant fel, amelyben a pletykák szerint egy fekete férfi telepedett le. Koscsej, a HalhatatlanMinden éjjel meglátogatta a falvakat, és megbabonázta a Jó Embereket és a Szép Leányokat, hogy ne merjék megszegni parancsait, hanem mindent úgy tegyenek, ahogy mondja. És letelepedett az Élettelen Erdőben. Cat-Bayun, és mindenki, aki találkozott vele, halott álomba merült a történetei után, vagy meghalt vaskarmaitól.

Távoli királyság
Mint látható, a játékosok több csoportra oszlanak:
- civilek (Jófiúk, Vörös Leányok, Ivan Tsarevich, Szürke Farkas és Vaszilisa a Bölcs)
- rablók (a rablók igazi fajtája, valamint Baba Yaga és Leshy)
- független (Kígyó Gorynych, Egyszemű Likho, A békahercegnő, Koschei a Halhatatlan, Bayun a macska)
A játék célja, ahogy fentebb említettük, a túlélés és a győzelem. Az ellenfeleket így vagy úgy ki kell ejteni, míg a független játékosoknak is túl kell élniük a végéig. A játékban arany is található, egyfajta játékon belüli pénznem, amelyet a játékosok csak a játékon belül szerezhetnek. A győztesek aranyat kapnak. Minél több aranyat kap, annál magasabb a játékos értékelése.
Kicsit részletesebben is kitérek a szereplők leírására.

Jó fickó

Vörös leány
Jó fickó и Vörös leány — a játék leggyakoribb és legfontosabb szerepe. Ezek békés polgárok, akik éjszaka alszanak, nappal pedig dolgoznak. Éjszaka banditák, Gorynych sárkány és más szerepkörök támadják meg őket, és Vaszilisa, a Bölcs meggyógyítja őket. Van egy kis esély arra, hogy egy Jó Bajnok vagy egy Vörös Lány sértetlenül túlélje a támadást (esetleg aranyat veszítve), de mindenki tudni fogja a játékos becenevét a támadás/védekezés másnapján. Éjszaka ezek a játékosok nem lépnek, hanem a játék chatjében megjelenő üzenetek alapján elemzik a játékhelyzetet. Napközben ezek a játékosok szavaznak arról, hogy eldöntsék, ki nem Jó Bajnok vagy Vörös Lány. A többi játékos többsége által megszavazott játékos elhagyja a játékot, a megmaradt játékosok pedig aranyat nyernek vagy veszítenek. Ha a játékosok többsége nem választ valakit, senkit sem végeznek ki.

Ivan Tsarevics
Ivan Tsarevics — a civilek kezdetben névtelen védelmezője. Éjszaka ellenőrzi a többi játékos szerepét, mivel csak egy szövetségesét ismeri — a Szürke Farkast. A Szürke Farkas közvetlen részvételével (aki szintén ellenőrizheti a többi játékos szerepét) Ivan Tsarevich ahelyett, hogy ellenőrizne, megölhet egy másik karaktert éjszaka. Ha az ellenőrzés után Ivan Tsarevich látja, hogy egy játékosnak Jó Bajnok vagy Vörös Leány szerepe van, meghívhatja őket magához, és bemutathatja őket a Szürke Farkasnak és más Jó Bajnokoknak és Vörös Leányoknak. Ivánt meghiúsíthatja a Béka Hercegnő, aki éjszaka elcsábíthatja anélkül, hogy nappal felfedné szerepét a többi játékosnak. Ha maga Ivan felfedezi a Béka Hercegnőt, meghívhatja őt a civilek közé, de ha a Hercegnő visszautasítja, Ivan megöli. A Sárkány-Gorinycs szintén beavatkozhat Ivan Tsarevich ellenőrzéseibe, de a Béka Hercegnővel ellentétben nappal megmondja a többi játékosnak, hogy melyikük Ivan Tsarevich. Napközben Ivan Tsarevich nem különbözik a többi Jó Baráttól.

Szürke Farkas
Szürke Farkas — Ivan Tsarevich segédje, akinek éles szaglása segít Ivánnak megtalálni a többi Jó Embert és Szép Leányt. A Szürke Farkas megmondja a játékosoknak, hogy ki Ivan Tsarevich, és tájékoztatja őket a Jó Emberek és Szép Leányok szerepét játszó többi játékosról is. Ha a Farkas rablót vagy más ellenséget észlel, azonnal értesíti Ivan Tsarevicset, hogy másnap éjjel cselekedhessen. Ha a Farkast megtámadja a Békahercegnő, akkor egy sima Jó Emberré változik, és senkit sem tud ellenőrizni, a Hercegnő pedig nem fogja tudni, hogy valójában a Szürke Farkas volt az, mivel a Farkas nem alszik éjszaka. Maga a Farkas azonban napközben megtudja, hogy melyik játékos a Békahercegnő, és megpróbálhatja rávenni a többi Jó Embert és Szép Leányt, akiket Ivan Tsarevichhez hozott, hogy szavazzanak a Békahercegnő kivégzésére. A következő éjszaka megpróbálhatja névtelenül rávenni a Békahercegnőt, hogy a civilek oldalára álljon, hogy ne bántsa őket. A Farkas éjszaka feláldozhatja magát Ivan Tsarevics vagy a Bölcs Vaszilisa megmentéséért, ha gyanítja, hogy banditák támadják meg őket, vagy Koscsej zombisította őket (a Farkas veleszületett immunitással rendelkezik Koscsej bűbájaival szemben), de az áldozat után a Farkas kiesik a játékból.

Bölcs Vaszilisza
Bölcs Vaszilisza — a civileknek játszik, de ők nem tudnak róla, mivel Vaszilisza nagyon szerény. A Bölcs Vaszilisza gyógyításkor sem kérdezősködik, és mint egy jó orvos, mindenkit kezel. Ha azonban Koscsej, Liho vagy Lesi issza a gyógyszerét, nem élnek tovább egy napnál, mivel Vaszilisza csak embereket gyógyít. A Bölcs Vaszilisza gyógyszere nem segít Gorynych kígyón vagy a Bayun macskán, de nem is árt nekik. A Bayun macska éjszaka sem zavarja Vasziliszát, mivel Vaszilisza nem megy az Élettelen Erdőbe gyógynövényekért. Továbbá a Békahercegnő női bájai sem hatnak Vasziliszán. Ha valaki kétszer megpróbálja megölni a betegét, a gyógyszere hatástalan lesz. Vaszilisza a mágikus támadásoktól, például Liho átkától sem védi meg. Napközben Vaszilisza úgy viselkedik, mint egy Vörös Szűz, és csak egy futó, kissé szomorú pillantás utalhat egy kicsit arra, hogy ő a legjobb gyógyító a Messze-Messze Királyságban.

Gazember
RablókAz összes korábbi szereppel ellentétben a bandatagok ismerik egymást, mivel ugyanazon a barlangon osztoznak, és Leshyt és Baba Yagát is ismerik, így már az első körtől kezdve összhangban tudnak cselekedni. Azonban csak a Bandavezér hajt végre akciókat éjszaka, és nappal nem szavaz, míg a többi Bandita szorgalmasan Jófiúnak és Széplánynak tetteti magát. Ha a Vezér bármilyen okból kiesik, a megmaradt Banditák egyike azonnal átveszi a helyét. A Banditák először megpróbálják megbénítani Ivan Tsarevicset, mielőtt az elég Jófiúból és Széplányból tudna összeszedni ahhoz, hogy aktívan szembeszálljon a Banditákkal nappal.

Kobold
Kobold Éjszaka a Banditáknak kémkedik, és beszámol a barlangjukban felfedezett szerepekről, de nappal nem szavaz, mivel nem a faluban lakik. Más játékosok azonban szavazhatnak Leshyre, így kivégezhetik őt. Mivel Leshy a mocsárból származik, a Békahercegnő nem csábíthatja el, és ha megpróbálja, Leshy megjelöli a házát, és a falusiak felfedezik valódi kilétét. Leshynek nem kell félnie Koschei bűbájától sem, de Vaszilisa halálra gyógyíthatja. Ha Bayun macska megpróbálja megtámadni Leshyt, kockáztatja vaskarmai elvesztését, és arra kényszeríti a macskát, hogy pusztán a dorombolásával ringassa áldozatait álomba.

Baba Yaga
Baba Yaga Emellett a Rablókkal is együttműködik, éjszaka varázslatokat szór: vagy megbetegítheti a többi játékost, vagy megvédheti egy szövetségesét a támadástól. Varázslatai még a Gonosz átkánál is erősebbek. Baba Jaga nappal is aktív: a védelme alatt állókat nem lehet kivégezni, még többségi szavazással sem. A nappali védelemhez szükséges mágikus gyökerek készlete azonban korlátozott, így Baba Jaga játékonként háromnál többször nem tud senkit, beleértve önmagát sem, megvédeni. Napközben Baba Jaga egy átlagos Vörös Szűznek álcázza magát, és mindenki mással együtt szavaz.

Kígyó Gorynych
Kígyó Gorynych Éjszaka a Kígyó falvak, erdők és mocsarak felett repül, rablást követ el, nappal felfedve a kirabolt fél kilétét. Napközben a Kígyó alszik, ezért nem szavaz, de többségi szavazással kivégezhető. A Kígyó mindenkire nagyon veszélyes, különösen a Rablókra és Ivan Tsarevicsre. A Kígyót nem érdekli, hogy kit rabol ki, de ha a Farkas vagy Leshy felfedi a kilétét, értékes szövetségessé válhat. A Kígyó éjszakai megölése esélyt ad egy nagyon értékes tárgy – egy Kígyóbőr – megszerzésére, amely egyszeri alkalommal megvédi tulajdonosát a fizikai támadástól.

híresen félszemű
híresen félszemű Éjszaka mindenkit megöl, akivel találkozik, és akiket nem tud megölni (Lesy, Bayun macska vagy a Gorynych kígyó), azokat megátkozi, így bárki, aki megpróbál kommunikálni az átkozottal aznap éjjel, egy napon belül meghal. Az átkozott is meghal, kivéve Bayun macskát, aki egyszerűen elalszik, hogy erőt gyűjtsön, és a következő éjszaka kihagy egy kört. Csak Baba Yaga menthet meg valakit Likh átkától. Az átok nincs hatással arra, aki legyőzi Bayun macskát: ő, akárcsak a macska, egyszerűen elalszik és kihagy egy kört.

A béka hercegnő
A béka hercegnő Nem nyerheti meg a játékot, de sok pénzt kereshet azzal, ha éjszaka elcsábítja a többi játékost. Aki elcsábul, kihagy egy kört. A Béka nem tudja elcsábítani Vaszilisát, a Bölcset, és Lesyt is kerülnie kell, aki másnap mindenkinek elárulja. Ha Ivan Tsarevich vagy a Rablófőnök megtalálja a Békát, civileket vagy Rablókat hívhatnak maguk mellé. Ivan nem fogadja el a Béka visszautasítását, de a Főnök kevésbé belátásra törekszik. A Békahercegnő azonban elég ravasz ahhoz, hogy kettős ügynökké váljon. Bár egyedül nem nyerhet, ez egy kiváló lehetőség arany szerzésére, mivel az esélyei a játék végéig nagymértékben megnőnek! Napközben a Békahercegnő Vörös Leánynak álcázza magát, és mindenki mással együtt szavaz.

Koscsej, a Halhatatlan
Koscsej, a Halhatatlan A kastélyában él. Éjszaka a környező falvakban barangol, zombikká tesz Jófiúkat és Széplányokat, akik aztán kérdés nélkül szolgálják őt és végrehajtják parancsait. Ha nem hajlandó követni egy parancsot, például nappal másképp szavazni, mint ahogy Kocsej utasította, vagy üzeneteket írni a chatbe nappal, ha Kocsej megtiltotta, Kocsej szolgája meghal. Így Kocsej befolyásolhatja a nappali szavazás eredményét, annak ellenére, hogy ő maga nem szavaz. Ha Kocseit megölik, minden áldozata is meghal. Vaszilisa meggyógyíthatja Kocsej szolgáját, aki ezután visszatér eredeti szerepéhez. A Kígyó Gorynych és a Farkas veleszületett immunitással rendelkeznek a zombikká válással szemben, így Kocsej nem tudja őket a szolgálatába állítani, még ha akarná sem. A Farkas önmaga feláldozásával megmentheti Ivant vagy Vaszilisát a bajból. Akiket a Farkas megment, azok elnyerik a Farkas zombikká válással szembeni immunitását.

Cat-Bayun
Cat-Bayun Az erdőben él, és éjszaka vadászik. Napközben a fa odújában alszik, így nem vesz részt a szavazásban. Napközben azonban többségi szavazással kivégezhető. A Macska kétféleképpen támadhat: dorombolással, amitől áldozata elalszik, és éjszaka nem tud mozogni, illetve másnap szavazással. Vagy azonnal ölhet vaskarmaival. A karmos támadások nem működnek Gorynych kígyón, és a Leshy megtámadása után a Macska akár teljesen elveszítheti a karmait! A Gonosz nem átkozhatja meg a Macskát, aki az átok után egyszerűen csak egy éjszakát alszik. Ha valakinek sikerül legyőznie a Bayun Macskát, minden betegség vagy nyavalya, beleértve a Gonosz átkát is, meggyógyul. Ez a Macskaképesség a játék végéig a játékosnál marad. Koscsej szolgái nem szavazhatnak a Macskára nappal, de közvetve felfedezhetik a Macska kilétét anélkül, hogy értesítenék Koscseit. Bayun Macska nem lép szövetségre Ivánnal vagy a Rablókkal, így ők a Macska elsődleges célpontjai.
Használt technológiák
A játék megírásához az OpenFaaS-on alapuló szerver nélküli számítástechnikai technológiát választottam, mivel ez elég egyszerű a játék megszervezéséhez, mégis elég kifinomult ahhoz, hogy összetett játékszabályokat írjunk felesleges bonyodalmak nélkül. Kubernetes klasztert is fogok használni, mivel ez az alkalmazástelepítési módszer gyors és megbízható telepítést, valamint egyszerű skálázhatóságot tesz lehetővé. Az OpenFaaS önmagában elegendő a játéklogika létrehozásához, de megpróbálom a Storytellert külön konténerként is felépíteni, hogy összehasonlítsam a megvalósítás bonyolultságát. A mikroszolgáltatásokhoz és függvényekhez az elsődleges programozási nyelvet választottam. , mivel egy ideje a szabadidőmben tanulom a Perl helyettesítőjeként. Egy bizonyos keretrendszeren alapuló JavaScriptet fogok használni a mikroszolgáltatásokkal és függvényekkel való felhasználói interakcióhoz. A végső döntést a sorozat megfelelő cikkében fogom megvitatni. A NATS.io-t választottam a függvények közötti kommunikációhoz, mert korábban már használtam, és viszonylag könnyen integrálható a Kubernetes-szel.
Közlemény
- Bevezetés
- A fejlesztői környezet kialakítása, a feladat funkciókra bontása
- Háttérmunka
- Frontend munka
- CICD felállítása, tesztelés szervezése
- Indítson próbajátékot
- Eredményei
Forrás: will.com
