"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun

O'quvchilarning ko'plab so'rovlari tufayli haqiqiy dasturni ishlab chiqish uchun serversiz hisoblash texnologiyasidan foydalanish bo'yicha ko'plab maqolalar seriyasi boshlanadi. Ushbu tsikl zamonaviy vositalardan foydalangan holda ilovalarni ishlab chiqish, sinovdan o'tkazish va oxirgi foydalanuvchilarga etkazib berishni qamrab oladi: mikroservis ilovalari arxitekturasi (serversiz versiyada, OpenFaaS), klaster kubernetlar ilovalarni joylashtirish, ma'lumotlar bazasi uchun MongoDB, bulutli klasterlash va ilovalarga, shuningdek, bulutli avtobusga qaratilgan NATS. Ilova mashhur "Mafia" salon o'yinining variantlaridan biri bo'lgan "Epics" o'yinini amalga oshiradi.

"Eposlar" nima?

Bu "Bo'ri bo'ri" nomi bilan ham tanilgan "Mafiya" o'yinining bir variantidir. Bu jamoaviy o'yinga asoslangan bo'lib, unda ishtirokchilar bosqichma-bosqich kim kimligini o'rganishlari va g'alaba qozonishga harakat qilishlari kerak. Afsuski, onlayn o'ynashda shaxsiy o'zaro ta'sir kabi o'yinning muhim tarkibiy qismi yo'qoladi va klassik "Mafiya" qoidalari juda oddiy, shuning uchun chiziqli bo'lmagan va qiziqarli o'yin uchun odatda boshqa belgilar qo'shiladi, ammo umuman olganda, asl "Mafiya" ning asosiy xususiyatlari saqlanib qolgan, masalan, kun va tunning o'zgarishi, faqat tunda harakatlanishi, shuningdek, ishtirokchilar o'rtasidagi ittifoqlar. Onlayn o'ynashning yana bir muhim farqi shundaki, uy egasi (aka Game Master, Storyteller) odatda kompyuter dasturidir.

O'yinning ta'rifi

Men amalga oshirmoqchi bo'lgan o'yin qoidalari taxminan 10 yil oldin shaxsiy arxivimda saqlagan eski irc botdan olingan. "Epics" har bir o'yin boshlanadigan tarixga ega:

Uzoq podshohlikda, o'ttizinchi davlatda, etti dengizdan tashqarida, bir nechta qishloqlar yashagan va yashagan va ularda Yaxshi do'stlar и Go'zal qizlar. Ular non ekib, atrofdagi o'rmonga qo'ziqorin va rezavor mevalarni terish uchun ketishdi ... Va bu asrdan asrga, dahshatli ofat Yerni silkitib, yovuzlik butun dunyoga tarqalguncha davom etdi! Kechalar uzoq va sovuq bo'lib, qorong'uda, mehribon va dahshatli mavjudotlar o'rmonni kezib, qishloqqa kirib ketishdi. Qayerdandir keldi Ajdaho Qizil qizlarni o‘g‘irlab, qishloq ahlidan barcha qimmatli narsalarni olib ketishni odat qilib oldi. Zararli va ochko'z Yalmog'iz kampir, uzoq o'rmonlardan minomyotda uchib, aholining ongini chalkashtirib yubordi, hatto ba'zilari o'z hunarini tashlab, o'rmonga o'g'irlik qilish uchun kirib, u erda to'da tuzdilar. Yomonlar uchrashishdi Goblin, daraxt va butalarga aylanishni bilgan, u tinch qishloq aholisini kuzatib, qaroqchilarga xizmat qila boshladi, yaxshi odamlar o'z aholi punktlarini yovuz ruhlardan tozalash uchun biror narsa qilyaptimi yoki yo'qmi, deb o'yladi. Qaroqchilarning bosqinlaridan charchagan yaxshi do'stlar va go'zal qizlar va dahshatli o'limlar Dashing bir ko'zli, oltin terib, qo'shni shahardan mashhur polvonni taklif qildi - Ivan Tsarevich, qishloqni qaroqchilardan tozalashga va'da bergan. O'rmondagi ochiq joylarda Ivan o'limdan qutqardi Kulrang bo'ri, Qaroqchilarning tuzog'iga tushib qolgan. Buning evaziga Bo'ri Tsarevichga turli xil o'rmon yovuz ruhlari haqida xabar berishga va'da berdi. Bir mashhur tabib o'tib ketdi Dono Vasilisa, va u qiyinchilik ko'rganida, u jasur odamlarning hujumlaridan aziyat chekkan aholini boqish uchun qoldi. O'rmon orqasida qora saroy paydo bo'ldi, u mish-mishlarga ko'ra, u joylashdi O'limsiz Koschei, har kecha u qishloqlarni ziyorat qilib, uning buyrug'iga bo'ysunmaslikka jur'at etmasliklari uchun Yaxshi Yo'ldoshlar va Qizil qizlarni sehrlab qo'ydi, ular hamma narsani u aytganidek qilishdi. Va Jonsiz o'rmonga joylashdi Mushuk Baiyun, va u bilan uchrashgan har bir kishi uning ertaklaridan keyin uxlab qoldi yoki uning temir tirnoqlaridan vafot etdi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Uzoq uzoqlar qirolligi

Ko'rib turganingizdek, o'yinchilar bir nechta guruhlarga bo'lingan:

  • tinch aholi (yaxshi odamlar, qizil qizlar, Ivan Tsarevich, kulrang bo'ri va dono Vasilisa)
  • qaroqchilar (qaroqchilarning o'zlari, shuningdek, Baba Yaga va Leshi)
  • mustaqil (Ilon-Gorynych, Dashing bir ko'zli, Baqa malika, Koschey o'lmas, Cat-Bayun)

O'yinning maqsadi, yuqorida aytib o'tilganidek, tirik qolish va g'alaba qozonishdir. Raqiblar u yoki bu tarzda o'yinni tark etishlari kerak, va mustaqillar ham o'yin oxirigacha tirik qolishlari kerak. O'yinda oltin bor, o'yinchilar faqat o'yin davomida oladigan o'yin valyutasi. G'oliblar oltin oladi. Oltin qancha ko'p bo'lsa, o'yinchining reytingi shunchalik yuqori bo'ladi.

Men personajlarning tavsifi haqida bir oz batafsilroq to'xtalib o'taman.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Yaxshi odam

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Qizil qiz

Yaxshi odam и Qizil qiz - o'yindagi eng keng tarqalgan va asosiy rol. Bular kechasi uxlaydigan va kunduzi ishlaydigan tinch aholidir. Kechasi ularga qaroqchilardan biri, Serpent Gorynych va boshqa rollar hujum qiladi va Dono Vasilisa ularni davolaydi. Kichkina ehtimol bilan, Yaxshi hamkasb yoki Qizil qiz hujumdan zarar ko'rmasdan omon qolishi mumkin (ehtimol bu jarayonda oltinni yo'qotishi mumkin), ammo hujumdan keyingi kun hamma o'yinchining taxallusini taniydi. Kechasi bu o'yinchilar hech qanday harakat qilmaydi, lekin o'yin chatidagi xabarlar asosida o'yin holatini tahlil qiladi. Kun davomida bu o'yinchilar ovoz berish yo'li bilan ularning qaysi biri Yaxshi yigit yoki Qizil qiz emasligini hal qiladi. Boshqa o'yinchilarning ko'pchiligi ovoz bergan o'yinchi o'yinni tark etadi, qolgan o'yinchilar oltin oladi yoki yo'qotadi. Agar o'yinchilar ko'pchilik ovoz bilan hech kimni tanlamasa, hech bir o'yinchi qatl qilinmaydi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Ivan Tsarevich

Ivan Tsarevich - dastlab tinch aholining anonim himoyachisi. Kechasi u boshqa o'yinchilarning rollarini tekshiradi, chunki u faqat bitta ittifoqdoshini - Kulrang bo'rini biladi. Kulrang bo'rining bevosita ishtirokida (u boshqa o'yinchilarning rollarini ham tekshirishi mumkin) Ivan Tsarevich tekshirish o'rniga tunda boshqa belgini o'ldirishi mumkin. Agar tekshirish natijasida Ivan Tsarevich o'yinchida yaxshi sherik yoki qizil qiz rolini ko'rsa, u ularni o'z joyiga taklif qilishi va ularni kulrang bo'ri va boshqa yaxshi sheriklar va qizil qizlar bilan tanishtirishi mumkin. Ivanga qurbaqa malika xalaqit berishi mumkin, u kunduzi o'z rolini boshqa o'yinchilarga oshkor qilmasdan, kechasi uni yo'ldan ozdirishi mumkin. Agar Ivanning o'zi qurbaqa malikasini topsa, uni tinch aholiga qo'shilishga taklif qilishi mumkin, lekin agar malika rad etsa, u Ivanning qo'lida o'ladi. Serpent-Gorynych Ivan-Tsarevichning tekshiruvlariga ham xalaqit berishi mumkin, ammo, Baqa malikadan farqli o'laroq, kun davomida u boshqa o'yinchilarga qaysi biri Ivan-Tsarevich ekanligini aytib beradi. Kun davomida Ivan Tsarevich boshqa yaxshi odamlardan farq qilmaydi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Kulrang bo'ri

Kulrang bo'ri - Ivan Tsarevichning yordamchisi, uning o'tkir hid hissi Ivanga boshqa yaxshi sheriklar va qizil qizlarni topishga yordam beradi. Kulrang bo'ri bu o'yinchilarga Ivan Tsarevich kimligini aytib beradi, shuningdek, xayrixohlar va Qizil qizlar rolidagi boshqa o'yinchilar haqida ma'lumot beradi. Agar Bo'ri qaroqchi yoki boshqa dushmanni topsa, u darhol Ivan Tsarevichga xabar beradi, shunda u keyingi kechada chora ko'rishi mumkin. Agar bo'riga qurbaqa malika hujum qilsa, u oddiy yaxshi odamga aylanadi va hech kimni tekshira olmaydi va malika bu aslida Kulrang bo'ri ekanligini bilmaydi, chunki Bo'ri tunda uxlamaydi. Biroq, Bo'rining o'zi kun davomida o'yinchilardan qaysi biri qurbaqa malika ekanligini bilib oladi va u Ivan Tsarevichga olib kelgan boshqa yaxshi sheriklar va qizil qizlarni qurbaqani qatl etish uchun ovoz berishga ko'ndirishga harakat qilishi mumkin. Malika. Ertasi tunda u anonim ravishda qurbaqa malikasini tinch aholi tomoniga ko'ndirishga urinishi mumkin, shunda u ularning hech biriga tegmaydi. Bo'ri tunda Ivan Tsarevichni yoki Vasilisa Donishmandni qutqarish uchun o'zini qurbon qilishi mumkin, agar u ular to'satdan qaroqchilar hujumiga tushib qolishadi yoki Koshchey tomonidan zombilashgan bo'lsa (bo'ri Koshcheyning jozibasiga nisbatan tug'ma immunitetga ega), lekin keyin fidokorlik bo'ri o'yindan tushadi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Dono Vasilisa

Dono Vasilisa - tinch aholi uchun o'ynaydi, lekin ular u haqida bilishmaydi, chunki Vasilisa juda kamtar. Shuningdek, Dono Vasilisa, u davolaganda, savol bermaydi va yaxshi shifokor kabi, hamma bilan muomala qiladi. Ammo agar Koschey, Lixo yoki Leshy uning dori-darmonlarini ichsa, ular bir kundan ortiq yashamaydilar, chunki Vasilisa faqat odamlarni davolaydi. Dono Vasilisaning dori-darmonlari ilon Gorynich yoki Cat-Bayunga yordam bermaydi, lekin ular ham zarar keltirmaydi. Shuningdek, Kot-Bayun kechalari Vasilisaga tegmaydi, chunki Vasilisa dorivor o'tlar sotib olish uchun Jonsiz o'rmonga bormaydi. Bundan tashqari, Frog Princess ayol jozibasi Vasilisa ustida ishlamaydi. Agar bemorni ikki marta o'ldirmoqchi bo'lishsa, dori kuchsiz bo'lardi. Vasilisa sizni sehrli hujumlardan qutqarmaydi, masalan, Dashing la'natidan. Kun davomida Vasilisa o'zini Qizil qiz kabi tutadi va faqat o'tkinchi, biroz qayg'uli ko'rinish uning Uzoq Qirollikdagi eng yaxshi davolovchi ekanligiga ozgina ishora qilishi mumkin.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Rog'un GESi

Qaroqchilar, oldingi barcha rollardan farqli o'laroq, ular bir-birlarini bilishadi, chunki ular bitta Lairda yashaydilar, shuningdek Leshy va Baba Yagani bilishadi, shuning uchun ular birinchi harakatdanoq kontsertda harakat qilishlari mumkin. Ammo faqat to'da rahbari kechasi harakatlarni amalga oshiradi va kunduzi ovoz bermaydi, qolgan qaroqchilar esa o'zlarini yaxshi sheriklar va qizil qizlar sifatida ko'rsatishadi. Agar Rahbar biron bir sababga ko'ra o'yinni tark etsa, darhol uning o'rnini qolgan Roguelardan biri egallaydi. Avvalo, qaroqchilar Ivan Tsarevichni kun davomida qaroqchilarga qarshi faol kurashish uchun yaxshi o'rtoqlar va qizil qizlardan etarli kuch to'plamaguncha o'chirib qo'yishga harakat qilmoqdalar.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Goblin

Goblin tunda u qaroqchilar uchun josuslik qiladi, ularga ularning Lairida topilgan rollar haqida xabar beradi, lekin kunduzi u qishloqda yashamagani uchun ovoz bermaydi. Biroq, boshqa o'yinchilar Leshiga ovoz berishlari va shu tariqa uni o'ldirishlari mumkin. Leshi botqoqlardan kelganligi sababli, uni qurbaqa malika vasvasaga sola olmaydi va agar u harakat qilsa, Leshi uning uyiga belgi qo'yadi va qishloq aholisi uning kimligini bilib oladi. Leshem Koshchei afsunidan qo'rqmasligi kerak, ammo Vasilisa uni o'limga davolay oladi. Agar Kot-Bayun Leshiga hujum qilmoqchi bo'lsa, u temir tirnoqlarini yo'qotish xavfini tug'diradi va keyin Kot jabrlanuvchilarni faqat pichirlashi bilan uxlashiga majbur bo'ladi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Yalmog'iz kampir

Yalmog'iz kampir U, shuningdek, Qaroqchilar bilan birga ishlaydi va kechasi afsun qiladi: u yo boshqa o'yinchilarga kasallik yuborishi yoki ittifoqchilaridan birini hujumdan himoya qilishi mumkin. Uning jodugarligi Lixning la'natidan ham kuchliroq. Kun davomida Baba Yaga ham faol: uning himoyasi ostidagi har qanday kishi hatto ko'pchilik ovoz bilan ham qatl etilishi mumkin emas. Biroq, kunduzi himoya qilish uchun sehrli ildizlarning ta'minoti cheklangan, shuning uchun Baba Yaga hech kimni, shu jumladan o'zini ham o'yin uchun uch martadan ortiq himoya qila olmaydi. Kunduzi Baba Yaga o'zini oddiy Qizil qizdek ko'rsatib, hamma bilan ovoz beradi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Ajdaho

Ajdaho tunda u qishloqlar, o'rmonlar va botqoqlar ustidan uchib o'tadi va talonchilik bilan shug'ullanadi, kunduzi o'g'irlanganlarning rolini ochib beradi. Kunduzi Ilon uxlaydi, shuning uchun u ovoz bermaydi, lekin u ko'pchilik ovoz bilan qatl etilishi mumkin. Ilon hamma uchun, ayniqsa Qaroqchilar va Ivan Tsarevich uchun juda xavflidir. Ilon kimni talon-taroj qilishiga ahamiyat bermaydi, lekin agar uni Bo'ri yoki Leshi topsa, u qimmatli ittifoqchiga aylanishi mumkin. Agar siz tunda ilonni o'ldirsangiz, siz o'z egasini jismoniy hujumdan bir marta himoya qiladigan juda qimmatli buyumni - ilon terisini olishingiz mumkin.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Dashing bir ko'zli

Dashing bir ko'zli tunda u yo'liga to'sqinlik qilgan har bir kishini o'ldiradi va kimni o'ldira olmasa (Leshi, Kota-Bayun yoki Ilon Gorinich) la'natlaydi, shunda la'natlangan odam bilan o'sha kechada aloqa o'rnatishga harakat qilgan har bir kishi kunduzi o'ladi. . Bu holatda la'natlanganning o'zi ham o'ladi, faqat Kot-Bayun o'lmaydi, u shunchaki kuch olish uchun uxlashga yotadi va ertasi kechasi navbatini o'tkazib yuboradi. Faqat Baba Yaga Lixni la'natdan qutqara oladi. Cat-Bayunni mag'lub etgan kishiga la'nat ta'sir qilmaydi: u xuddi mushuk kabi, shunchaki yotib, burilishdan o'tib ketadi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Malika qurbaqa

Malika qurbaqa o'yinda g'alaba qozona olmaydi, lekin u tunda boshqa o'yinchilarni yo'ldan ozdirib, ko'p pul topishi mumkin. Vasvasaga solingan odam o'z navbatini o'tkazib yuboradi. Qurbaqa Dono Vasilisani yo'ldan ozdira olmaydi va u ertasi kuni uni hammaga xiyonat qiladigan Leshidan qochishi kerak. Agar Ivan Tsarevich yoki Qaroqchilar rahbari qurbaqani topsa, ular tinch aholini yoki qaroqchilarni o'z tomoniga taklif qilishlari mumkin, Ivan esa qurbaqaning rad etishini qabul qilmaydi, lekin Rahbar unchalik sinchkov emas. Ammo malika juda ayyor, u ikki tomonlama agentga aylanishi mumkin, chunki u yolg'iz g'alaba qozona olmasligiga qaramay, bu oltin olish uchun ajoyib imkoniyat, chunki o'yin oxirigacha omon qolish imkoniyati sezilarli darajada oshadi! Kun davomida qurbaqa malika o'zini Qizil qiz qilib ko'rsatib, hamma bilan birga ovoz beradi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
O'limsiz Koschei

O'limsiz Koschei qasrida yashaydi. Kechasi u atrofdagi qishloqlar bo'ylab yuradi va uning xizmatiga kelgan va barcha buyruqlarni so'zsiz bajaradigan Yaxshi odamlar va Qizil qizlarni zombi qiladi. Buyruqni bajarishdan bosh tortgan holda, masalan, kun davomida Koshchey aytganidan farqli ravishda ovoz berish yoki Koshchei taqiqlagan bo'lsa, kun davomida chatda xabarlar yozish, Koshcheyning xizmatkori vafot etadi. Shunday qilib, Koschey o'zi ovoz bermasa ham, kun davomida ovoz berish natijalariga ta'sir o'tkazishga qodir. Agar Koshchey o'ldirilgan bo'lsa, uning barcha qurbonlari ham o'ladi. Vasilisa xizmatkor Koshcheyni davolay oladi, keyin u asl roliga qaytadi. Ilon Gorinich va Bo'ri zombifikatsiyaga qarshi tug'ma immunitetga ega, shuning uchun Koschey qanchalik xohlamasin, ularni o'z xizmatiga aylantira olmaydi. Bo'ri ham o'zini qurbon qilib, Ivan yoki Vasilisaga muammodan yordam berishi mumkin. Bo'ri tomonidan qutqarilgan bo'ri zombifikatsiyaga qarshi immunitetga ega bo'ladi.

"Yangi dostonlar". Ishlab chiquvchilar, amaliyotchilar va qiziquvchan odamlar uchun
Mushuk Baiyun

Mushuk Baiyun o'rmonda yashaydi, tunda ov qiladi. Kunduzi u bo'shliqda uxlaydi, shuning uchun u ovoz berishda qatnashmaydi. Biroq, kun davomida u ko'pchilik ovoz bilan qatl etilishi mumkin. Mushuk ikki yo'l bilan hujum qilishi mumkin: purr - keyin uning qurboni uxlab qoladi va kechasi yurolmaydi va ertasi kuni ovoz bermaydi - yoki temir tirnoqlari bilan o'ldiradi. Tirnoqlar bilan hujum qilish Ilon Gorinichda ishlamaydi va Leshiga hujum qilgandan so'ng, mushuk umuman tirnoqsiz qolishi mumkin! Dashing mushukni la'natlay olmaydi, u la'natdan keyin shunchaki bir kecha uxlaydi. Agar kimdir Kota-Bayunni mag'lub eta olsa, u har qanday kasallik yoki kasallikdan, shu jumladan Lixning la'natidan davolaydi. Mushukning bu qobiliyati o'yin oxirigacha o'yinchida qoladi. Koshcheyning xizmatkorlari kun davomida Mushuk uchun ovoz bera olmaydilar, lekin ular Koshchega bu haqda xabar bermasdan, bilvosita Mushukning kimligini bilib olishlari mumkin. Kot-Bayun Ivan yoki Qaroqchilar bilan ittifoq tuzmaydi, shuning uchun ular Kot uchun asosiy maqsaddir.

Foydalanilgan texnologiyalar

O'yinni yozish uchun men OpenFaaS-ga asoslangan serversiz hisoblash texnologiyasini tanladim, chunki u o'yinni tashkil qilish uchun etarlicha sodda va shu bilan birga murakkab o'yin qoidalarini keraksiz asoratlarsiz yozish uchun etarlicha rivojlangan. Bundan tashqari, men Kubernetes klasteridan foydalanaman, chunki ilovalarni joylashtirishning ushbu usuli tez joylashtirish va osonlik bilan o'lchash qobiliyatini olish uchun juda sodda va ishonchli qiladi. O'yin mantig'ini yaratish uchun siz faqat OpenFaaS bilan shug'ullanishingiz mumkin, ammo men Storytellerni amalga oshirishning murakkabligini solishtirish uchun alohida konteyner sifatida qilishga harakat qilaman. Mikroservislar va funktsiyalar uchun asosiy dasturlash tili sifatida men tanladim Go, chunki men bo'sh vaqtimda Perlni almashtirish uchun uni uzoq vaqt davomida o'rganib chiqdim va js foydalanuvchining mikroservislar va funktsiyalar bilan o'zaro aloqasi uchun ma'lum bir ramka asosida foydalaniladi. Yakuniy qaror haqida men seriyadagi tegishli maqolada aytib beraman. Funktsiyalarni bir-biri bilan bog'lash uchun men NATS.io-ni tanladim, chunki men u bilan avvalroq duch kelganman va u Kubernetes-ga juda oson integratsiyaga ega.

E'lon

  • kirish
  • Rivojlanish muhitini o'rnatish, vazifani funktsiyalarga bo'lish
  • Backend ishi
  • Frontend ishi
  • CICDni o'rnatish, testlarni tashkil qilish
  • Sinov o'yin seansini boshlang
  • natijalar

Manba: www.habr.com

a Izoh qo'shish