تقطعت بهم السبل: Alien Dawn - نصائح تعديل متقدمة

بعض النصائح التي قد تساعد في تطوير تعديلات S: AD أكثر تعقيدًا.

 

استخدم التحكم في الإصدار

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

%appdata%\Stranded - Alien Dawn\Mods

مراقبة أخطاء وقت التشغيل

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

%appdata%\Stranded - Alien Dawn\logs

تكمن المشكلة في أن اللعبة يجب أن تنتهي من أجل مسح سجل اللعبة الذي تم إنشاؤه. هذا ليس عمليًا لتصحيح الأخطاء لأنه من الصعب ربط الأخطاء في السجل بأحداث معينة داخل اللعبة. هناك طريقة بسيطة لمراقبة سجل اللعبة في الوقت الفعلي خارج خريطة التعديل. كل ما تحتاجه هو Visual Studio IDE. عند إرفاقه بعملية اللعبة من القائمة Debug - Attach To Process (أو الاختصار Ctrl-Alt-P) ، سيكون كل سجل اللعبة ، بما في ذلك الأخطاء ، مرئيًا في الوقت الفعلي في نافذة "الإخراج". يجب أن تسمى عملية البحث عن اللعبة عند إرفاقها "StrandedSteam.exe". بالنسبة لأولئك الذين ليسوا على دراية ببرنامج Visual Studio ، هناك إصدار مجاني باسم "المجتمع" يمكن تنزيله من موقع visualstudio.

رمز وضع الكتابة

يستخدم محرك اللعبة S: AD Lua كلغة منطقية للعبة ، على الرغم من أنها ليست نسخة الفانيليا ، ولكنها نسخة معدلة - هناك الكثير من الوظائف الإضافية أو المتغيرة أو المحذوفة في libs القياسية. رمز التعديل موجود في Lua أيضًا ، على الرغم من أن إصدار التعديل لا يستخدم النسخة الأصلية ، ولكن بيئة محدودة ، حيث يتم وضع وظائف معينة في القائمة السوداء. لغة Lua نفسها سهلة للغاية ، ويمكن لأي شخص على دراية بـ JavaScript أو Python استخدامها بدون مشكلة هناك العديد من IDE التي يمكن استخدامها لتحرير ملفات Lua. الأكثر شعبية هي Visual Studio Code و Sublime ، وكلاهما مجاني. لاحظ أن Steam قد يعتبر أن اللعبة لا تزال قيد التشغيل بعد إغلاقها ، إذا تم تشغيل Lua IDE من بيئة التعديل. إذا كانت هذه هي الحالة ، فما عليك سوى إغلاق IDE.

استخدم وحدة التحكم في اللعبة

على خريطة محرر التعديل ، من الممكن فتح وحدة تحكم داخل اللعبة عبر مفتاح ENTER. يسمح بالتحقق من قيمة أي متغير للعبة ، مما يجعله أداة اختبار جيدة. يتم تقييم أي شيء تمت كتابته في وحدة التحكم كرمز Lua في وقت التشغيل ، وتتم طباعة النتائج على الشاشة.
على سبيل المثال ، عند تحديد كائن ، فإن المتغير العام المسمى SelectedObj يكون له الكائن المحدد كقيمة. تؤدي كتابة ذلك في وحدة التحكم إلى طباعة محتويات الكائن ، والتي يمكن أن تكون نصًا كبيرًا جدًا. لذلك من الجيد البحث عن معلومات محددة داخل الكائن. إذا تمت كتابة نقطة (.) بعد SelectedObj (فهذه هي الطريقة التي يتم بها الوصول إلى الأعضاء في Lua) ، فسيؤدي الضغط على المفتاح TAB إلى إظهار محتويات الكائن في قائمة يمكن الاختيار منها.
متغير عالمي مهم آخر يمكن أن يساعد في تصحيح الأخطاء هو UIPlayer. هذه مساحة اسم للعديد من قيم اللعبة المهمة. على سبيل المثال ، تحتفظ UIPlayer.labels.Buildings بقائمة تحتوي على جميع المباني الموضوعة ، بينما UIPlayer.labels.Survivors عبارة عن قائمة تحتوي على جميع الناجين الذين تم تكاثرهم. سيؤدي كتابتها في وحدة التحكم إلى تسجيل قدر كبير جدًا من النص ، وهو أمر غير عملي للغاية. هناك وظيفة مساعدة تسمى ValueToStr ، والتي يمكن استخدامها لإظهار المزيد من النصوص التي يمكن للبشر قراءتها. أمثلة: ValueToStr (SelectedObj) و ValueToStr (UIPlayer.labels).
تدعم وحدة التحكم الإكمال التلقائي عبر مفتاح TAB أيضًا. بهذه الطريقة ليست هناك حاجة لمعرفة الاسم الدقيق لمتغير شامل معين أو عضو كائن.
لمسح الشاشة من النص المطبوع ، استخدم مفتاح F9.

العمل مع بيانات اللعبة

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

OpenPresetEditor("<PresetClass>")

أين يجب استبداله بالفئة المحددة المراد فحصها. على سبيل المثال ، ستؤدي الكتابة في وحدة التحكم OpenPresetEditor (“FXPreset”) إلى فتح محرر FX ، الذي يحتوي على أحد أكثر عناصر البيانات غموضًا - المؤثرات المرئية والصوتية.

By إينتوجكا

المزيد من الأدلة:

اترك تعليق

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish