"New Epics". Per i sviluppatori, l'ops è i curiosi

"New Epics". Per i sviluppatori, l'ops è i curiosi

A causa di numerosi dumande da i lettori, una grande serie di articuli principia nantu à l'usu di a tecnulugia di l'informatica senza servitore per sviluppà una vera applicazione. Stu ciclu coprerà u sviluppu di l'applicazioni, a prova è a consegna à l'utilizatori finali chì utilizanu strumenti muderni: architettura di l'applicazioni di microserviziu (in una versione senza servitore, basatu OpenFaaS), cluster kubernetes per implementazione di applicazioni, basa di dati MongoDB, focu annantu à u clustering di nuvola è l'applicazione, è ancu in u bus di nuvola NATS. L'applicazione implementa u ghjocu "Epics", una di e varianti di u famosu ghjocu di salone "Mafia".

Chì sò "Epics"?

Questa hè una variante di u ghjocu "Mafia", cunnisciutu ancu "Werewolf". Hè basatu annantu à un ghjocu di squadra in quale i participanti anu da amparà passu à passu quale hè quale è pruvate à vince. Sfurtunatamente, quandu si ghjoca in linea, un cumpunente cusì impurtante di u ghjocu cum'è l'interazzione persunale sparisce, è e regule di a "Mafia" classica sò abbastanza sèmplice, per quessa, per un ghjocu più micca lineale è interessante, altri caratteri sò generalmente aghjuntu, ma in generale i funziunalità principali di u "Mafia" uriginale sò cunsirvati, per esempiu, u cambiamentu di ghjornu è di notte, si move solu di notte, è ancu allianza trà i participanti. Una altra diferenza impurtante trà ghjucà in linea hè chì l'ospite (aka Game Master, Storyteller) hè di solitu un prugramma di computer.

Game Description

E regule di u ghjocu chì vogliu implementà sò pigliate da un vechju bot irc chì aghju salvatu in u mo archiviu persunale circa 10 anni fà. "Epics" anu una storia di fondo cù quale ogni ghjocu principia:

In u regnu distante, in u trentesimu statu, oltre i sette mari, parechji paesi campavanu è campavanu, è in elli Boni cumpagni и Belle ragazze. Seminanu u pane è si n'andò in u boscu circundante à coglie funghi è baga... È questu cuntinueghja da u seculu à u seculu, finu à chì una terribile catastrofa scuzzulò a Terra è u male cuminciò à sparghje in u mondu ! E notti sò diventate lunghe è fresche, è in u bughju, criaturi crudeli è terribili si aggiravanu in a furesta è andavanu in u paese. Arrivatu da qualchì locu Dragon è hà pigliatu l'abitudine di arrubà e fanciulle Rosse è di caccià tuttu ciò chì vale à i paisani. Dannusu è greedy Baba Yaga, chì volava nantu à un mortaru da e fureste distanti, cunfusu a mente di l'abitanti, è ancu alcuni rinunziò à u so mistieru è si n'andò in a furesta per arrubà, furmendu una gang. I cattivi si scontranu Goblin, chì hà sappiutu trasfurmà in arburi è arbusti, hà cuminciatu à monitorà i paisani pacìfichi è serve i ladri, sniffing out if the Good Fellows eranu à qualcosa per caccià i so insediamenti di spiriti maligni. Boni cumpagni è belli fanciulle, stanchi di e incursioni di i Ladri, è morti terribili à e mani di i terribili Corsa à un ochju, hà cullatu l'oru è hà invitatu un famosu lottatore da una cità vicina - Ivan Tsarevich, chì hà prumessu di caccià u paese di ladri. In una chjarra in a furesta, Ivan hà salvatu da a morte certa Lupu Grigiu, chì cascò in a fossa trappula di i Ladri. In ritornu, u Lupu prumittì di informà u Tsarevich nantu à diversi spiriti maligni di u boscu. Passò un famosu guaritore Vasilisa a Sàvia, è quand'ella hà vistu prublemi, stava per infermiera i residenti chì avianu patitu da l'attacche di i chjappi. Daretu à a furesta apparsu un palazzu neru, in quale, sicondu i rumuri, si stalla Koschei l'Immortelle, ogni notte visitava i paesi è ammazzava i Boni Compagni è Doncelle Rosse per ch’elli ùn osassi micca disubbidì à i so ordini, facianu tuttu ciò ch’ellu dicia. È si stalla in a Foresta Senza Vita Cat Baiyun, è tutti quelli chì u scontru s'addormentanu dopu à i so racconti o morse da i so unghie di ferru.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Regnu Luntanu Luntanu

Comu pudete vede, i ghjucatori sò divisi in parechji gruppi:

  • civili (Bon Fellows, Red Maidens, Ivan Tsarevich, Grey Wolf è Vasilisa the Wise)
  • ladri (i ladri stessi, è ancu Baba Yaga è Leshy)
  • indipendente (Snake-Gorynych, Dashing One-Eyed, Frog Princess, Koschey the Immortal, Cat-Bayun)

L'obiettivu di u ghjocu, cum'è l'esitatu sopra, hè di stà vivu è vince. L'opponenti anu da lascià u ghjocu in una manera o in l'altru, è l'indipindenti anu ancu esse vivu finu à a fine di u ghjocu. U ghjocu hà l'oru, un tipu di valuta di ghjocu chì i ghjucatori guadagnanu solu in u ghjocu. I vincitori ricevenu l'oru. Quantu più oru, più altu hè a valutazione di u ghjucatore.

Ampararaghju un pocu più in dettagliu nantu à a descrizzione di i caratteri.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Bon omu

"New Epics". Per i sviluppatori, l'ops è i curiosi
Red Maiden

Bon omu и Red Maiden - u rolu più diffusa è principalu in u ghjocu. Quessi sò civili chì dorme di notte è travaglianu di ghjornu. A notte sò attaccati da unu di i ladri, u Serpente Gorynych è altri roli, è Vasilisa a Sàvia li guarisce. Cù una piccula probabilità, u Good Fellow o a Red Maiden pò sopravvive à l'attaccu senza danni (possibilmente perde l'oru in u prucessu), in ogni modu, ognunu ricunnosce u soprannomu di u ghjucatore u ghjornu dopu dopu l'attaccu. A notte, questi ghjucatori ùn facenu micca movimenti, ma analizà a situazione di u ghjocu basatu nantu à i missaghji in u chat di u ghjocu. Duranti u ghjornu, sti ghjucatori decidenu vutendu quale di elli ùn hè micca u Good Fellow o a Red Maiden. U ghjucatore votatu da a maiò parte di l'altri ghjucatori abbanduneghja u ghjocu, i ghjucatori rimanenti ricevenu o perdenu l'oru. Se i ghjucatori ùn sceglienu nimu da u votu di a maiurità, nisun ghjucatore serà eseguitu.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Ivan Tsarevich

Ivan Tsarevich - inizialmente un difensore anonimu di i civili. A notte cuntrolla i roli di l'altri ghjucatori, postu chì cunnosci solu unu di i so alleati - u lupu grisgiu. Cù a participazione diretta di u lupu grisgiu (chì pò ancu verificà i roli di l'altri attori), Ivan Tsarevich, invece di verificà, pò tumbà un altru caratteru di notte. Se, in u risultatu di u cuntrollu, Ivan Tsarevich vede u rolu di un Good Fellow o di una Red Maiden in un ghjucatore, allura pò invità à u so locu è intruduce à u Grey Wolf è altri Good Fellows è Red Maidens. Ivan pò esse interferitu cù a Principessa Frog, chì pò seduce à a notte, senza revelà u so rolu à l'altri attori durante u ghjornu. Se Ivan stessu scopre a Principessa Frog, pò invità à unisce à i civili, ma se a Principessa ricusa, mori à e mani di Ivan. U Serpente-Gorynych pò ancu interferiscenu cù i cuntrolli di Ivan-Tsarevich, ma, à u cuntrariu di a Principessa Frog, durante u ghjornu dirà à l'altri ghjucatori quale di elli hè Ivan-Tsarevich. Duranti u ghjornu, Ivan Tsarevich ùn hè micca sfarente di l'altri Good Fellows.

"New Epics". Per i sviluppatori, l'ops è i curiosi
lupu grisgiu

lupu grisgiu - assistente à Ivan Tsarevich, chì u so sensu di l'olfattu aiuta Ivan à truvà altri Good Fellows è Red Maidens. Grey Wolf dice à questi ghjucatori quale hè Ivan u Tsarevich, è ancu informa nantu à altri attori cù i rolli di Good Fellows è Red Maidens. Se u Lupu scopre un ladru o un altru nemicu, informa immediatamente Ivan Tsarevich per pudè piglià l'azzione a notte dopu. Se u Lupu hè attaccatu da a Principessa Frog, si trasforma in un Good Fellow ordinariu è ùn pò micca verificà à nimu, è a Principessa ùn saperà micca chì era veramente u Lupu Grigiu, postu chì u Lupu ùn dorme micca a notte. In ogni casu, u Lupu stessu scoprerà durante u ghjornu quale di i ghjucatori hè a Principessa Frog, è pò pruvà à cunvince u restu di i Good Fellows è Red Maidens, chì hà purtatu à Ivan Tsarevich, per vutà per l'esekzione di u Frog. Principessa. Ancu a notte dopu, pò pruvà à cunvince anonimamente a Principessa Frog à u latu di i civili per ch'ella ùn tocchi à nimu. U Lupu pò sacrificà a notte per salvà Ivan Tsarevich o Vasilisa u Sàviu, s'ellu assume chì si caderanu di colpu sottu à l'attaccu di ladri, o sò stati zombificati da Koshchei (u Lupu hà una immunità innata à l'incantu di Koshchei), ma dopu. l'autosacrificiu chì u Lupu abbanduneghja u ghjocu.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Vasilisa a Sàvia

Vasilisa a Sàvia - ghjucà per i civili, ma ùn sanu micca di ella, postu chì Vasilisa hè assai modesta. Inoltre, Vasilisa a Sàvia, quandu tratta, ùn faci micca dumande è, cum'è un bon duttore, tratta tutti. Ma si Koschey, Likho o Leshy beie a so medicina, ùn viranu micca più di un ghjornu, postu chì Vasilisa tratta solu e persone. A medicina di Vasilisa a Sàvia ùn aiuterà micca ancu à a serpente Gorynych o à u Cat-Bayun, ma ùn portanu micca male. Inoltre, Kot-Bayun ùn tocca à Vasilisa à a notte, postu chì Vasilisa ùn và à a Foresta Senza Vita per cumprà erbe medicinali. Inoltre, l'incantu femminili di a Principessa Frog ùn funziona micca in Vasilisa. S'elli anu pruvatu à tumbà u so paziente duie volte, a medicina ùn saria impotente. Vasilisa ùn vi salvà micca da attacchi magichi, per esempiu da a maledizione Dashing. Duranti u ghjornu, Vasilisa si cumporta cum'è una Red Maiden, è solu un sguardu fugace è un pocu tristu pò insinuà un pocu ch'ella hè a megliu guaritrice in u Regnu Far Away.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Rogue

Robberi, Cuntrariu di tutti i roli nanzu, si cunnosci, postu ch'elli campanu in u listessu Lair, è ancu cunnosce Leshy è Baba Yaga, cusì ponu agisce in cuncertu dritta da u primu muvimentu. Ma solu u Capu di a banda eseguisce l'azzioni di notte è ùn vota micca durante u ghjornu, mentre chì u restu di i Robbers diligently pretendenu esse Good Fellows è Red Maidens. Se u Leader abbanduneghja u ghjocu per qualsiasi mutivu, unu di i Rogues restanti piglia immediatamente u so postu. Prima di tuttu, i Robbers cercanu di disattivà Ivan u Tsarevich finu à ch'ellu hà riunitu abbastanza forze da Good Fellows è Red Maidens per affruntà attivamente i Robbers durante u ghjornu.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Goblin

Goblin a notte spieghja per i Robbers, infurmànduli di i roli truvati in u so Lair, ma durante u ghjornu ùn vota micca, postu chì ùn campa micca in u paese. In ogni casu, altri ghjucatori ponu vutà per Leshy è cusì eseguisce. Siccomu u Leshy vene da i paludi, ùn pò micca esse seduciutu da a Principessa Frog, è s'ellu prova, a Leshy marcarà a so casa, è i paisani scopreranu quale hè veramente. Leshem ùn deve micca paura di l'incantu di Koshchei, ma Vasilisa pò guarì à morte. Sè Cat-Bayun prova à attaccà à Leshy, risicate di perde i so unghie di ferru, è allora u Gattu duverà cullà e vittime per dorme cù solu i so purring.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Baba Yaga

Baba Yaga Travaglia ancu inseme cù i Robbers è lancia incantesimi di notte: pò mandà a malatia à l'altri ghjucatori o prutege unu di i so alleati da l'attaccu. A so stregoneria hè ancu più forte chè a maledizione di Likh. Duranti u ghjornu, Baba Yaga hè ancu attivu: qualcunu sottu a so prutezzione ùn pò esse esecutatu ancu cù un votu di a maiurità. Tuttavia, l'offerta di razzi magichi per a prutezzione di u ghjornu hè limitata, cusì Baba Yaga ùn pò micca prutegge nimu, cumpresa ella, più di trè volte per ghjocu. Duranti u ghjornu, Baba Yaga pretende di esse una Red Maiden ordinaria è vota cù tutti l'altri.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Dragon

Dragon di notte vola sopra i paesi, i boschi è i paludi è s'impegna in a robba, palesendu u rolu di a robba durante u ghjornu. Duranti u ghjornu, u Serpente dorme, perchè ùn votu micca, ma pò esse esecutatu da un votu di a maiurità. A serpente hè assai periculosa per tutti, in particulare per i Robbers è Ivan Tsarevich. A serpente ùn importa micca quellu chì robba, ma s'ellu hè scupertu da u Lupu o da u Leshy, pò diventà un alliatu preziosu. Se tumbate u Serpente à a notte, pudete, cù una certa probabilità, riceve un articulu assai preziosu - a Snake Skin, chì prutege u so pruprietariu una volta da l'attaccu fisicu.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Corsa à un ochju

Corsa à un ochju di notte ammazza tutti quelli chì si mette in u so modu, è quellu chì ùn pò micca tumbà (Leshy, Kota-Bayun, o u Serpente Gorynych) maledicà, cusì chì quellu chì prova di cumunicà cù u dannatu quella stessa notte morerà durante u ghjornu. . U dannatu stessu hè ancu mortu in questu casu, solu Kot-Bayun ùn hè micca mortu, chì solu si va in lettu per guadagnà forza, saltendu u so turnu a notte dopu. Solu Baba Yaga pò salvà Likh da a maledizione. A malidizioni ùn tocca micca quellu chì hà scunfittu u Cat-Bayun: ellu, cum'è u Gattu, si mette in lettu è salta un turnu.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Principessa Frog

Principessa Frog ùn pò micca vince u ghjocu, ma pò guadagnà assai soldi seducendu altri ghjucatori di notte. U tentatu manca u so turnu. A rana ùn pò micca seduce à Vasilisa a Sàvia, è deve ancu evità à Leshy, chì a tradirà à tutti u ghjornu dopu. Se Ivan u Tsarevich o u Capu di i Robbers trovanu u Frog, ponu invità i civili o i Robbers à u so latu, mentri Ivan ùn accetta micca u rifiutu di Frog, ma u Leader ùn hè micca cusì esigenti. Ma a Principessa hè abbastanza astuta, pò diventà un agentu doppiu, perchè, malgradu u fattu chì ùn pò micca vince sola, hè una excelente chance per guadagnà l'oru, perchè e probabilità di sopravvive à a fine di u ghjocu aumentanu assai! Duranti u ghjornu, a Principessa Frog si fa finta di esse a Maiden Rossa è vota cun tutti inseme.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Koschei l'Immortelle

Koschei l'Immortelle campa in u so castellu. A notte, cammina per i paesi circundanti è zombifies Good Fellows è Red Maidens, chì venenu à u so serviziu è senza dubbitu rializeghjanu tutti l'ordini. Per ricusà di realizà un ordine, per esempiu, per vutà durante u ghjornu in modu diversu di ciò chì era dettu da Koshchei, o di scrive missaghji in u chat durante u ghjornu, se Koshchei l'interdeva, u Servu di Koshchei mori. Cusì, Koschey hè capaci di influenzà i risultati di u votu durante u ghjornu, ancu s'ellu ùn hà micca votu. Se Koshchei hè ammazzatu, tutte e so vittimi sò ancu morti. Vasilisa pò curà u Servant Koshchei, chì poi torna à u so rolu originale. U Snake-Gorynych è u Lupu anu una immunità innata à a zombificazione, cusì Koschey, quantunque vole, ùn pò micca turnà in u so serviziu. U Lupu pò ancu aiutà à Ivan o Vasilisa fora di i prublemi per sacrificà ellu stessu. Salvatu da u lupu acquista l'immunità di u lupu à a zombificazione.

"New Epics". Per i sviluppatori, l'ops è i curiosi
Cat Baiyun

Cat Baiyun campa in furesta, caccia di notte. Durante u ghjornu dorme in u so cavu, perchè ùn participa micca à u votu. In ogni casu, durante u ghjornu pò esse esecutatu da un votu di maiuranza. U ghjattu pò attaccà in dui maneri: purr - è tandu a so vittima s'addormenta è ùn pò micca marchjà di notte, è ùn pò micca vutà u ghjornu dopu - o tumbà ghjustu cù artigli di ferru. Attaccà cù unghie ùn funziona micca nantu à u Snake-Gorynych, è dopu à attaccà à Leshy, u Gattu pò esse lasciatu senza unghie! Dashing ùn pò micca maledicà u Gattu, chì dopu à a malidizzione dorme solu per una notte. Se qualchissia riesce à scunfighja Kota-Bayun, serà guaritu da ogni malatia o malatia, cumpresa a maledizione di Likh. Questa capacità Cat ferma cù u ghjucatore finu à a fine di u ghjocu. I servitori di Koshchei ùn ponu micca votu per u Gattu durante u ghjornu, ma ponu scopre indirettamente quale hè u Gattu senza avè infurmatu à Koshchei. Kot-Bayun ùn entra in alleanze cù Ivan o i Robbers, cusì sò u scopu primariu di Kot.

Tecnulugia aduprate

Per scrive u ghjocu, aghju sceltu a tecnulugia di l'informatica senza servitore basatu nantu à OpenFaaS, postu chì hè abbastanza simplice per urganizà u ghjocu, è à u stessu tempu avanzatu abbastanza per scrive regule di ghjocu cumplessu senza cumplicazioni innecessarii. Aduprà ancu un cluster Kubernetes, postu chì stu metudu di implementazione di l'applicazioni rende abbastanza simplice è affidabile per ottene una implementazione rapida è a capacità di scala facilmente. Per creà a logica di u ghjocu, pudete solu fà cù OpenFaaS, ma ancu pruvà à fà u Storyteller cum'è un containeru separatu per paragunà a cumplessità di l'implementazione. Cum'è a lingua di prugrammazione principale per i microservizii è e funzioni, aghju sceltu Go, Siccomu l'aghju studiatu per un bellu pezzu in u mo tempu liberu per rimpiazzà Perl, è js serà utilizatu basatu annantu à un certu framework per l'interazzione di l'utilizatori cù i microservizii è e funzioni. Vi dicu nantu à a decisione finale in l'articulu currispundente in a serie. Per cumunicà e funzioni cù l'altri, aghju sceltu NATS.io, perchè l'avia digià scontru prima, è hà una integrazione abbastanza faciule in Kubernetes.

Avvisu

  • Introduzione
  • Stabbilimentu di l'ambienti di sviluppu, scumpressendu u compitu in funzioni
  • U travagliu di backend
  • U travagliu di frontend
  • A creazione di CICD, urganizazione di teste
  • Cumincià una sessione di ghjocu di prova
  • Risultati

Source: www.habr.com

Add a comment