"Epik Anyar". Kanggo devs, ops lan wong penasaran

"Epik Anyar". Kanggo devs, ops lan wong penasaran

Amarga akeh panjaluk saka para pamaca, seri akeh artikel wiwit nggunakake teknologi komputasi tanpa server kanggo ngembangake aplikasi nyata. Siklus iki bakal nyakup pangembangan aplikasi, tes lan pangiriman menyang pangguna pungkasan nggunakake piranti modern: arsitektur aplikasi microservice (ing versi tanpa server, adhedhasar OpenFaaS), kluster Kubernetes kanggo panyebaran aplikasi, database MongoDB, fokus ing kluster lan aplikasi awan, uga bis awan NATS. Aplikasi kasebut ngetrapake game "Epics", salah sawijining varian saka game parlor populer "Mafia".

Apa iku "Epics"?

Iki minangka varian saka game "Mafia", uga dikenal minangka "Werewolf". Iki adhedhasar game tim sing para peserta kudu sinau langkah demi langkah sapa lan nyoba menang. Sayange, nalika muter online, komponen penting saka game kaya interaksi pribadi ilang, lan aturan klasik "Mafia" cukup prasaja, mulane, kanggo urutane critane game liyane non-linear lan menarik, karakter liyane biasane ditambahake, nanging. umume fitur utama "Mafia" asli sing dilestarekake, contone, owah-owahan dina lan wengi, mung ing wayah wengi, uga aliansi antarane peserta. Liyane prabédan penting antarane muter online iku host (alias Game Master, Storyteller) biasane program komputer.

Katrangan game

Aturan game sing pengin daklaksanakake dijupuk saka bot irc lawas sing disimpen ing arsip pribadiku udakara 10 taun kepungkur. "Epik" duwe latar mburi sing saben game diwiwiti:

Ing karajan sing adoh, ing negara kaping telung puluh, ngluwihi pitung segara, sawetara desa urip lan manggon, lan ing kono. kanca apik и Bocah-bocah wadon ayu. Padha nyebar roti lan lunga menyang alas ing saubengé kanggo njupuk jamur lan woh wohan beri ... Lan iki terus saka abad nganti abad, nganti bilai elek nggegirisi Bumi lan piala wiwit nyebar ing saindenging jagad! Bengi dadi dawa lan adhem, lan ing peteng, makhluk sing ora sopan lan nggegirisi padha mlaku ing alas lan ngumbara menyang desa. Teka saka ngendi wae Naga lan dadi kebiasaan nyolong prawan Abang lan njupuk kabeh barang berharga saka warga. Mbebayani lan rakus Baba Yaga, sing mabur ing mortir saka alas adoh, bingung pikirane pedunung, malah sawetara nyerah pakaryan lan mlebu ing alas kanggo ngrampog, mbentuk gang ing kono. Wong jahat ketemu Goblin, sing ngerti carane dadi wit lan grumbulan, dheweke wiwit ngawasi wong-wong desa sing tentrem lan ngladeni para perampok, sniffing metu apa Fellows Good ana nganti soko kanggo nyisihaken pamukiman saka roh-roh jahat. Kanca-kanca sing apik lan prawan sing ayu, kesel karo serangan para perampok, lan pati sing nggegirisi ing tangane wong sing nggegirisi. Dashing Siji-Mripat, ngumpulake emas lan ngundang pegulat terkenal saka kutha tetanggan - Ivan Tsarevich, sing janji bakal nyingkirake rampog desa. Ing reresik ing alas, Ivan disimpen saka pati tartamtu Serigala Kelabu, sing tiba ing pit trap saka Begal. Ing bali, Wolf janji bakal ngandhani Tsarevich babagan macem-macem roh ala alas. Dukun kondhang liwat Vasilisa sing Wicaksana, lan nalika dheweke weruh alangan, dheweke nginep kanggo nyusoni warga sing nandhang sangsara marga saka serangan saka wong gagah. Ing mburi alas ana kraton ireng, ing ngendi, miturut gosip, dheweke manggon Koschei the Deathless, saben bengi dheweke dolan menyang desa-desa lan nyihir-nyihir para Kanca Bagus lan Prawan Abang supaya ora wani nerak dhawuhe, padha nindakake kabeh kaya sing diomongake. Lan mapan ing Hutan Tanpa Urip Kucing Baiyun, lan saben wong sing ketemu dheweke keturon sawise dongeng utawa mati saka cakar wesi.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Kerajaan Tebih Adoh

Nalika sampeyan bisa ndeleng, pemain dipérang dadi sawetara klompok:

  • sipil (Good Fellows, Red Maidens, Ivan Tsarevich, Grey Wolf lan Vasilisa the Wise)
  • perampok (perampok dhewe, uga Baba Yaga lan Leshy)
  • independen (Snake-Gorynych, Dashing One-Eyed, Frog Princess, Koschey the Immortal, Cat-Bayun)

Sasaran saka game, kaya kasebut ing ndhuwur, iku kanggo tetep urip lan menang. Mungsuh kudu ninggalake game siji utawa liyane, lan independen uga kudu tetep urip nganti pungkasan game. Game kasebut duwe emas, jinis mata uang game sing entuk pemain mung ing game kasebut. Sing menang nampa emas. Sing liyane emas, sing luwih HFS pamuter kang.

Aku bakal manggon ing sethitik liyane rinci ing gambaran saka karakter.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Wong apik

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Prawan Abang

Wong apik и Prawan Abang - peran paling nyebar lan utama ing game. Iki minangka warga sipil sing turu ing wayah wengi lan kerja ing wayah awan. Ing wayah wengi, dheweke diserang dening salah sawijining perampok, Serpent Gorynych lan peran liyane, lan Vasilisa the Wise nambani dheweke. Kanthi kemungkinan cilik, Good Fellow utawa Red Maiden bisa slamet saka serangan kasebut tanpa karusakan (bisa uga kelangan emas sajrone proses kasebut), nanging kabeh wong bakal ngerteni julukan pemain kasebut ing dina sabanjure sawise serangan kasebut. Ing wayah wengi, pemain kasebut ora nindakake gerakan apa wae, nanging nganalisa kahanan game adhedhasar pesen ing obrolan game. Ing wayah awan, para pemain kasebut mutusake kanthi milih sapa sing dudu Fellow sing apik utawa Red Maiden. Pamuter sing dipilih dening mayoritas pemain liyane ninggalake game, pemain isih nampa utawa ilang emas. Yen pemain ora milih sapa wae kanthi swara mayoritas, ora ana pemain sing bakal dieksekusi.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Ivan Tsarevich

Ivan Tsarevich - wiwitane minangka pembela warga sipil sing ora dingerteni. Ing wayah wengi, dheweke mriksa peran pemain liyane, amarga dheweke mung ngerti siji sekutune - Grey Wolf. Kanthi partisipasi langsung saka Gray Wolf (sing uga bisa mriksa peran pemain liyane), Ivan Tsarevich, tinimbang mriksa, bisa mateni karakter liyane ing wayah wengi. Yen, minangka asil saka mriksa, Ivan Tsarevich ndeleng peran saka Fellow apik utawa Red Maiden ing pemain, banjur bisa ngajak wong-wong mau menyang panggonan lan introduce menyang Grey Wolf lan Good Fellows lan Red Maidens. Ivan bisa diganggu dening Putri Kodhok, sing bisa ngarih-arih ing wayah wengi, tanpa mbukak peran kanggo pemain liyane ing wayah awan. Yen Ivan dhewe nemokake Putri Kodhok, dheweke bisa ngajak dheweke gabung karo warga sipil, nanging yen Putri ora gelem, dheweke mati ing tangane Ivan. Serpent-Gorynych uga bisa ngganggu pamriksan Ivan-Tsarevich, nanging, ora kaya Putri Kodhok, ing wayah awan dheweke bakal ngandhani pemain liyane sing dadi Ivan-Tsarevich. Ing wayah awan, Ivan Tsarevich ora beda karo Good Fellows liyane.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Serigala Kelabu

Serigala Kelabu - asisten kanggo Ivan Tsarevich, kang raos ngengkel mambu mbantu Ivan golek Fellows apik lan Red Maidens liyane. Grey Wolf ngandhani pemain kasebut sapa Ivan the Tsarevich, lan uga ngandhani babagan pemain liyane kanthi peran Good Fellows lan Red Maidens. Yen Wolf nemokake perampok utawa mungsuh liyane, dheweke langsung ngandhani Ivan Tsarevich supaya bisa tumindak ing wayah wengi. Yen Wolf diserang dening Putri Kodhok, dheweke dadi wong biasa sing apik lan ora bisa mriksa sapa wae, lan Putri ora bakal ngerti yen iku sejatine Wolf Grey, amarga Wolf ora turu ing wayah wengi. Nanging, Wolf dhewe bakal nemokake ing wayah awan, sapa pemain sing dadi Putri Kodhok, lan bisa nyoba kanggo mbujuk liyane saka Good Fellows lan Red Maidens, sing digawa menyang Ivan Tsarevich, kanggo milih eksekusi Frog. Putri. Uga ing wayah wengi sabanjure, dheweke bisa nyoba mbujuk Putri Kodhok kanthi anonim menyang sisih warga sipil supaya dheweke ora ndemek salah sijine. Serigala bisa ngorbanake awake dhewe ing wayah wengi kanggo nylametake Ivan Tsarevich utawa Vasilisa sing Wicaksana, yen dheweke nganggep yen dheweke bakal tiba ing serangan perampok, utawa wis dizombi dening Koshchei (Wong Serigala nduweni kekebalan bawaan kanggo pesona Koshchei), nanging sawise pengorbanan diri Wolf irungnya metu saka game.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Vasilisa sing Wicaksana

Vasilisa sing Wicaksana - muter kanggo sipil, nanging padha ora ngerti bab dheweke, amarga Vasilisa banget andhap asor. Kajaba iku, Vasilisa sing Wicaksana, nalika nambani, ora takon lan, kaya dokter sing apik, nambani kabeh wong. Nanging yen Koschey, Likho utawa Leshy ngombe obat, dheweke ora bakal urip luwih saka sedina, amarga Vasilisa mung nambani wong. Obat saka Vasilisa the Wise uga ora bakal nulungi ula Gorynych utawa Cat-Bayun, nanging uga ora bakal nyebabake cilaka. Kajaba iku, Kot-Bayun ora ndemek Vasilisa ing wayah wengi, amarga Vasilisa ora menyang Alas Ora Ana kanggo tuku jamu. Kajaba iku, pesona wadon saka Putri Kodhok ora bisa digunakake ing Vasilisa. Yen dheweke nyoba mateni pasiene kaping pindho, obat bakal ora ana daya. Vasilisa ora bakal nylametake sampeyan saka serangan gaib, umpamane saka kutukan Dashing. Ing wayah awan, Vasilisa tumindak kaya Gadis Abang, lan mung katon sedhih, rada sedih, bisa menehi tandha manawa dheweke minangka dukun sing paling apik ing Kerajaan Adoh.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Rogue

Perampok, Boten kados kabeh peran sadurungé, padha ngerti saben liyane, wiwit padha manggon ing Lair padha, lan uga ngerti Leshy lan Baba Yaga, supaya padha bisa tumindak ing konser tengen saka pamindhahan pisanan. Nanging mung Pimpinan geng sing tumindak ing wayah wengi lan ora milih ing wayah awan, dene para perampok liyane sregep nyamar dadi Wong Apik lan Prawan Abang. Yen Pemimpin ninggalake game kanggo alesan, salah siji Rogues isih langsung njupuk Panggonan. Kaping pisanan, para perampok nyoba mateni Ivan the Tsarevich nganti dheweke wis nglumpukake pasukan sing cukup saka Good Fellows lan Red Maidens kanggo aktif ngadhepi perampok ing wayah awan.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Goblin

Goblin ing wayah wengi dheweke telik kanggo Perampok, ngandhani babagan peran sing ditemokake ing Lair, nanging ing wayah awan dheweke ora milih, amarga dheweke ora manggon ing desa. Nanging, pemain liyane bisa milih Leshy lan kanthi mangkono ngeksekusi dheweke. Amarga Leshy asale saka rawa-rawa, dheweke ora bisa digoda dening Putri Kodhok, lan yen dheweke nyoba, Leshy bakal menehi tandha omahe, lan wong-wong desa bakal ngerti sapa sejatine dheweke. Leshem ora kudu wedi karo mantra Koshchei, nanging Vasilisa bisa nambani dheweke nganti mati. Yen Kot-Bayun nyoba kanggo nyerang Leshy, kang resiko bakal kelangan cakar wesi, lan banjur Kot kudu lull korban kanggo turu mung karo purring.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Baba Yaga

Baba Yaga Dheweke uga bisa bebarengan karo Robbers lan mantra ing wayah wengi: bisa ngirim penyakit kanggo pemain liyane utawa nglindhungi salah siji saka allies saka serangan. Sihir dheweke malah luwih kuat tinimbang kutukan Likh. Ing wayah awan, Baba Yaga uga aktif: sapa wae sing dilindhungi dheweke ora bisa dieksekusi sanajan kanthi swara mayoritas. Nanging, sumber sihir kanggo proteksi awan diwatesi, mula Baba Yaga ora bisa nglindhungi sapa wae, kalebu awake dhewe, luwih saka kaping telu saben game. Ing wayah awan, Baba Yaga nyamar dadi Gadis Merah biasa lan milih karo wong liya.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Naga

Naga ing wayah wengi dheweke mabur liwat desa, alas lan rawa lan melu rampokan, ngungkapake peran sing dirampok ing wayah awan. Ing wayah awan, Ula turu, mula dheweke ora milih, nanging bisa dieksekusi kanthi swara mayoritas. Ula kasebut mbebayani banget kanggo kabeh wong, utamane kanggo Perampok lan Ivan Tsarevich. Ula ora preduli sapa sing dirampok, nanging yen ditemokake dening Wolf utawa Leshy, dheweke bisa dadi sekutu sing terkenal. Yen sampeyan mateni Snake ing wayah wengi, sampeyan bisa, kanthi sawetara kemungkinan, nampa barang sing terkenal banget - Snake Skin, sing bakal nglindhungi pemilike saka serangan fisik.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
misuwur mripat siji

misuwur mripat siji ing wayah wengi dheweke mateni saben wong sing ngganggu dalane, lan sapa wae sing ora bisa dipateni (Leshy, Kota-Bayun, utawa Serpent Gorynych) dheweke ngipat-ipati, supaya sapa wae sing nyoba komunikasi karo wong sing dikutuk ing bengi sing padha bakal mati ing wayah awan. . Sing dikutuk dhewe uga mati ing kasus iki, mung Kot-Bayun ora mati, sing mung turu kanggo entuk kekuwatan, mlumpat giliran ing wayah wengi. Mung Baba Yaga sing bisa nylametake Likh saka kutukan. Kutukan ora mengaruhi wong sing ngalahake Kucing-Bayun: dheweke, kaya Kucing, mung turu lan mlumpat.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Putri Kodhok

Putri Kodhok ora bisa menang game, nanging bisa entuk akèh dhuwit dening seducing pemain liyane ing wayah wengi. Sing digodha kantun giliran. Kodhok ora bisa ngarih-arih Vasilisa sing Wicaksana, lan dheweke uga kudu nyingkiri Leshy, sing bakal ngulungake dheweke kanggo kabeh wong ing dina sabanjure. Yen Ivan the Tsarevich utawa Pemimpin Perampok nemokake Kodhok, dheweke bisa ngundang warga sipil utawa Perampok menyang sisihane, dene Ivan ora bakal nampa penolakan Kodhok, nanging Pemimpin ora pilih-pilih. Nanging Putri cukup licik, dheweke bisa dadi agen ganda, amarga senadyan kasunyatane dheweke ora bisa menang piyambak, iki minangka kesempatan sing apik kanggo entuk emas, amarga kemungkinan urip nganti pungkasan game saya tambah akeh! Ing wayah awan, Putri Kodhok nyamar dadi Prawan Abang lan milih karo kabeh wong.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Koschei the Deathless

Koschei the Deathless manggon ing puri. Ing wayah wengi, dheweke mlaku-mlaku ing desa-desa ing saubengé lan ngubengi Good Fellows lan Red Maidens, sing teka ing layanan lan tanpa pitakonan nindakake kabeh pesenan. Kanthi nolak nindakake pesenan, contone, milih ing wayah awan beda karo sing dicritakake Koshchei, utawa nulis pesen ing obrolan ing wayah awan yen Koshchei nglarang, Abdi Koshchei mati. Mangkono, Koschey bisa mengaruhi asil voting ing wayah awan, sanajan dheweke dhewe ora milih. Yen Koshchei dipateni, kabeh korbane uga mati. Vasilisa bisa nambani Abdi Koshchei, sing banjur bali menyang peran asline. Snake-Gorynych lan Wolf duwe kakebalan bawaan kanggo zombification, supaya Koschey, ora ketompo carane akeh sing dikarepake, ora bisa nguripake menyang layanan. Serigala uga bisa nulungi Ivan utawa Vasilisa saka masalah kanthi ngorbanake awake dhewe. Disimpen dening Wolf entuk kakebalan Wolf kanggo zombifikasi.

"Epik Anyar". Kanggo devs, ops lan wong penasaran
Kucing Baiyun

Kucing Baiyun manggon ing alas, mburu ing wayah wengi. Ing wayah awan dheweke turu ing kothong, mula ora melu milih. Nanging, ing wayah awan dheweke bisa dieksekusi kanthi swara mayoritas. Kucing bisa nyerang kanthi rong cara: purr - banjur korbane turu lan ora bisa mlaku ing wayah wengi, lan ora bisa milih dina sabanjure - utawa mateni langsung nganggo cakar wesi. Nyerang nganggo cakar ora bisa ditindakake ing Snake-Gorynych, lan sawise nyerang Leshy, Kucing bisa ditinggal tanpa cakar! Dashing ora bisa ngipat-ipati Kucing, sing sawise kutukan mung bakal turu sewengi. Yen ana wong sing bisa ngalahake Kota-Bayun, dheweke bakal mari saka penyakit utawa penyakit apa wae, kalebu kutukan Likh. Kemampuan Kucing iki tetep karo pemain nganti pungkasan game. Para abdine Koshchei ora bisa milih Kucing ing wayah awan, nanging kanthi ora langsung bisa ngerteni sapa kucing kasebut tanpa menehi informasi marang Koshchei. Kot-Bayun ora melu aliansi karo Ivan utawa Perampok, mula dheweke dadi target utama Kot.

Teknologi sing digunakake

Kanggo nulis game, Aku milih teknologi komputasi serverless adhedhasar OpenFaaS, awit iku cukup prasaja kanggo ngatur game, lan ing wektu sing padha cukup majeng kanggo nulis aturan game Komplek tanpa sisah rasah. Aku uga bakal nggunakake kluster Kubernetes, amarga cara iki nyebarake aplikasi ndadekake cukup prasaja lan dipercaya kanggo njaluk penyebaran cepet lan kemampuan kanggo ukuran gampang. Kanggo nggawe logika game, sampeyan mung bisa njaluk karo OpenFaaS, nanging aku uga bakal nyoba kanggo nggawe Storyteller minangka wadhah kapisah kanggo mbandhingaké kerumitan implementasine. Minangka basa pamrograman utama kanggo layanan mikro lan fungsi, aku milih Go, amarga aku wis sinau kanggo dangu ing wektu luang kanggo ngganti Perl, lan js bakal digunakake adhedhasar framework tartamtu kanggo interaksi pangguna karo microservices lan fungsi. Aku bakal pitutur marang kowe bab kaputusan final ing artikel sing cocog ing seri. Kanggo komunikasi fungsi karo saben liyane, aku milih NATS.io, amarga aku wis ketemu sadurunge, lan wis cukup gampang integrasi menyang Kubernetes.

Pengumuman

  • Pambuka
  • Nyetel lingkungan pangembangan, ngrusak tugas dadi fungsi
  • Kerja backend
  • Kerja frontend
  • Nggawe CICD, ngatur testing
  • Miwiti sesi game nyoba
  • Hasil

Source: www.habr.com

Add a comment