"Nouvo Epòk". Pou devs, ops ak moun kirye

"Nouvo Epòk". Pou devs, ops ak moun kirye

Akòz demann anpil nan lektè yo, yon seri gwo atik ap kòmanse sou itilizasyon teknoloji enfòmatik san sèvè pou devlope yon aplikasyon reyèl. Sik sa a pral kouvri devlopman aplikasyon, tès ak livrezon bay itilizatè final yo lè l sèvi avèk zouti modèn: achitekti aplikasyon mikwosèvis (nan yon vèsyon san sèvè, ki baze sou OpenFaaS), grap gouvènè pou deplwaman aplikasyon, baz done MongoDB, konsantre sou gwoup nwaj ak aplikasyon, osi byen ke otobis nwaj NATS. Aplikasyon an aplike jwèt la "Epics", youn nan varyant yo nan jwèt la salon popilè "Mafya".

Ki sa ki "Epics"?

Sa a se yon variant nan jwèt la "Mafya", ke yo rele tou "Lougarou". Li baze sou yon jwèt ekip kote patisipan yo dwe aprann etap pa etap ki moun ki epi eseye genyen. Malerezman, lè w ap jwe sou entènèt, yon eleman enpòtan nan jwèt la tankou entèraksyon pèsonèl disparèt, ak règ yo nan "Mafya" klasik yo byen senp, Se poutèt sa, pou yon jeu plis ki pa lineyè ak enteresan, lòt karaktè yo anjeneral ajoute, men an jeneral, karakteristik prensipal yo nan orijinal "Mafya" yo konsève, pou egzanp, chanjman nan lajounen kou lannwit, deplase sèlman nan mitan lannwit, osi byen ke alyans ant patisipan yo. Yon lòt diferans enpòtan ant jwe sou entènèt se ke lame a (aka Game Master, Storyteller) se nòmalman yon pwogram òdinatè.

Deskripsyon jwèt

Règ jwèt la ke mwen vle aplike yo pran nan yon ansyen bot irc ke mwen te sove nan achiv pèsonèl mwen sou 10 ane de sa. "Epics" gen yon istwa ak ki chak jwèt kòmanse:

Nan wayòm ki byen lwen, nan trantyèm eta a, pi lwen pase sèt lanmè yo, plizyè ti bouk t ap viv e yo t ap viv, epi nan yo. Bon zanmi и Bèl fi. Yo te simen pen epi yo te ale nan forè ki antoure a pou yo ranmase dyondyon ak bè... E sa te kontinye de syèk an syèk, jiskaske yon katastwòf terib souke Latè ak sa ki mal te kòmanse gaye nan tout mond lan! Nwit yo te vin long ak frèt, ak nan fè nwa a, bèt mechan ak terib te prowled forè a ak moute desann nan vilaj la. Te rive soti yon kote Dragon epi yo te pran abitid vòlè jenn fi Wouj yo ak pran tout bagay ki gen anpil valè nan men vilaj yo. Danjere ak visye Baba Yaga, ki te vole sou yon mòtye soti nan forè byen lwen, konfonn lespri yo nan moun ki rete, e menm kèk te abandone navèt yo epi yo te ale nan forè a vòlè, fòme yon gang la. Mechan yo te rankontre Goblin, ki moun ki te konnen ki jan yo vire nan pye bwa ak touf, li te kòmanse kontwole vilaj lapè ak sèvi vòlè yo, sniff soti si Good Fellows yo te jiska yon bagay yo debarase koloni yo nan move lespri. Bon zanmi ak bèl jenn fi, fatige ak atak vòlè yo, ak lanmò terib nan men terib yo. Dashing One-Eyed, kolekte lò ak envite yon luteur pi popilè nan yon vil vwazen - Ivan Tsarevich, ki moun ki te pwomèt yo debarase vilaj la nan vòlè. Nan yon netwaye nan forè a, Ivan sove soti nan lanmò sèten Wolf gri, ki moun ki te tonbe nan pèlen an twou nan vòlè yo. An retou, Wolf a te pwomèt pou enfòme Tsarevich la sou divès kalite move lespri forè. Yon geriseuz pi popilè te pase Vasilisa ki gen bon konprann, epi lè li te wè pwoblèm, li te rete enfimyè rezidan yo ki te soufri nan atak yo nan moun ki briyan yo. Dèyè forè a te parèt yon palè nwa, nan ki, dapre rimè, li te rete Koschei ki san lanmò, chak swa li te vizite vilaj yo e li te enchante Bon Janm ak Jenn Wouj yo pou yo pa oze dezobeyi lòd li yo, yo ta fè tout sa li te di. Epi li rete nan forè a san vi Chat Baiyun, ak tout moun ki te rankontre l 'te dòmi apre istwa li yo oswa mouri anba grif fè l' yo.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Byen lwen Peyi Wa ki

Kòm ou ka deja wè, jwè yo divize an plizyè gwoup:

  • sivil (Bon Kamarad, Jenn Wouj, Ivan Tsarevich, Grey Wolf ak Vasilisa ki gen bon konprann)
  • vòlè (vòlè yo tèt yo, osi byen ke Baba Yaga ak Leshy)
  • endepandan (Snake-Gorynych, Dashing One-Eyed, Frog Princess, Koschey imòtèl la, Cat-Bayun)

Objektif jwèt la, jan mansyone pi wo a, se rete vivan epi genyen. Opozan yo dwe kite jwèt la yon fason oswa yon lòt, epi endepandan yo dwe rete vivan tou jouk nan fen jwèt la. Jwèt la gen lò, yon kalite lajan jwèt ke jwè yo touche sèlman nan jwèt la. Ganyan yo resevwa lò. Plis lò, se pi wo nòt jwè a.

Mwen pral rete nan yon ti kras plis detay sou deskripsyon an nan karaktè yo.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Bon parèy

"Nouvo Epòk". Pou devs, ops ak moun kirye
Wouj jenn fi

Bon parèy и Wouj jenn fi - wòl ki pi gaye ak prensipal nan jwèt la. Sa yo se sivil ki dòmi nan mitan lannwit ak travay lajounen. Nan mitan lannwit yo atake pa youn nan vòlè yo, Gorynych a sèpan ak lòt wòl, ak Vasilisa ki gen bon konprann geri yo. Avèk kèk ti pwobabilite, Bon Kamarad la oswa Jenn fi Wouj la ka siviv atak la san domaj (pètèt pèdi lò nan pwosesis la), sepandan, tout moun pral rekonèt tinon jwè a jou kap vini apre atak la. Nan mitan lannwit, jwè sa yo pa fè okenn mouvman, men analize sitiyasyon an jwèt ki baze sou mesaj nan chat nan jwèt. Pandan jounen an, jwè sa yo deside lè yo vote kiyès nan yo ki pa Bon Kamarad la oswa jenn fi wouj la. Jwè a te vote pou pa majorite lòt jwè yo kite jwèt la, rès jwè yo resevwa oswa pèdi lò. Si jwè yo pa chwazi pèsonn pa vòt majorite, pa gen okenn jwè ap egzekite.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Ivan Tsarevich

Ivan Tsarevich - okòmansman yon defandè anonim sivil yo. Nan mitan lannwit li tcheke wòl yo nan lòt jwè yo, depi li konnen sèlman youn nan alye li - Wolf la gri. Avèk patisipasyon dirèk Grey Wolf (ki ka tcheke tou wòl lòt jwè yo), Ivan Tsarevich, olye pou yo tcheke, ka touye yon lòt karaktè nan mitan lannwit. Si, kòm yon rezilta nan chèk la, Ivan Tsarevich wè wòl nan yon bon parèy oswa yon jenn fi wouj nan yon jwè, Lè sa a, li ka envite yo nan plas li epi prezante yo nan Wolf Gri a ak lòt bon zanmi ak jenn fi wouj. Ivan ka entèfere ak Frog Princess la, ki moun ki ka sedui l 'nan mitan lannwit, san yo pa revele wòl li bay lòt jwè pandan jounen an. Si Ivan tèt li dekouvri Princess Frog la, li ka envite l pou l rantre nan sivil yo, men si Princess la refize, li mouri nan men Ivan. Sèpan-Gorynych la kapab tou entèfere ak chèk Ivan-Tsarevich a, men, kontrèman ak Frog Princess la, pandan jounen an li pral di lòt jwè yo kilès nan yo se Ivan-Tsarevich. Pandan jounen an, Ivan Tsarevich pa diferan de lòt bon zanmi.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Chen mawon gri

Chen mawon gri - asistan Ivan Tsarevich, ki gen sans pike nan sant ede Ivan jwenn lòt bon zanmi ak jenn fi wouj. Grey Wolf di jwè sa yo ki moun Ivan Tsarevich la ye, epi tou li enfòme sou lòt jwè ki gen wòl Bon Fellows ak Red Maidens. Si Wolf a dekouvri yon vòlè oswa yon lòt lènmi, li imedyatman enfòme Ivan Tsarevich pou li ka pran aksyon pwochen lannwit lan. Si Wolf a atake pa Frog Princess la, li tounen yon bon parèy òdinè epi li pa ka tcheke sou nenpòt moun, ak Princess la pa pral konnen ke li te aktyèlman Wolf Gri a, depi Wolf a pa dòmi nan mitan lannwit. Sepandan, Wolf nan tèt li pral chèche konnen pandan jounen an kilès nan jwè yo se Frog Princess la, epi li ka eseye konvenk rès Bon zanmi yo ak Jenn Wouj yo, ke li mennen bay Ivan Tsarevich, pou yo vote pou ekzekisyon Krapo a. Princess. Epitou lannwit nan pwochen, li ka eseye anonimman konvenk Princess krapo a bò kote sivil yo pou li pa manyen okenn nan yo. Wolf a ka sakrifye tèt li nan mitan lannwit pou sove Ivan Tsarevich oswa Vasilisa ki gen bon konprann, si li sipoze ke yo pral toudenkou tonbe anba atak la nan vòlè, oswa yo te zonbifye pa Koshchei (lof la gen yon iminite natirèl nan cham Koshchei a), men apre yo fin. oto-sakrifis Wolf a gout soti nan jwèt la.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Vasilisa ki gen bon konprann

Vasilisa ki gen bon konprann - jwe pou sivil, men yo pa konnen sou li, depi Vasilisa trè modès. Epitou, Vasilisa ki gen bon konprann, lè li trete, pa poze kesyon epi, tankou yon bon doktè, trete tout moun. Men, si Koschey, Likho oswa Leshy bwè medikaman li yo, yo pa pral viv pi lontan pase yon jou, paske Vasilisa sèlman trete moun. Medikaman Vasilisa ki gen bon konprann pa pral ede tou koulèv Gorynych oswa Cat-Bayun, men yo pa pral pote mal tou. Epitou, Kot-Bayun pa manyen Vasilisa nan mitan lannwit, paske Vasilisa pa ale nan Forest San Viti pou achte remèd fèy medsin. Anplis de sa, cham yo fi nan Frog Princess la pa travay sou Vasilisa. Si yo te eseye touye pasyan li de fwa, medikaman yo t ap san fòs. Vasilisa pa pral sove ou anba atak majik, pou egzanp soti nan madichon an Dashing. Pandan jounen an, Vasilisa konpòte li tankou yon jenn fi Wouj, epi sèlman yon ti kras lapenn gade ka allusion yon ti kras ke li se pi bon geriseuz a nan Peyi Wa ki byen lwen.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Vòlè

Vòlè, Kontrèman ak tout wòl anvan yo, yo konnen youn ak lòt, depi yo ap viv nan menm Lair a, epi tou li konnen Leshy ak Baba Yaga, pou yo ka aji an konsè dwa depi premye mouvman an. Men, se sèlman Lidè gang nan ki fè aksyon nan mitan lannwit epi li pa vote pandan lajounen, pandan y ap rès vòlè yo ak dilijans pretann yo se Bon Kamarad ak Jenn Wouj. Si Lidè a kite jwèt la pou nenpòt rezon, youn nan Vakabon ki rete yo pran plas li imedyatman. Premye a tout, vòlè yo ap eseye enfim Ivan Tsarevich la jiskaske li te rasanble ase fòs nan men Good Fellows ak Red Maidens aktivman konfwonte vòlè yo pandan jounen an.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Goblin

Goblin nan mitan lannwit li espyon pou vòlè yo, enfòme yo sou wòl yo jwenn nan Tanwar yo, men pandan lajounen li pa vote, paske li pa abite nan vilaj la. Sepandan, lòt jwè yo ka vote pou Leshy epi konsa egzekite l '. Depi Leshy a soti nan marekaj yo, li pa ka sedwi pa Princess krapo a, epi si li eseye, Leshy a pral make kay li, ak vilaj yo pral chèche konnen ki moun li vrèman ye. Leshem pa ta dwe pè eple Koshchei a, men Vasilisa ka geri l 'nan lanmò. Si Kot-Bayun eseye atake Leshy, li riske pèdi grif fè li yo, epi Lè sa a, Kot pral oblije kalme viktim yo nan dòmi ak jis ronronye l 'yo.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Baba Yaga

Baba Yaga Li travay tou ansanm ak vòlè yo ak jete òneman nan mitan lannwit: li ka swa voye maladi bay lòt jwè oswa pwoteje youn nan alye li yo kont atak. Maji li pi fò menm pase madichon Likh la. Pandan jounen an, Baba Yaga aktif tou: nenpòt moun ki anba pwoteksyon li pa ka egzekite menm pa yon vòt majorite. Sepandan, rezèv la nan rasin majik pou pwoteksyon lajounen limite, kidonk Baba Yaga pa ka pwoteje nenpòt moun, ki gen ladan tèt li, plis pase twa fwa pou chak jwèt. Pandan jounen an, Baba Yaga pretann yo dwe yon jenn fi wouj òdinè epi li vote ak tout lòt moun.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Dragon

Dragon nan mitan lannwit li vole sou ti bouk, forè ak marekaj ak angaje yo nan vòl, revele wòl nan vòlè a pandan jounen an. Pandan jounen an, sèpan an dòmi, kidonk li pa vote, men li ka egzekite pa yon vòt majorite. Koulèv la trè danjere pou tout moun, espesyalman pou vòlè yo ak Ivan Tsarevich. Koulèv la pa pran swen ki moun li vòlè, men si Wolf a oswa Leshy a dekouvri li, li ka vin yon alye ki gen anpil valè. Si ou touye koulèv la nan mitan lannwit, ou ka, ak kèk pwobabilite, resevwa yon atik ki gen anpil valè - po a koulèv, ki pral pwoteje pwopriyetè li yon fwa kont atak fizik.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Dashing One-Eyed

Dashing One-Eyed nan mitan lannwit li touye tout moun ki jwenn nan wout li, ak nenpòt moun li pa ka touye (Leshy, Kota-Bayun, oswa Gorynych a sèpan) li madichon, pou nenpòt ki moun ki eseye kominike ak moun ki kondane a menm jou lannwit sa a ap mouri pandan lajounen. . Nan ka sa a, li menm kondane a mouri tou, se sèlman Kot-Bayun pa mouri, ki moun ki tou senpleman ale nan kabann nan jwenn fòs, sote vire l 'nan pwochen lannwit lan. Se sèlman Baba Yaga ki ka sove Likh soti nan madichon an. Madichon an pa afekte moun ki te bat Cat-Bayun la: li menm, tankou chat la, tou senpleman ale nan kabann ak sote yon vire.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Jwèt Princess krapo

Jwèt Princess krapo pa ka genyen jwèt la, men li ka touche anpil lajan nan sedui lòt jwè nan mitan lannwit. Moun ki tante a rate vire l. Krapo a pa ka sedui Vasilisa ki gen bon konprann, epi li ta dwe tou evite Leshy, ki moun ki pral trayi l 'bay tout moun jou kap vini an. Si Ivan Tsarevich la oswa lidè vòlè yo jwenn krapo a, yo ka envite sivil yo oswa vòlè yo bò kote yo, pandan y ap Ivan pa aksepte refi krapo a, men lidè a pa tèlman serye. Men, Princess la se byen atizan konn fè, li ka vin yon ajan doub, paske malgre lefèt ke li pa ka genyen pou kont li, sa a se yon chans ekselan jwenn lò, paske chans yo siviv nan fen jwèt la anpil ogmante! Pandan jounen an, Frog Princess la pretann yo se jenn fi wouj la epi vote ak tout moun ansanm.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Koschei ki san lanmò

Koschei ki san lanmò ap viv nan chato li a. Nan mitan lannwit, li mache nan tout ti bouk ki antoure yo ak zonbifye Good Fellows ak Wouj Maidens, ki vin nan sèvis li yo ak san dout egzekite tout lòd. Lè yo refize egzekite yon lòd, pou egzanp, vote pandan jounen an yon fason diferan pase sa ki te di pa Koshchei, oswa ekri mesaj nan chat la pandan jounen an si Koshchei te entèdi li, Sèvitè Koshchei a mouri. Kidonk, Koschey se kapab enfliyanse rezilta yo nan vòt pandan jounen an, menm si li menm li pa vote. Si yo touye Koshchei, tout viktim li yo mouri tou. Vasilisa ka geri sèvitè Koshchei, ki moun ki Lè sa a, retounen nan wòl orijinal li. Koulèv-Gorynych la ak Wolf a gen yon iminite natirèl nan zonbifikasyon, kidonk Koschey, kèlkeswa kantite li vle, pa ka tounen yo nan sèvis li. Wolf a ka ede Ivan oswa Vasilisa tou soti nan pwoblèm nan sakrifye tèt li. Sove pa Wolf a pran iminite Wolf nan zonbifikasyon.

"Nouvo Epòk". Pou devs, ops ak moun kirye
Chat Baiyun

Chat Baiyun ap viv nan forè a, lachas nan mitan lannwit. Pandan jounen an li dòmi nan twou li, kidonk li pa patisipe nan vòt. Sepandan, pandan jounen an, li ka egzekite pa yon vòt majorite. Chat la ka atake nan de fason: ronron - ak Lè sa a, viktim li tonbe nan dòmi epi li pa ka mache nan mitan lannwit, epi yo pa ka vote jou kap vini an - oswa touye kareman ak grif fè. Atake ak grif pa travay sou Snake-Gorynych la, epi apre atake Leshy, chat la ka rete san grif nan tout! Dashing pa ka madichon chat la, ki moun ki apre madichon an pral tou senpleman dòmi pou yon nwit. Si yon moun jere yo defèt Kota-Bayun, li pral geri nan nenpòt maladi oswa maladi, ki gen ladan madichon an nan Likh. Kapasite chat sa a rete ak jwè a jouk nan fen jwèt la. Sèvitè Koshchei yo pa ka vote pou chat la pandan jounen an, men yo ka endirèkteman chèche konnen kiyès chat la san yo pa enfòme Koshchei sou li. Kot-Bayun pa antre nan alyans ak Ivan oswa vòlè yo, kidonk yo se sib prensipal pou Kot.

Itilize teknoloji

Pou ekri jwèt la, mwen te chwazi teknoloji enfòmatik san sèvè ki baze sou OpenFaaS, paske li se senp ase yo òganize jwèt la, epi an menm tan an avanse ase yo ekri règ jwèt konplèks san konplikasyon nesesè. Mwen pral sèvi ak yon gwoup Kubernetes tou, paske metòd sa a pou deplwaye aplikasyon yo fè li byen senp epi serye pou jwenn deplwaman rapid ak kapasite nan echèl fasil. Pou kreye lojik jwèt la, ou ka sèlman jwenn ak OpenFaaS, men mwen pral eseye tou fè Storyteller la kòm yon veso separe pou konpare konpleksite aplikasyon an. Kòm lang prensipal pwogramasyon pou mikwosèvis ak fonksyon, mwen te chwazi Go, depi mwen te etidye li pou yon tan long nan tan lib mwen ranplase Perl, epi yo pral itilize js ki baze sou yon sèten kad pou entèraksyon itilizatè ak mikwosèvis ak fonksyon. Mwen pral di w sou desizyon final la nan atik ki koresponn lan nan seri a. Pou kominike fonksyon youn ak lòt, mwen te chwazi NATS.io, paske mwen te deja rankontre li anvan, epi li gen entegrasyon jistis fasil nan Kubernetes.

Anons

  • Entwodiksyon
  • Mete kanpe anviwònman devlopman, kraze travay la an fonksyon
  • Travay backend
  • Travay Frontend
  • Mete kanpe CICD, òganize tès yo
  • Kòmanse yon sesyon jwèt esè
  • Rezilta

Sous: www.habr.com

Add nouvo kòmantè