"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين

نظرًا للطلبات العديدة من القراء، بدأت سلسلة كبيرة من المقالات حول استخدام تكنولوجيا الحوسبة بدون خادم لتطوير تطبيق حقيقي. ستغطي هذه الدورة تطوير التطبيقات واختبارها وتسليمها للمستخدمين النهائيين باستخدام أدوات حديثة: هندسة تطبيقات الخدمات الصغيرة (في إصدار بدون خادم، يعتمد على أوبنفاس)، تَجَمَّع kubernetes لنشر التطبيقات وقاعدة البيانات MongoDB، ركز على التجميع السحابي والتطبيقات، بالإضافة إلى الناقل السحابي NATS. ينفذ التطبيق لعبة "Epics"، أحد أشكال لعبة الصالون الشهيرة "Mafia".

ما هي "بيلينز"؟

هذا هو البديل من لعبة "المافيا"، والمعروفة أيضًا باسم "الذئب". إنها تعتمد على لعبة جماعية حيث يجب على المشاركين أن يتعلموا خطوة بخطوة من هو ويحاولون الفوز. لسوء الحظ، عند اللعب عبر الإنترنت، يختفي عنصر مهم في اللعبة مثل التفاعل الشخصي، وقواعد "المافيا" الكلاسيكية بسيطة للغاية، لذلك، من أجل اللعب غير الخطي والأكثر إثارة للاهتمام، عادة ما يتم إضافة شخصيات أخرى، ولكن بشكل عام، يتم الحفاظ على السمات الرئيسية لـ "المافيا" الأصلية، على سبيل المثال، تغير النهار والليل، والتحرك في الليل فقط، وكذلك التحالفات بين المشاركين. هناك اختلاف مهم آخر بين اللعب عبر الإنترنت وهو أن المضيف (المعروف أيضًا باسم Game Master وStoryteller) هو عادةً برنامج كمبيوتر.

وصف اللعبة

قواعد اللعبة التي أريد تنفيذها مأخوذة من روبوت irc قديم قمت بحفظه في أرشيفي الشخصي منذ حوالي 10 سنوات. "الملاحم" لها قصة درامية تبدأ بها كل لعبة:

في المملكة البعيدة، في الولاية الثلاثين، وراء البحار السبعة، عاشت وعاشت عدة قرى، وفيها غودفيلاز и الفتيات الجميلات. لقد زرعوا الخبز وذهبوا إلى الغابة المحيطة لقطف الفطر والتوت... واستمر هذا من قرن إلى قرن حتى هزت الأرض كارثة رهيبة وبدأ الشر ينتشر في جميع أنحاء العالم! أصبحت الليالي طويلة وباردة، وفي الظلام، جابت مخلوقات قاسية وفظيعة الغابة وتجولت في القرية. وصل من مكان ما ثعبان جورينيش واعتادوا على سرقة العذارى الحمر وأخذ كل شيء ثمين من القرويين. ضار وجشع بابا ياجا، التي طارت بمدافع الهاون من الغابات البعيدة، أربكت عقول السكان، حتى أن البعض تخلى عن حرفتهم وذهب إلى الغابة للسرقة، وشكل عصابة هناك. التقى الأشرار عفريت، الذي عرف كيف يتحول إلى أشجار وشجيرات، بدأ في مراقبة القرويين المسالمين وخدمة اللصوص، واستنشاق ما إذا كان الرفاق الطيبون على وشك القيام بشيء ما لتخليص مستوطناتهم من الأرواح الشريرة. رفاق طيبون وعذارى جميلات، سئموا من غارات اللصوص، والوفيات الفظيعة على أيدي الأشرار محطما أعوروجمع الذهب ودعا مصارعًا مشهورًا من مدينة مجاورة - إيفان تساريفيتشالذي وعد بتخليص القرية من اللصوص. في الغابة، أنقذ إيفان من موت محقق الذئب الرماديالذي وقع في فخ اللصوص. في المقابل، وعد الذئب بإبلاغ تساريفيتش عن أرواح الغابة الشريرة المختلفة. مر معالج مشهور فاسيليسا الحكيموعندما رأت المتاعب، بقيت لرعاية السكان الذين عانوا من هجمات المحطمين. خلف الغابة ظهر قصر أسود استقر فيه حسب الشائعات كوشي الخالدكان يزور القرى كل ليلة ويسحر الرفاق الطيبين والعذارى الحمر حتى لا يجرؤوا على عصيان أوامره، وكانوا يفعلون كل شيء كما قال. واستقر في الغابة الهامدة كات بايونوكل من قابله نام بعد حكاياته أو مات بمخالبه الحديدية.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
مملكة بعيدة بعيدة

كما ترون بالفعل، يتم تقسيم اللاعبين إلى عدة مجموعات:

  • المدنيون (الرفاق الطيبون، والعذارى الحمر، وإيفان تساريفيتش، وغراي وولف، وفاسيليسا الحكيم)
  • اللصوص (اللصوص أنفسهم، وكذلك بابا ياجا وليشي)
  • مستقل (Snake-Gorynych، Dashing One-Eyed، Frog Princess، Koschey the Immortal، Cat-Bayun)

الهدف من اللعبة، كما ذكر أعلاه، هو البقاء على قيد الحياة والفوز. يجب على الخصوم مغادرة اللعبة بطريقة أو بأخرى، ويجب على المستقلين أيضًا البقاء على قيد الحياة حتى نهاية اللعبة. تحتوي اللعبة على الذهب، وهو نوع من عملة اللعبة التي يكسبها اللاعبون فقط داخل اللعبة. الفائزون يحصلون على الذهب. كلما زاد الذهب، ارتفع تصنيف اللاعب.

سأتناول المزيد من التفاصيل حول وصف الشخصيات.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
زميل جيد

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
البكر الحمراء

زميل جيد и البكر الحمراء - الدور الأكثر انتشارا والرئيسي في اللعبة. هؤلاء هم المدنيون الذين ينامون في الليل ويعملون في النهار. في الليل، يتعرضون للهجوم من قبل أحد اللصوص، الثعبان جورينيتش وأدوار أخرى، ويشفيهم فاسيليسا الحكيم. مع بعض الاحتمالية الصغيرة، يمكن للرفيق الجيد أو Red Maiden أن ينجو من الهجوم دون ضرر (ربما يفقد الذهب في هذه العملية)، ومع ذلك، سيتعرف الجميع على لقب اللاعب في اليوم التالي بعد الهجوم. في الليل، لا يقوم هؤلاء اللاعبون بأي تحركات، ولكنهم يقومون بتحليل وضع اللعبة بناءً على الرسائل الموجودة في دردشة اللعبة. خلال النهار، يقرر هؤلاء اللاعبون من خلال التصويت أي منهم ليس الرفيق الجيد أو البكر الحمراء. اللاعب الذي تم التصويت له من قبل غالبية اللاعبين الآخرين يترك اللعبة، ويحصل اللاعبون المتبقون على الذهب أو يخسرونه. إذا لم يختر اللاعبون أي شخص بأغلبية الأصوات، فلن يتم إعدام أي لاعب.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
إيفان تساريفيتش

إيفان تساريفيتش - في البداية مدافع مجهول عن المدنيين. في الليل، يتحقق من أدوار اللاعبين الآخرين، لأنه يعرف واحدًا فقط من حليفه - الذئب الرمادي. من خلال المشاركة المباشرة للذئب الرمادي (الذي يمكنه أيضًا التحقق من أدوار اللاعبين الآخرين)، يستطيع إيفان تساريفيتش، بدلاً من التحقق، قتل شخصية أخرى في الليل. إذا رأى إيفان تساريفيتش، نتيجة للشيك، دور الرفيق الجيد أو البكر الأحمر في اللاعب، فيمكنه دعوتهم إلى مكانه وتقديمهم إلى Gray Wolf وغيرهم من الزملاء الطيبين والحمراء. يمكن أن تتدخل الأميرة الضفدع مع إيفان، والتي يمكنها إغوائه ليلاً، دون الكشف عن دوره للاعبين الآخرين أثناء النهار. إذا اكتشف إيفان نفسه الأميرة الضفدع، فيمكنه دعوتها للانضمام إلى المدنيين، ولكن إذا رفضت الأميرة، فإنها تموت على يد إيفان. يمكن أن يتدخل Serpent-Gorynych أيضًا في شيكات Ivan-Tsarevich، ولكن على عكس الأميرة الضفدع، خلال النهار سيخبر اللاعبين الآخرين أي منهم هو Ivan-Tsarevich. خلال النهار، لا يختلف إيفان تساريفيتش عن الزملاء الجيدين الآخرين.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
الذئب الرمادي

الذئب الرمادي - مساعد إيفان تساريفيتش، الذي تساعد حاسة الشم القوية لديه إيفان في العثور على رفاق جيدين آخرين وعذارى حمر. يخبر Gray Wolf هؤلاء اللاعبين من هو Ivan the Tsarevich، ويخبر أيضًا عن لاعبين آخرين بأدوار Good Fellows وRed Maidens. إذا اكتشف الذئب لصًا أو عدوًا آخر، فإنه يبلغ على الفور إيفان تساريفيتش حتى يتمكن من اتخاذ الإجراءات اللازمة في الليلة التالية. إذا تعرض الذئب لهجوم من قبل الأميرة الضفدع، فإنه يتحول إلى زميل جيد عادي ولا يستطيع الاطمئنان على أي شخص، ولن تعرف الأميرة أنه كان في الواقع الذئب الرمادي، لأن الذئب لا ينام في الليل. ومع ذلك، فإن الذئب نفسه سيكتشف خلال النهار أي من اللاعبين هو الأميرة الضفدع، ويمكنه محاولة إقناع بقية الزملاء الطيبين والعذارى الحمر، الذين أحضرهم إلى إيفان تساريفيتش، للتصويت لصالح إعدام الضفدع. أميرة. وفي الليلة التالية أيضًا، يمكنه محاولة إقناع الأميرة الضفدع بشكل مجهول بالانضمام إلى جانب المدنيين حتى لا تلمس أيًا منهم. يمكن للذئب أن يضحي بنفسه ليلاً لإنقاذ إيفان تساريفيتش أو فاسيليسا الحكيم، إذا افترض أنهما سيقعان فجأة تحت هجوم اللصوص، أو أن كوششي قد تحولا إلى زومبي (يتمتع الذئب بحصانة فطرية ضد سحر كوششي)، ولكن بعد ذلك التضحية بالنفس يخرج الذئب من اللعبة.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
فاسيليسا الحكيم

فاسيليسا الحكيم - يلعب للمدنيين، لكنهم لا يعرفون عنها، لأن فاسيليسا متواضعة للغاية. كما أن فاسيليسا الحكيمة، عندما تعالج، لا تطرح أسئلة، ومثل طبيب جيد، تعامل الجميع. ولكن إذا شربت Koschey أو Likho أو Leshy دواءها، فلن يعيشوا أكثر من يوم واحد، لأن Vasilisa يعالج الناس فقط. إن دواء Vasilisa the Wise لن يساعد أيضًا الثعبان Gorynych أو Cat-Bayun ، لكنهما لن يجلبا الأذى أيضًا. كما أن Kot-Bayun لا يلمس فاسيليسا في الليل، لأن فاسيليسا لا يذهب إلى الغابة الهامدة لشراء الأعشاب الطبية. بالإضافة إلى ذلك، فإن السحر الأنثوي للأميرة الضفدع لا يعمل على فاسيليسا. إذا حاولوا قتل مريضتها مرتين، فإن الطب سيكون عاجزا. لن ينقذك Vasilisa من الهجمات السحرية، على سبيل المثال، من لعنة Dashing. خلال النهار، تتصرف فاسيليسا مثل Red Maiden، ولا يمكن أن تشير إلا نظرة عابرة حزينة قليلاً إلى أنها أفضل معالج في مملكة Far Away.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
محتال

لصوص، على عكس جميع الأدوار السابقة، فإنهم يعرفون بعضهم البعض، لأنهم يعيشون في نفس العرين، ويعرفون أيضًا Leshy و Baba Yaga، حتى يتمكنوا من التمثيل في حفل موسيقي مباشرة من الخطوة الأولى. لكن زعيم العصابة فقط هو الذي يقوم بأعمال في الليل ولا يصوت أثناء النهار، بينما يتظاهر بقية اللصوص بجد بأنهم زملاء جيدون وريد مايدن. إذا ترك القائد اللعبة لأي سبب من الأسباب، فسيأخذ مكانه أحد المحتالين المتبقين على الفور. بادئ ذي بدء، يحاول اللصوص تعطيل إيفان تساريفيتش حتى يجمع ما يكفي من القوات من Good Fellows و Red Maidens لمواجهة اللصوص بشكل فعال خلال النهار.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
عفريت

عفريت في الليل يتجسس لصالح اللصوص ويبلغهم بالأدوار الموجودة في عرينهم، لكنه لا يصوت في النهار لأنه لا يعيش في القرية. ومع ذلك، يمكن للاعبين الآخرين التصويت لصالح Leshy وبالتالي إعدامه. نظرًا لأن Leshy يأتي من المستنقعات، فلا يمكن للأميرة الضفدع أن تغريه، وإذا حاول، فسوف تحدد Leshy منزلها، وسيكتشف القرويون من هي حقًا. لا ينبغي أن يخاف ليشيم من تعويذة كوششي، لكن فاسيليسا يستطيع أن يشفيه حتى الموت. إذا حاول Cat-Bayun مهاجمة Leshy، فإنه يخاطر بفقد مخالبه الحديدية، ومن ثم سيتعين على Cat تهدئة الضحايا للنوم بمجرد خرخرته.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
بابا ياجا

بابا ياجا يعمل أيضًا مع اللصوص ويلقي التعويذات في الليل: يمكنه إما إرسال المرض إلى لاعبين آخرين أو حماية أحد حلفائه من الهجوم. سحرها أقوى من لعنة ليك. خلال النهار، تنشط بابا ياجا أيضًا: لا يمكن إعدام أي شخص تحت حمايتها حتى بأغلبية الأصوات. ومع ذلك، فإن إمداد الجذور السحرية للحماية أثناء النهار محدود، لذلك لا تستطيع بابا ياجا حماية أي شخص، بما في ذلك نفسها، أكثر من ثلاث مرات في كل لعبة. خلال النهار، يتظاهر بابا ياجا بأنه عذراء حمراء عادية ويصوت مع أي شخص آخر.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
التنين

التنين وفي الليل يطير فوق القرى والغابات والمستنقعات ويمارس عمليات السطو ويكشف دور المسروق نهاراً. في النهار ينام الثعبان فلا يصوت، لكن يمكن إعدامه بأغلبية الأصوات. الثعبان خطير جدًا على الجميع، وخاصة على اللصوص وإيفان تساريفيتش. لا يهتم الثعبان بمن يسرق، ولكن إذا اكتشفه الذئب أو الليشي، فيمكن أن يصبح حليفًا قيمًا. إذا قتلت الأفعى في الليل، فيمكنك، مع بعض الاحتمالات، الحصول على عنصر قيم للغاية - جلد الثعبان، والذي سيحمي مالكه مرة واحدة من الاعتداء الجسدي.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
المشهور بعين واحدة

المشهور بعين واحدة في الليل يقتل كل من يعترض طريقه، ومن لا يستطيع قتله (ليشي، كوتا بايون، أو الثعبان جورينيش) يلعن، بحيث يموت أي شخص يحاول التواصل مع الملعون في نفس الليلة أثناء النهار . يموت الملعون نفسه أيضًا في هذه الحالة، فقط Kot-Bayun لا يموت، الذي يذهب ببساطة إلى الفراش لاكتساب القوة، متخطيًا دوره في الليلة التالية. فقط بابا ياجا يستطيع إنقاذ ليك من اللعنة. اللعنة لا تؤثر على الشخص الذي هزم القط بايون: فهو، مثل القط، يذهب ببساطة إلى السرير ويتخطى بدوره.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
الأميرة الضفدع

الأميرة الضفدع لا يستطيع الفوز باللعبة، لكنه يستطيع كسب الكثير من المال عن طريق إغواء اللاعبين الآخرين ليلاً. المجرب يفتقد دوره. لا يستطيع الضفدع إغواء فاسيليسا الحكيم، وعليها أيضًا تجنب ليشي الذي سيخونها للجميع في اليوم التالي. إذا وجد إيفان تساريفيتش أو زعيم اللصوص الضفدع، فيمكنهم دعوة المدنيين أو اللصوص إلى جانبهم، في حين أن إيفان لن يقبل رفض الضفدع، لكن القائد ليس من الصعب إرضاءه. لكن الأميرة ماكرة للغاية، يمكنها أن تصبح عميلة مزدوجة، لأنه على الرغم من أنها لا تستطيع الفوز بمفردها، فهذه فرصة ممتازة للحصول على الذهب، لأن فرص البقاء على قيد الحياة حتى نهاية اللعبة تزيد بشكل كبير! خلال النهار، تتظاهر الأميرة الضفدع بأنها العذراء الحمراء وتصوت مع الجميع معًا.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
كوشي الخالد

كوشي الخالد يعيش في قلعته. في الليل، يمشي عبر القرى المحيطة ويقتل الزملاء الطيبين والعذارى الحمر، الذين يأتون إلى خدمته وينفذون جميع الأوامر دون أدنى شك. من خلال رفض تنفيذ أمر، على سبيل المثال، التصويت أثناء النهار بشكل مختلف عما قاله كوشتشي، أو كتابة رسائل في الدردشة أثناء النهار إذا منع كوششي ذلك، يموت خادم كوششي. وهكذا فإن كوشي قادر على التأثير على نتائج التصويت خلال النهار، رغم أنه هو نفسه لا يصوت. إذا قُتل كوششي، يموت جميع ضحاياه أيضًا. يستطيع فاسيليسا علاج الخادم كوششي، الذي يعود بعد ذلك إلى دوره الأصلي. يتمتع Snake-Gorynych و Wolf بحصانة فطرية ضد الزومبي، لذا فإن Koschey، بغض النظر عن مقدار ما يريده، لا يمكنه تحويلهما إلى خدمته. يمكن للذئب أيضًا مساعدة إيفان أو فاسيليسا في الخروج من المشاكل بالتضحية بنفسه. يكتسب Saved by the Wolf مناعة الذئب ضد الزومبي.

"ملاحم جديدة". للمطورين والعمليات والأشخاص الفضوليين
كات بايون

كات بايون يعيش في الغابة ويصطاد في الليل. وفي النهار ينام في جوفه فلا يشارك في التصويت. ومع ذلك، خلال النهار يمكن إعدامه بأغلبية الأصوات. يمكن أن تهاجم القطة بطريقتين: الخرخرة - ثم تنام ضحيتها ولا تستطيع المشي ليلاً، ولا تستطيع التصويت في اليوم التالي - أو تقتل مباشرة بمخالب حديدية. الهجوم بالمخالب لا يعمل على Snake-Gorynych، وبعد مهاجمة Leshy، يمكن ترك القطة بدون مخالب على الإطلاق! لا يمكن لـ Dashing أن يلعن القطة التي بعد اللعنة ستنام ببساطة لليلة واحدة. إذا تمكن أي شخص من هزيمة كوتا بايون، فسوف يُشفى من أي مرض، بما في ذلك لعنة ليك. تظل قدرة Cat هذه مع اللاعب حتى نهاية اللعبة. لا يستطيع خدم Koshchei التصويت لصالح القطة خلال النهار، لكن يمكنهم معرفة من هي القطة بشكل غير مباشر دون إبلاغ Koshchei بذلك. لا يدخل Kot-Bayun في تحالفات مع Ivan أو اللصوص، لذا فهم الهدف الأساسي لكوت.

التقنيات المستخدمة

لكتابة اللعبة، اخترت تقنية الحوسبة بدون خادم المستندة إلى OpenFaaS، نظرًا لأنها بسيطة بما يكفي لتنظيم اللعبة، وفي الوقت نفسه متقدمة بما يكفي لكتابة قواعد اللعبة المعقدة دون تعقيدات غير ضرورية. سأستخدم أيضًا مجموعة Kubernetes، نظرًا لأن طريقة نشر التطبيقات هذه تجعل الأمر بسيطًا وموثوقًا للغاية للحصول على نشر سريع والقدرة على التوسع بسهولة. لإنشاء منطق اللعبة، لا يمكنك القيام بذلك إلا باستخدام OpenFaaS، لكنني سأحاول أيضًا إنشاء Storyteller كحاوية منفصلة لمقارنة مدى تعقيد التنفيذ. لقد اخترتها باعتبارها لغة البرمجة الرئيسية للخدمات والوظائف الصغيرة Go، منذ أن كنت أدرسها لفترة طويلة في وقت فراغي لاستبدال Perl، وسيتم استخدام JS بناءً على إطار عمل معين لتفاعل المستخدم مع الخدمات الصغيرة والوظائف. سأخبرك بالقرار النهائي في المقالة المقابلة في السلسلة. للتواصل بين الوظائف، اخترت NATS.io، لأنني واجهته من قبل، كما أنه يتميز بسهولة التكامل مع Kubernetes.

إعلان

  • مقدمة
  • إعداد بيئة التطوير، وتقسيم المهمة إلى وظائف
  • العمل الخلفي
  • عمل الواجهة الأمامية
  • إنشاء CICD وتنظيم الاختبارات
  • ابدأ جلسة لعبة تجريبية
  • نتائج

المصدر: www.habr.com

إضافة تعليق