"Ný Epics". Fyrir devs, ops og forvitið fólk

"Ný Epics". Fyrir devs, ops og forvitið fólk

Vegna fjölmargra beiðna frá lesendum er stór röð greina að hefjast um notkun netþjónalausrar tölvutækni til að þróa raunverulegt forrit. Þessi lota mun fjalla um þróun forrita, prófanir og afhendingu til endanotenda með nútíma verkfærum: örþjónustuforritaarkitektúr (í netþjónslausri útgáfu, byggt á OpenFaaS), þyrping Kubernetes fyrir dreifingu forrita, gagnagrunn MongoDB, með áherslu á skýjaklasingu og notkun, auk skýjabíla NATS. Forritið útfærir leikinn „Epics“, eitt af afbrigðum hins vinsæla stofuleiks „Mafia“.

Hvað eru "Bylins"?

Þetta er afbrigði af leiknum "Mafia", einnig þekktur sem "Werewolf". Það byggir á hópleik þar sem þátttakendur verða að læra skref fyrir skref hver er hver og reyna að vinna. Því miður, þegar þú spilar á netinu, hverfur svo mikilvægur þáttur leiksins eins og persónuleg samskipti, og reglur klassísku „mafíunnar“ eru frekar einfaldar, þess vegna, fyrir ólínulegri og áhugaverðari spilun, er öðrum persónum venjulega bætt við, en almennt eru helstu eiginleikar upprunalegu "mafíunnar" varðveittir, til dæmis breyting á degi og nóttu, hreyfingar aðeins á nóttunni, sem og bandalög milli þátttakenda. Annar mikilvægur munur á því að spila á netinu er að gestgjafinn (aka Game Master, Storyteller) er venjulega tölvuforrit.

Lýsing leiksins

Leikreglurnar sem ég vil innleiða eru teknar úr gömlum irc botni sem ég vistaði í persónulegu skjalasafni mínu fyrir um 10 árum síðan. „Epics“ hafa baksögu sem hver leikur hefst með:

Í fjarlæga ríkinu, í þrítugasta ríkinu, handan höfin sjö, bjuggu og bjuggu nokkur þorp og í þeim Góðir félagar и Fallegar stelpur. Þeir sáðu brauði og fóru í skóginn í kring til að tína sveppi og ber... Og þetta hélt áfram frá öld til aldar, þar til skelfilegt stórslys skók jörðina og illskan fór að breiðast út um heiminn! Næturnar urðu langar og kaldar, og í myrkrinu gengu óvinsamlegar og hræðilegar verur um skóginn og ráfuðu inn í þorpið. Kom einhvers staðar frá Dreki og tók það í vana að stela rauðum meyjum og taka allt verðmætt af þorpsbúum. Skaðleg og gráðug Baba Yaga, sem flaug á steypuhræra úr fjarlægum skógum, ruglaði huga íbúanna, og jafnvel sumir hættu iðn sinni og fóru inn í skóginn til að ræna og mynduðu þar klíku. Illmennin hittust Goblin, sem kunni að breytast í tré og runna, byrjaði hann að fylgjast með friðsömum þorpsbúum og þjóna ræningjunum, þefa uppi hvort góðir félagar væru að gera eitthvað til að losa byggðir þeirra við illum öndum. Góðir félagar og fallegar meyjar, þreyttar á árásum ræningjanna og hræðileg dauðsföll af hendi hinna hræðilegu Snilldar eineygð, safnaði gulli og bauð frægum glímukappa frá nágrannaborg - Ivan Tsarevich, sem lofaði að losa þorpið við ræningja. Í rjóðri í skóginum bjargaði Ivan frá öruggum dauða Grár úlfur, sem féll í gryfjugildru Ræningjanna. Í staðinn lofaði Úlfurinn að upplýsa Tsarevich um ýmsa illa anda í skóginum. Frægur heilari fór framhjá Vasilisa hinn fróði, og þegar hún sá vandræði, dvaldi hún til að hjúkra íbúunum, sem höfðu orðið fyrir árásum hinna hrífandi. Á bak við skóginn birtist svört höll, þar sem hann settist að, samkvæmt sögusögnum Koschei hinn dauðalausi, á hverju kvöldi heimsótti hann þorpin og töfraði góða félagana og rauðu meyjarnar svo að þær þorðu ekki að óhlýðnast skipunum hans, þær gerðu allt eins og hann sagði. Og settist að í Líflausa skóginum Köttur Baiyun, ok sofnuðu allir, er honum hittu, eptir sögum hans eða dó af járnklóm hans.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Far Far Away ríki

Eins og þú sérð nú þegar er leikmönnum skipt í nokkra hópa:

  • óbreyttir borgarar (Good Fellows, Red Maidens, Ivan Tsarevich, Grey Wolf og Vasilisa the Wise)
  • ræningjar (ræningjarnir sjálfir, sem og Baba Yaga og Leshy)
  • óháður (Snake-Gorynych, Dashing One-Eyed, Frog Princess, Koschey the Immortal, Cat-Bayun)

Markmið leiksins, eins og áður segir, er að halda lífi og vinna. Andstæðingar verða að yfirgefa leikinn með einum eða öðrum hætti og sjálfstæðismenn verða einnig að halda lífi til leiksloka. Leikurinn hefur gull, eins konar leikjagjaldmiðil sem leikmenn vinna sér inn aðeins innan leiksins. Sigurvegararnir fá gull. Því meira gull, því hærra einkunn leikmannsins.

Ég ætla að fjalla aðeins nánar um lýsinguna á persónunum.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Góður náungi

"Ný Epics". Fyrir devs, ops og forvitið fólk
Rauð meyja

Góður náungi и Rauð meyja - útbreiddasta og aðalhlutverkið í leiknum. Þetta eru óbreyttir borgarar sem sofa á nóttunni og vinna á daginn. Á kvöldin verða þeir fyrir árás eins ræningjanna, höggormsins Gorynych og fleiri hlutverka, og Vasilisa fróði læknar þá. Með litlum líkum geta góði náunginn eða rauða meyjan lifað af árásina án skemmda (mögulega tapað gulli í því ferli), hins vegar munu allir kannast við gælunafn leikmannsins næsta dag eftir árásina. Á kvöldin gera þessir leikmenn engar hreyfingar heldur greina leikstöðuna út frá skilaboðum í leikspjallinu. Á daginn ákveða þessir leikmenn með því að kjósa hvor þeirra er ekki góði náunginn eða rauða meyjan. Leikmaðurinn sem meirihluti annarra leikmanna hefur kosið um yfirgefur leikinn, þeir sem eftir eru fá eða tapa gulli. Ef leikmenn velja engan með meirihluta atkvæða verður enginn leikmaður tekinn af lífi.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Ivan Tsarevich

Ivan Tsarevich - upphaflega nafnlaus verjandi óbreyttra borgara. Á kvöldin athugar hann hlutverk annarra leikmanna, þar sem hann þekkir aðeins einn bandamann sinn - gráa úlfinn. Með beinni þátttöku Gráa úlfsins (sem getur líka athugað hlutverk annarra leikmanna), getur Ivan Tsarevich, í stað þess að athuga, drepið aðra persónu á nóttunni. Ef, vegna ávísunarinnar, sér Ivan Tsarevich hlutverk góðs félaga eða rauðrar meyja í leikmanni, þá getur hann boðið þeim á sinn stað og kynnt þá fyrir gráa úlfnum og öðrum góðra félaga og rauðu meyjar. Froskaprinsessan getur truflað Ivan, sem getur tælt hann á kvöldin, án þess að opinbera hlutverk sitt fyrir öðrum leikmönnum á daginn. Ef Ivan sjálfur uppgötvar froskaprinsessuna getur hann boðið henni að ganga til liðs við óbreytta borgara, en ef prinsessan neitar þá deyr hún af hendi Ívans. The Serpent-Gorynych getur líka truflað ávísanir Ivan-Tsarevich, en ólíkt froskaprinsessunni mun hann á daginn segja hinum leikmönnunum hver þeirra er Ivan-Tsarevich. Á daginn er Ivan Tsarevich ekkert öðruvísi en aðrir góðir félagar.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Grár úlfur

Grár úlfur - Aðstoðarmaður Ivans Tsarevich, en næmt lyktarskyn hjálpar Ivan að finna aðra góða félaga og rauðu meyjar. Grey Wolf segir þessum leikmönnum hver Ivan the Tsarevich er og upplýsir einnig um aðra leikmenn með hlutverk Good Fellows og Red Maidens. Ef Úlfurinn uppgötvar ræningja eða annan óvin, lætur hann Ivan Tsarevich strax vita svo hann geti gripið til aðgerða næstu nótt. Ef froskaprinsessan ræðst á úlfinn breytist hann í venjulegan góða náunga og getur ekki athugað með neinn, og prinsessan mun ekki vita að þetta hafi í raun verið grái úlfurinn, þar sem úlfurinn sefur ekki á nóttunni. Hins vegar mun Úlfurinn sjálfur komast að því á daginn hver leikmannanna er froskaprinsessan og getur reynt að sannfæra restina af góðu félögunum og rauðu meyjunum, sem hann færði Ivan Tsarevich, til að greiða atkvæði um aftöku frosksins. Prinsessa. Einnig næstu nótt getur hann reynt að sannfæra froskaprinsessuna nafnlaust til hliðar óbreyttra borgara svo hún snerti ekki neinn þeirra. Úlfurinn getur fórnað sjálfum sér á nóttunni til að bjarga Ivan Tsarevich eða Vasilisa fróða, ef hann gerir ráð fyrir að þeir verði skyndilega undir árás ræningja, eða hafi verið uppvaknaðir af Koshchei (Úlfurinn hefur meðfædda friðhelgi fyrir heilla Koshchei), en eftir fórnfýsnin Úlfurinn fellur úr leik.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Vasilisa hinn fróði

Vasilisa hinn fróði - leikur fyrir óbreytta borgara, en þeir vita ekki um hana, þar sem Vasilisa er mjög hógvær. Einnig spyr Vasilisa hin fróða, þegar hún meðhöndlar, ekki spurninga og, eins og góður læknir, meðhöndlar alla. En ef Koschey, Likho eða Leshy drekka lyfið hennar, munu þau ekki lifa lengur en einn dag, þar sem Vasilisa meðhöndlar bara fólk. Lyf Vasilisa fróða mun heldur ekki hjálpa snáknum Gorynych eða Cat-Bayun, en þau munu heldur ekki valda skaða. Einnig snertir Kot-Bayun ekki Vasilisa á kvöldin, þar sem Vasilisa fer ekki í líflausa skóginn til að kaupa lækningajurtir. Að auki virka kvenkyns heillar froskaprinsessunnar ekki á Vasilisa. Ef þeir reyndu að drepa sjúklinginn hennar tvisvar, væru lyfin máttlaus. Vasilisa mun ekki bjarga þér frá töfrandi árásum, til dæmis frá Dashing bölvuninni. Á daginn hagar Vasilisa sér eins og rauð meyja og aðeins hverfult, örlítið sorglegt útlit getur gefið örlítið í skyn að hún sé besti læknarinn í Fjarlæga ríkinu.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Skúrkur

Ræningjar, ólíkt öllum fyrri hlutverkum, þekkjast þeir, þar sem þeir búa í sama bæli, og þekkja einnig Leshy og Baba Yaga, svo þeir geta leikið á tónleikum strax frá fyrstu hreyfingu. En aðeins leiðtogi gengisins framkvæmir aðgerðir á kvöldin og kýs ekki á daginn, á meðan hinir ræningjarnir þykjast af kostgæfni vera góðir félagar og rauðar meyjar. Ef leiðtoginn yfirgefur leikinn af einhverjum ástæðum tekur einn af Rogues sem eftir eru strax í hans stað. Í fyrsta lagi eru ræningjarnir að reyna að gera Ivan Tsarevich óvirkan þar til hann hefur safnað nægu herliði frá Good Fellows og Red Maidens til að taka virkan þátt í ræningjunum á daginn.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Goblin

Goblin á nóttunni njósnar hann fyrir ræningjana og upplýsir þá um hlutverkin sem finnast í bæli þeirra, en á daginn kýs hann ekki, þar sem hann býr ekki í þorpinu. Hins vegar geta aðrir leikmenn kosið Leshy og þannig tekið hann af lífi. Þar sem Leshy kemur úr mýrunum er ekki hægt að tæla hann af froskaprinsessunni og ef hann reynir mun Leshy merkja hús hennar og þorpsbúar komast að því hver hún er í raun og veru. Leshem ætti ekki að vera hræddur við álög Koshchei, en Vasilisa getur læknað hann til dauða. Ef Kot-Bayun reynir að ráðast á Leshy á hann á hættu að missa járnklærnar og þá verður Kot að vagga fórnarlömbin í svefn með því að grenja.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Baba Yaga

Baba Yaga Hann vinnur líka með ræningjunum og galdrar á nóttunni: hann getur annað hvort sent veikindi til annarra leikmanna eða verndað einn af bandamönnum sínum fyrir árásum. Galdrafræði hennar er jafnvel sterkari en bölvun Likh. Á daginn er Baba Yaga einnig virk: ekki er hægt að taka neinn undir verndarvæng hennar af lífi, jafnvel með meirihluta atkvæða. Hins vegar er framboð á töfrarótum fyrir dagvernd takmarkað, þannig að Baba Yaga getur ekki verndað neinn, þar á meðal sjálfa sig, oftar en þrisvar í leik. Á daginn þykist Baba Yaga vera venjuleg rauð meyja og kýs með öllum öðrum.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Dreki

Dreki á nóttunni flýgur hann yfir þorp, skóga og mýrar og stundar rán og sýnir hlutverk hins rænda á daginn. Á daginn sefur höggormurinn, svo hann greiðir ekki atkvæði, en hægt er að taka hann af lífi með meirihluta atkvæða. Snákurinn er mjög hættulegur öllum, sérstaklega fyrir ræningjana og Ivan Tsarevich. Snáknum er sama hverjum hann rænir, en ef Úlfurinn eða Leshy uppgötvar hann getur hann orðið dýrmætur bandamaður. Ef þú drepur snákinn á nóttunni geturðu, með einhverjum líkindum, fengið mjög verðmætan hlut - Snake Skin, sem mun vernda eiganda sinn einu sinni fyrir líkamlegum árásum.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Snilldar eineygð

Snilldar eineygð á næturnar drepur hann alla sem verða á vegi hans, og hvern sem hann getur ekki drepið (Leshy, Kota-Bayun eða Gorynych) bölvar hann, svo að hver sem reynir að eiga samskipti við hinn fordæmda sama nótt mun deyja á daginn . Sá fordæmdi sjálfur deyr líka í þessu tilfelli, aðeins Kot-Bayun deyr ekki, sem einfaldlega fer að sofa til að öðlast styrk, sleppir beygjunni næstu nótt. Aðeins Baba Yaga getur bjargað Likh frá bölvuninni. Bölvunin hefur ekki áhrif á þann sem sigraði Cat-Bayun: hann, eins og kötturinn, fer einfaldlega að sofa og sleppir beygju.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Prinsessa froskur

Prinsessa froskur getur ekki unnið leikinn, en hann getur unnið sér inn fullt af peningum með því að tæla aðra leikmenn á kvöldin. Sá sem freistaði missir af röðinni. Froskurinn getur ekki tælt Vasilisu fróða, og hún ætti líka að forðast Leshy, sem mun svíkja hana öllum næsta dag. Ef Ivan Tsarevich eða leiðtogi ræningjanna finna froskinn geta þeir boðið óbreyttum borgurum eða ræningjunum til sín, á meðan Ivan mun ekki samþykkja synjun frosksins, en leiðtoginn er ekki svo vandlátur. En prinsessan er frekar slæg, hún getur orðið tvöfaldur umboðsmaður, því þrátt fyrir að hún geti ekki unnið ein er þetta frábært tækifæri til að öðlast gull, því líkurnar á að lifa af til leiksloka aukast til muna! Á daginn þykist froskaprinsessan vera rauða meyjan og kýs með öllum saman.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Koschei hinn dauðalausi

Koschei hinn dauðalausi býr í kastalanum sínum. Á nóttunni gengur hann í gegnum þorpin í kring og gerir uppvakninga á Good Fellows og Rauðu meyjar, sem koma í þjónustu hans og framkvæma án efa allar skipanir. Með því að neita að framkvæma skipun, til dæmis að kjósa á daginn öðruvísi en Koshchei sagði, eða skrifa skilaboð á spjallið á daginn ef Koshchei bannaði það, deyr þjónn Koshchei. Þannig getur Koschey haft áhrif á niðurstöður atkvæðagreiðslna yfir daginn, þó hann sjálfur kjósi ekki. Ef Koshchei er drepinn deyja öll fórnarlömb hans líka. Vasilisa getur læknað þjóninn Koshchei, sem síðan snýr aftur í upprunalegt hlutverk sitt. Snake-Gorynych og Úlfurinn hafa meðfædda friðhelgi fyrir uppvakningi, svo Koschey, sama hversu mikið hann vill, getur ekki breytt þeim í þjónustu sína. Úlfurinn getur líka hjálpað Ivan eða Vasilisa út úr vandræðum með því að fórna sjálfum sér. Saved by the Wolf öðlast Wolf friðhelgi fyrir uppvakning.

"Ný Epics". Fyrir devs, ops og forvitið fólk
Köttur Baiyun

Köttur Baiyun býr í skóginum, veiðir á nóttunni. Á daginn sefur hann í dældinni sinni og tekur því ekki þátt í atkvæðagreiðslunni. Hins vegar er hægt að taka hann af lífi á daginn með meirihluta atkvæða. Kötturinn getur ráðist á tvo vegu: purr - og þá sofnar fórnarlamb hans og getur ekki gengið á nóttunni og getur ekki kosið daginn eftir - eða drepið beinlínis með járnklóm. Að ráðast með klærnar virkar ekki á Snake-Gorynych og eftir að hafa ráðist á Leshy getur kötturinn verið skilinn eftir án klærnar! Dashing getur ekki bölvað kettinum, sem eftir bölvunina mun einfaldlega sofa í eina nótt. Ef einhverjum tekst að sigra Kota-Bayun mun hann læknast af hvaða sjúkdómi eða sjúkdómi sem er, þar á meðal bölvun Likh. Þessi Cat hæfileiki er áfram hjá spilaranum til leiksloka. Þjónar Koshchei geta ekki kosið köttinn á daginn, en þeir geta óbeint fundið út hver kötturinn er án þess að upplýsa Koshchei um það. Kot-Bayun gengur ekki í bandalög við Ivan eða ræningjana, svo þeir eru aðal skotmark Kots.

Tækni notuð

Til að skrifa leikinn valdi ég netþjónalausa tölvutækni sem byggir á OpenFaaS þar sem hún er nógu einföld til að skipuleggja leikinn og á sama tíma nógu háþróuð til að skrifa flóknar leikreglur án óþarfa flækja. Ég mun líka nota Kubernetes þyrping, þar sem þessi aðferð við að dreifa forritum gerir það frekar einfalt og áreiðanlegt að fá hraðvirka dreifingu og getu til að skala auðveldlega. Til að búa til leikrökfræðina geturðu bara komist af með OpenFaaS, en ég mun líka reyna að búa til sögumanninn sem sérstakan ílát til að bera saman hversu flókin útfærslan er. Sem aðal forritunarmál fyrir örþjónustur og aðgerðir valdi ég Go, þar sem ég hef verið að læra það lengi í frítíma mínum að skipta um Perl, og js verður notað út frá ákveðnum ramma fyrir notendasamskipti við örþjónustur og aðgerðir. Ég mun segja þér frá lokaákvörðuninni í samsvarandi grein í seríunni. Til að hafa samskipti sín á milli valdi ég NATS.io, vegna þess að ég hafði þegar kynnst því áður, og það hefur frekar auðvelda samþættingu við Kubernetes.

Tilkynning

  • Inngangur
  • Að setja upp þróunarumhverfið, skipta verkefninu niður í aðgerðir
  • Bakendavinna
  • Framhlið vinna
  • Setja upp CICD, skipuleggja prófanir
  • Byrjaðu prufuleikjalotu
  • Niðurstöður

Heimild: www.habr.com

Bæta við athugasemd