مرحبا شباب! سيخبرك النص أدناه حول كيفية قيامي بتطوير لعبة MMO الخاصة بي عن الملاحقون والتحف والانبعاثات والدراجات حول النار لمدة عامين ونصف.

بدأ كل شيء بحقيقة أنه ، لأول مرة في حياتي ، تمكنت من نقل المعلومات من جهاز إلى آخر باستخدام مآخذ. الضغط على زر اللمس على شاشة الهاتف الذكي جعل الصندوق الأسود على شاشة الكمبيوتر المحمول يتحرك. فرحي لا يعرف حدودا. هذا هو نوع من السحر ، فكرت. تقرر على الفور - "هذا كل شيء ، أقوم بلعب لعبة على الإنترنت." منذ أن كنت من محبي الملاحق ، فإن السؤال - "ما نوع لعبة الإنترنت؟" عن حقيقة أن الألعاب ليست سهلة الصنع ، كنت أعرف. حقيقة أن ممارسة الألعاب عبر الإنترنت ليست سهلة للغاية ، خمنت. لكن في تلك اللحظة ، لم أعلق عليها أدنى أهمية من الفرح والإلهام.
وقد بدأ التطوير. نظرًا لأنني لا أعرف كيفية الرسم ، فقد تم طرح السؤال فورًا حول الرسومات. وتم العثور على الإجابة على هذا السؤال. ذات مرة ، على الهواتف القديمة بضغطة زر (j2me) ، قام عشاق اللعبة المستقلين بتطوير لعبة "Zone of Aliation". إذا وصفت اللعبة باختصار ، فهذا مطارد ثنائي الأبعاد للجوال. كانت الرسومات من هذه اللعبة مثالية لمشروعي. اتصلت بمؤلف الرسومات ، Pavel Shevelev ، وطلبت إذنًا لاستخدامها في لعبتي. لم يرفض بولس بل ووجه شيئًا آخر ، والذي شكره كثيرًا عليه.

كذلك كان مطلوبا لكتابة التعليمات البرمجية. تحريك المربع الأسود هو شيء واحد ، وجعل لعبة كاملة شيء آخر. إذا كنت تقود محرك البحث - "كيف تصنع لعبة على الإنترنت؟" ، فلن تجد إجابة محددة يمكن أن تساعد قليلاً. المعلومات الواردة في RuNet حول هذه القطة تبكت ، ولكن حول الأمثلة التي أكون صامتًا عليها بشكل عام. لكنني تمكنت مع ذلك من العثور على معلومات حول هابري عن محاضرات الفيديو التي أجراها فيتالي تشيبريكوف ، والتي تحدثت عن كيفية كتابة خادم لعبة على الإنترنت. بعد أن درست جميع المحاضرات التسع بشكل شامل (تستغرق محاضرة واحدة حوالي ساعتين في المتوسط) ، ما زلت أتمكن من بناء هيكل قوي للتفاعل بين العميل والخادم على أساس لعبتي المستقبلية. إذا لم يكن الأمر كذلك بالنسبة لـ Vitaly ، فلن أحقق هذه النتيجة ، والتي أتوجه بالشكر الجزيل إليه. بضع كلمات حول التقنيات التي استخدمتها - تتم كتابة الخادم في جافا ، قاعدة بيانات MySql ، اتصال شبكة netty. تتم كتابة العميل أيضًا في java باستخدام إطار libgdx.

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

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

في الوقت الحالي ، نفذت اللعبة: 20 موقعًا ، نهارًا وليلًا ، المطر ، حماية الأصناف النباتية ، pve ، 3 أنواع من الغوغاء ذوي السلوكيات المختلفة ، هجمات الغوغاء الضخمة على القاعدة ، مدرب غارة ، 13 قطعة أثرية بخصائص مختلفة ، 8 حالات شاذة مع تأثيرات مختلفة ، مسامير للبحث عن الشذوذ ونزع فتيله ، 8 أسئلة ، ونظام تجربة ومهارات التسوية ، مطارد pda ، والإشعاع ، والانبعاثات ، والتجمعات ، وحرب التجمعات على الأراضي ، npc الذين يمكنهم إطلاق النار على المسوخ والاختباء من الانبعاثات في المنازل ، ونظام حقائب الظهر والعناصر ، والتجارة مع مجلس الشعب واللاعبين ، 9 أنواع من الدروع ، 7 أنواع من الأسلحة ، وكاشف anoma كاشف الإشعاع ، غيتار ، بالإضافة إلى حوالي 15 عنصرًا مختلفًا ، وبالطبع فرصة الجلوس بجوار النار والدردشة مع لاعبين آخرين. أود أيضًا أن أتطرق إلى طريقة استخراج القطع الأثرية. تُولد القطع الأثرية بعد طردها في الحالات الشاذة ، وهي غير مرئية في البداية للاعب ، ولكي يتم رفع هذه القطع الأثرية ، من الضروري الوفاء بعدد من الشروط المعينة الفريدة لكل قطعة أثرية. على سبيل المثال ، للحصول على قطعة أثرية من "الدم" ، من الضروري أن تكون شذوذ الإلكترون من المستوى الثاني ، عندما يتم تشغيله (إلقاء البراغي) ، على اتصال مع شذوذ السحابة الحمضية (الذباب على طول الخريطة في اتجاه تعسفي). أو للحصول على "القلب" ، تحتاج إلى استخدام قطعة أثرية "زرقاء" (تخلق حالة شاذة جديدة) بحيث تحصل الشذوذ الجديد على زخم الشذوذ ، بالإضافة إلى عدم وجود ضوء الشمس المطلوب ، أي أنه لا يمكن الحصول على قطعة أثرية إلا في الليل.

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