"Epiki Ġodda". Għal devs, ops u nies kurjużi

"Epiki Ġodda". Għal devs, ops u nies kurjużi

Minħabba talbiet numerużi mill-qarrejja, serje kbira ta 'artikoli qed tibda dwar l-użu tat-teknoloġija tal-kompjuters mingħajr server biex tiżviluppa applikazzjoni reali. Dan iċ-ċiklu se jkopri l-iżvilupp, l-ittestjar u t-twassil tal-applikazzjoni lill-utenti finali bl-użu ta’ għodod moderni: arkitettura tal-applikazzjoni ta’ mikroservizz (f’verżjoni bla server, ibbażata fuq OpenFaaS), cluster kubernetes għall-iskjerament tal-applikazzjoni, database MongoDB, iffokat fuq clustering u applikazzjoni tas-sħab, kif ukoll bus bus NATS. L-applikazzjoni timplimenta l-logħba "Epics", waħda mill-varjanti tal-logħba popolari parlor "Mafja".

X'inhuma "Epics"?

Din hija varjant tal-logħba "Mafja", magħrufa wkoll bħala "Werewolf". Hija bbażata fuq logħba tat-tim li fiha l-parteċipanti jridu jitgħallmu pass pass min hu min u jippruvaw jirbħu. Sfortunatament, meta tilgħab online, komponent importanti tal-logħba bħall-interazzjoni personali jisparixxi, u r-regoli tal-"Mafja" klassika huma pjuttost sempliċi, għalhekk, għal gameplay aktar mhux lineari u interessanti, karattri oħra huma ġeneralment miżjuda, iżda b'mod ġenerali l-karatteristiċi ewlenin tal-"Mafja" oriġinali huma ppreservati, pereżempju, il-bidla tal-ġurnata u tal-lejl, tiċċaqlaq biss bil-lejl, kif ukoll alleanzi bejn il-parteċipanti. Differenza oħra importanti bejn il-logħob online hija li l-host (magħruf ukoll bħala Game Master, Storyteller) huwa normalment programm tal-kompjuter.

Deskrizzjoni tal-logħba

Ir-regoli tal-logħba li nixtieq nimplimenta huma meħuda minn bot irc antik li salvajt fl-arkivju personali tiegħi madwar 10 snin ilu. "Epics" għandhom storja ta' wara li biha tibda kull logħba:

Fis-saltna mbiegħda, fit-tletin stat, lil hinn mis-seba’ ibħra, għexu u għexu diversi rħula, u fihom Sħabi tajbin и Nisa sbieħ. Żergħu l-ħobż u marru fil-foresta tal-madwar biex jiġbru faqqiegħ u berries... U dan kompla minn seklu għal seklu, sakemm katastrofi terribbli heżżet id-Dinja u l-ħażen beda jinfirex mad-dinja kollha! L-iljieli saru twal u kesħin, u fid-dlam, ħlejjaq ħżiena u terribbli daħlu fil-foresta u daħlu fir-raħal. Wasal minn xi mkien Dragun u daħlet fil-vizzju li jisirqu xebba l-Ħomor u jneħħu dak kollu ta’ valur mingħand ir-raħħala. Ta 'ħsara u greedy Baba Yaga, li tellgħu fuq mehries minn foresti imbiegħda, ħawwad l-imħuħ tal-abitanti, u anke xi wħud ċedew l-inġenji tagħhom u marru fil-foresta biex jisirqu, u jiffurmaw gang hemmhekk. Il-villains iltaqgħu Goblin, li kien jaf kif jinbidel f'siġar u arbuxxelli, beda jimmonitorja r-raħħala paċifiċi u jaqdi lill-ħallelin, billi xamm jekk il-Belli Tajba kinux f'xi ħaġa biex jeħilsu l-insedjamenti tagħhom mill-ispirti ħżiena. Sħabi tajbin u xebba sbieħ, għajjien mir-rejds tal-ħallelin, u mwiet terribbli f'idejn il-terribbli Dashing One-Eyed, ġabar id-deheb u stieden wrestler famuż minn belt ġirien - Ivan Tsarevich, li wiegħed li r-raħal jeħles mill-ħallelin. Fi clearing fil-foresta, Ivan salva minn mewta ċerta Lupu Griż, li waqgħu fin-nassa tal-ħofra tal-Ħellielin. Bi tpattija, il-Lupu wiegħed li jinforma lit-Tsarevich dwar diversi spirti ħżiena tal-foresti. Healer famuż għadda Vasilisa l-Għorrief, u meta rat l-inkwiet, baqgħet infermiera lir-residenti li kienu sofrew mill-attakki ta’ dawk li jġorru. Wara l-foresta deher palazz iswed, li fih, skond xnigħat, huwa stabbilixxa Koschei the Deathless, kull lejl kien iżur l-irħula u jsawwar lill-Bniedem u s-Xebba l-Ħomor biex ma jażżardux ma jobdux l-ordnijiet tiegħu, kienu jagħmlu kollox kif qal hu. U stabbiliet fil-Foresti Lifeless Cat Baiyun, u kull min iltaqa miegħu rieqed wara l-ħrejjef tiegħu jew miet minn dwiefer tal-ħadid tiegħu.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Far Far Away renju

Kif diġà tistgħu taraw, il-plejers huma maqsuma f'diversi gruppi:

  • ċivili (Good Fellows, Red Maidens, Ivan Tsarevich, Grey Wolf u Vasilisa the Wise)
  • ħallelin (il-ħallelin infushom, kif ukoll Baba Yaga u Leshy)
  • indipendenti (Snake-Gorynych, Dashing One-Eyed, Frog Princess, Koschey the Immortal, Cat-Bayun)

L-għan tal-logħba, kif imsemmi hawn fuq, huwa li tibqa 'ħajja u tirbaħ. L-avversarji jridu jħallu l-logħba b'xi mod jew ieħor, u l-indipendenti għandhom ukoll jibqgħu ħajjin sa tmiem il-logħba. Il-logħba għandha deheb, tip ta 'munita tal-logħob li l-plejers jaqilgħu biss fil-logħba. Ir-rebbieħa jirċievu deheb. L-aktar deheb, l-ogħla klassifikazzjoni tal-plejer.

Se nitkellem fi ftit aktar dettall fuq id-deskrizzjoni tal-karattri.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Sħabi tajjeb

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Xebba Ħamra

Sħabi tajjeb и Xebba Ħamra - ir-rwol l-aktar mifrux u ewlieni fil-logħba. Dawn huma nies ċivili li jorqdu bil-lejl u jaħdmu matul il-ġurnata. Bil-lejl huma attakkati minn wieħed mill-ħallelin, is-Serpent Gorynych u rwoli oħra, u Vasilisa l-Għorrief tfejjaqhom. B'xi probabbiltà żgħira, it-Tajjeb jew ix-Xebba l-Ħamra jistgħu jgħix mill-attakk mingħajr ħsara (possibilment jitlef id-deheb fil-proċess), madankollu, kulħadd jagħraf il-laqam tal-plejer l-għada wara l-attakk. Bil-lejl, dawn il-plejers ma jagħmlu l-ebda mossi, iżda janalizzaw is-sitwazzjoni tal-logħba bbażata fuq messaġġi fiċ-chat tal-logħba. Matul il-ġurnata, dawn il-plejers jiddeċiedu billi jivvutaw liema minnhom mhux il-Good Fellow jew ir-Red Maiden. Il-plejer ivvota għalih mill-maġġoranza tal-plejers l-oħra jħalli l-logħba, il-plejers li jifdal jirċievu jew jitilfu d-deheb. Jekk il-plejers ma jagħżlu lil ħadd b'vot ta' maġġoranza, l-ebda plejer ma jiġi eżegwit.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Ivan Tsarevich

Ivan Tsarevich - inizjalment difensur anonimu taċ-ċivili. Bil-lejl jiċċekkja r-rwoli ta 'plejers oħra, peress li jaf wieħed biss mill-alleat tiegħu - il-Gray Wolf. Bil-parteċipazzjoni diretta tal-Gray Wolf (li jista 'wkoll jiċċekkja r-rwoli ta' plejers oħra), Ivan Tsarevich, minflok jiċċekkja, jista 'joqtol karattru ieħor bil-lejl. Jekk, bħala riżultat tal-kontroll, Ivan Tsarevich jara r-rwol ta 'Sieħba Tajba jew Xebba Ħamra fi plejer, allura jista' jistidinhom f'postu u jintroduċihom lill-Lupu Griż u lil Fellows Tajba u Xebba Aħmar oħra. Ivan jista 'jiġi mfixkel mill-Prinċipessa taż-Żrinġ, li tista' tisseduċih bil-lejl, mingħajr ma tiżvela r-rwol tiegħu lil atturi oħra matul il-ġurnata. Jekk Ivan innifsu jiskopri l-Prinċipessa taż-Żrinġ, jista’ jistidinha biex tingħaqad maċ-ċivili, imma jekk il-Prinċipessa tirrifjuta, hi tmut f’idejn Ivan. Is-Serpent-Gorynych jista' wkoll jinterferixxi mal-kontrolli ta' Ivan-Tsarevich, iżda, b'differenza mill-Prinċipessa taż-Żrinġ, matul il-ġurnata se jgħid lill-plejers l-oħra liema minnhom huwa Ivan-Tsarevich. Matul il-ġurnata, Ivan Tsarevich mhux differenti minn Good Fellows oħra.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Lupu Griż

Lupu Griż - assistent ta' Ivan Tsarevich, li s-sens qawwi tax-xamm tiegħu jgħin lil Ivan isib Good Fellows u Red Maidens oħra. Grey Wolf jgħidlekx lil dawn il-plejers min hu Ivan the Tsarevich, u jinforma wkoll dwar plejers oħra bir-rwoli ta' Good Fellows u Red Maidens. Jekk il-Lupu jiskopri ħalliel jew ghadu ieħor, huwa immedjatament jinforma lil Ivan Tsarevich sabiex ikun jista’ jieħu azzjoni l-lejl ta’ wara. Jekk il-Lupu jiġi attakkat mill-Prinċipessa taż-Żrinġ, jinbidel fi Sħabu Tajjeb ordinarju u ma jistax jiċċekkja lil ħadd, u l-Prinċipessa ma tkunx taf li fil-fatt kien il-Lupu Griż, peress li l-Lupu ma jorqodx bil-lejl. Madankollu, il-Lupu nnifsu se jiskopri matul il-jum liema mill-plejers hija l-Prinċipessa taż-Żrinġ, u jista 'jipprova jipperswadi lill-bqija tal-Bieħi Tajba u l-Xubba Aħmar, li ġab lil Ivan Tsarevich, biex jivvutaw għall-eżekuzzjoni taż-Żrinġ. Prinċipessa. Ukoll il-lejl ta 'wara, jista' jipprova jipperswadi b'mod anonimu lill-Prinċipessa taż-Żrinġ fuq in-naħa taċ-ċivili sabiex ma tmissx lil xi ħadd minnhom. Il-Lupu jista’ jissagrifikaw lilu nnifsu bil-lejl biex isalva lil Ivan Tsarevich jew Vasilisa l-Għorrief, jekk jassumi li f’daqqa waħda jaqgħu taħt l-attakk tal-ħallelin, jew ikunu ġew zombifikati minn Koshchei (il-Lupu għandu immunità intrinsika għas-seħer ta’ Koshchei), iżda l- Wolf, wara s-sagrifiċċju, jitlaq mill-logħba.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Vasilisa l-Għorrief

Vasilisa l-Għorrief - jilgħab għaċ-ċivili, iżda ma jafux dwarha, peress li Vasilisa hija modesta ħafna. Ukoll, Vasilisa l-Għorrief, meta tittratta, ma tagħmilx mistoqsijiet u, bħal tabib tajjeb, tittratta lil kulħadd. Imma jekk Koschey, Likho jew Leshy jixorbu l-mediċina tagħha, ma jgħixux aktar minn ġurnata waħda, peress li Vasilisa tittratta lin-nies biss. Il-mediċina ta 'Vasilisa the Wise lanqas se tgħin lis-serp Gorynych jew lill-Cat-Bayun, iżda lanqas se jġibu ħsara. Ukoll, Kot-Bayun ma tmissx lil Vasilisa bil-lejl, peress li Vasilisa ma tmurx fil-Foresti Lifeless biex tixtri ħwawar mediċinali. Barra minn hekk, il-charms femminili tal-Prinċipessa taż-Żrinġ ma jaħdmux fuq Vasilisa. Kieku ppruvaw joqtlu lill-pazjent tagħha darbtejn, il-mediċina tkun bla saħħa. Vasilisa mhux se ssalvak minn attakki maġiċi, pereżempju mis-saħta Dashing. Matul il-ġurnata, Vasilisa ġġib ruħha bħal Xebba l-Ħamra, u ħarsa qasira u kemmxejn imdejqa biss tista’ tagħti ħjiel ftit li hi l-aqwa healer fir-Renju Far Far Away.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Diżonesti

Ħallelin, B'differenza mill-irwoli kollha preċedenti, jafu lil xulxin, peress li jgħixu fl-istess Lair, u jafu wkoll lil Leshy u Baba Yaga, sabiex ikunu jistgħu jaġixxu flimkien sa mill-ewwel mossa. Iżda l-Kap tal-gang biss jagħmel azzjonijiet bil-lejl u ma jivvotax matul il-jum, filwaqt li l-bqija tal-Ħellieqa b’diliġenza jippretendu li huma Good Fellows u Red Maidens. Jekk il-Leader iħalli l-logħba għal xi raġuni, wieħed mill-Rogues li fadal immedjatament jieħu postu. L-ewwelnett, il-Robers qed jippruvaw jiskonnettjaw lil Ivan it-Tsarevich sakemm ikun ġabar biżżejjed forzi minn Good Fellows u Red Maidens biex jiffaċċjaw b'mod attiv lill-Robers matul il-ġurnata.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Goblin

Goblin bil-lejl jispija għall-ħallelin, u jinfurmahom bir-rwoli li jinsabu fil-Lair tagħhom, iżda matul il-ġurnata ma jivvotax, peress li ma jgħix fir-raħal. Madankollu, plejers oħra jistgħu jivvutaw għal Leshy u b'hekk jesegwixxuh. Peress li l-Leshy ġej mill-swamps, ma jistax jiġi seduced mill-Prinċipessa taż-Żrinġ, u jekk jipprova, il-Leshy jimmarka d-dar tagħha, u r-raħħala jsiru jafu min hi verament. Leshem m'għandux jibża 'mill-espliċita ta' Koshchei, iżda Vasilisa tista 'tfejjaqh għall-mewt. Jekk Kot-Bayun jipprova jattakka lil Leshy, jirriskja li jitlef id-dwiefer tal-ħadid tiegħu, u mbagħad Kot ikollu jorqod lill-vittmi biss bil-purring tiegħu.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Baba Yaga

Baba Yaga Jaħdem ukoll flimkien mal-ħallelin u jitfa' perjodi bil-lejl: jista' jew jibgħat il-mard lil plejers oħra jew jipproteġi lil wieħed mill-alleati tiegħu mill-attakk. Is-sħaħar tagħha huwa saħansitra aktar b'saħħtu mis-saħta ta' Likh. Matul il-ġurnata, Baba Yaga hija wkoll attiva: xi ħadd taħt il-protezzjoni tagħha ma jistax jiġi eżegwit lanqas b'vot ta 'maġġoranza. Madankollu, il-provvista ta 'għeruq maġiċi għall-protezzjoni bi nhar hija limitata, għalhekk Baba Yaga ma tista' tipproteġi lil ħadd, inkluża lilha nfisha, aktar minn tliet darbiet għal kull logħba. Matul il-ġurnata, Baba Yaga tippretendi li hija Red Maiden ordinarja u tivvota ma 'kulħadd.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Dragun

Dragun bil-lejl itir fuq irħula, foresti u swamps u jinvolvi ruħu fis-serq, u jikxef ir-rwol tal-misruq matul il-jum. Matul il-ġurnata, is-Serpent jorqod, għalhekk ma jivvotax, iżda jista 'jiġi eżegwit b'vot ta' maġġoranza. Is-serp huwa perikoluż ħafna għal kulħadd, speċjalment għal Robbers u Ivan Tsarevich. Is-serp ma jimpurtahx minn min jisraq, imma jekk jiġi skopert mill-Lupu jew mill-Leshy, jista 'jsir alleat siewi. Jekk toqtol is-Snake bil-lejl, tista', b'ċerta probabbiltà, tirċievi oġġett siewi ħafna - is-Snake Skin, li tipproteġi lil sidha darba minn attakk fiżiku.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Dashing One-Eyed

Dashing One-Eyed bil-lejl joqtol lil kull min ifixkellu, u lil min ma jistax joqtol (Leshy, Kota-Bayun, jew is-Serpent Gorynych) jisħet, biex kull min jipprova jikkomunika mal-indannat dak il-lejl stess imut matul il-ġurnata. . Il-kundannat innifsu jmut ukoll f'dan il-każ, biss Kot-Bayun ma jmutx, li sempliċement imur jorqod biex jikseb is-saħħa, jaqbeż min-naħa tiegħu l-lejl ta 'wara. Baba Yaga biss jista 'jsalva lil Likh mis-saħta. Is-saħta ma taffettwax lil dak li għeleb lill-Cat-Bayun: hu, bħall-Qattus, sempliċement imur jorqod u jaqbeż dawra.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Prinċipessa Żrinġ

Prinċipessa Żrinġ ma jistax jirbaħ il-logħba, iżda jista' jaqla' ħafna flus billi jisseduċi plejers oħra bil-lejl. It-tentazzjoni jitlef imissu. Iż-Żrinġ ma tistax tissenja lil Vasilisa l-Għorrief, u għandha tevita wkoll lil Leshy, li l-għada se jittradiha lil kulħadd. Jekk Ivan the Tsarevich jew il-Mexxej tal-Ħelqlin isibu ż-Żrinġ, jistgħu jistiednu lin-nies ċivili jew lill-Ħelqa ma' ġenbhom, filwaqt li Ivan mhux se jaċċetta r-rifjut taż-Żrinġ, iżda l-Mexxej mhux daqshekk picky. Iżda l-Prinċipessa hija pjuttost cunning, tista 'ssir aġent doppju, għaliex minkejja l-fatt li ma tistax tirbaħ waħedha, dan huwa ċans eċċellenti biex tikseb id-deheb, minħabba li ċ-ċansijiet li jgħix sa tmiem il-logħba jiżdiedu ħafna! Matul il-ġurnata, il-Prinċipessa taż-Żrinġ tippretendi li hija l-Ħamra l-Ħamra u tivvota ma’ kulħadd flimkien.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Koschei the Deathless

Koschei the Deathless jgħix fil-kastell tiegħu. Bil-lejl, jimxi mill-irħula tal-madwar u jiżombifika lil Good Fellows u Red Maidens, li jidħlu fis-servizz tiegħu u bla dubju jwettqu l-ordnijiet kollha. Billi tirrifjuta li twettaq ordni, pereżempju, li tivvota matul il-ġurnata b'mod differenti minn dak li qal Koshchei, jew li tikteb messaġġi fiċ-chat matul il-ġurnata jekk Koshchei jipprojbixxiha, il-Qaddej ta 'Koshchei imut. Għalhekk, Koschey kapaċi jinfluwenza r-riżultati tal-votazzjoni matul il-ġurnata, minkejja li hu stess ma jivvotax. Jekk Koshchei jinqatel, il-vittmi kollha tiegħu jmutu wkoll. Vasilisa jista' jfejjaq lil Servant Koshchei, li mbagħad jerġa' lura għar-rwol oriġinali tiegħu. Is-Serp-Gorynych u l-Lupu għandhom immunità innata għaż-żombifikazzjoni, u għalhekk Koschey, irid kemm irid, ma jistax jibdilhom fis-servizz tiegħu. Il-Lupu jista 'wkoll jgħin lil Ivan jew Vasilisa mill-inkwiet billi jissagrifikaw lilu nnifsu. Saved by the Wolf jakkwista l-immunità tal-Lupu għal zombification.

"Epiki Ġodda". Għal devs, ops u nies kurjużi
Cat Baiyun

Cat Baiyun jgħix fil-foresta, jikkaċċa bil-lejl. Matul il-ġurnata jorqod fil-vojt tiegħu, u għalhekk ma jipparteċipax fil-votazzjoni. Madankollu, matul il-ġurnata jista’ jiġi eżegwit b’vot ta’ maġġoranza. Il-qattus jista’ jattakka b’żewġ modi: purr – u mbagħad il-vittma tiegħu torqod u ma jistax jimxi bil-lejl, u ma jistax jivvota l-għada – jew joqtol għal kollox b’dwiefer tal-ħadid. L-attakk bid-dwiefer ma jaħdimx fuq is-Snake-Gorynych, u wara li jattakka lil Leshy, il-qattus jista' jitħalla mingħajr dwiefer! Dashing ma jistax jisħet lill-Qattus, li wara s-saħta sempliċement jorqod għal lejl wieħed. Jekk xi ħadd jirnexxilu jegħleb lil Kota-Bayun, hu se jitfejjaq minn kwalunkwe marda jew marda, inkluża s-saħta ta 'Likh. Din il-ħila Cat tibqa' mal-plejer sa tmiem il-logħba. Il-qaddejja ta 'Koshchei ma jistgħux jivvutaw għall-Qattus matul il-ġurnata, iżda jistgħu indirettament isibu min hu l-Qattus mingħajr ma jinfurmaw lil Koshchei dwaru. Kot-Bayun ma jidħolx f'alleanzi ma' Ivan jew il-Ħelslin, għalhekk huma l-mira primarja għal Kot.

Teknoloġiji użati

Biex tikteb il-logħba, għażilt teknoloġija tal-kompjuters bla server ibbażata fuq OpenFaaS, peress li hija sempliċi biżżejjed biex torganizza l-logħba, u fl-istess ħin avvanzat biżżejjed biex tikteb regoli tal-logħob kumplessi mingħajr kumplikazzjonijiet bla bżonn. Se nuża wkoll cluster Kubernetes, peress li dan il-metodu ta 'skjerament ta' applikazzjonijiet jagħmilha pjuttost sempliċi u affidabbli biex tikseb skjerament veloċi u l-abbiltà li tiskala faċilment. Biex toħloq il-loġika tal-logħba, tista' tgħaddi biss b'OpenFaaS, imma jien se nipprova wkoll nagħmel l-Istoryteller bħala kontenitur separat biex tqabbel il-kumplessità tal-implimentazzjoni. Bħala l-lingwa ewlenija tal-ipprogrammar għall-mikroservizzi u l-funzjonijiet, għażilt Go, peress li ilni nistudjaha għal żmien twil fil-ħin liberu tiegħi biex nissostitwixxi Perl, u js se jintuża abbażi ta 'ċertu qafas għall-interazzjoni tal-utent ma' mikroservizzi u funzjonijiet. Jien ngħidlek dwar id-deċiżjoni finali fl-artiklu korrispondenti fis-serje. Biex nikkomunika funzjonijiet ma 'xulxin, għażilt NATS.io, għax kont diġà ltqajt miegħu qabel, u għandu integrazzjoni pjuttost faċli f'Kubernetes.

Avviż

  • Introduzzjoni
  • It-twaqqif tal-ambjent tal-iżvilupp, it-tqassim tal-kompitu f'funzjonijiet
  • Xogħol ta' backend
  • Xogħol frontend
  • It-twaqqif ta' CICD, l-organizzazzjoni tal-ittestjar
  • Ibda sessjoni ta' logħba ta' prova
  • Riżultati ta '

Sors: www.habr.com

Żid kumment