تحديث الألعاب القديمة

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

حين أتحدث عن تحديث تلك الألعاب، لا أقصد بالتحديث إصدار محتويات إضافية additional content، و لا أقصد التحديثات البرمجية software update، بل أقصد تحديث اللعبة و عصرنتها modernize لتتلاءم مع التطور التقني في المنصات الحديثة، مثل دعم أبعاد الشاشة 16:9 أو أي أبعاد موجودة في الشاشات و جودة الخامات الرسومية textures المرتفعة و جودة الصوت العالية.

يتمثل أبرز أساليب تحديث الألعاب في إعادة تطوير اللعبة من الصفر، و هذا يشمل إعادة تصميم البيئات و الشخوص و تسجيل أصوات مختلفة و صناعة مؤثرات صوتية و توزيع خلفيات موسيقية و الأهم برمجتها تختلف بالكامل، و بالعادة يستخدم محرك مختلف عن محرك اللعبة الأصلية. هذا النوع من التحديث يسمى إعادة صنع remake. يختلف توجه مطوري الألعاب في إعادة الصنع، منهم من يحافظ على تصميم اللعبة الأصلية مع وجود بعض التغييرات القليلة مثل Dead Space (يعبر عنها أنها إعادة صنع مخلصة faithful remake)، و منهم من يغير اللعبة و يجعلها مختلفة عن الأصلية و الشبه في القصة و بعض العناصر في البيئة المحيطة مثل Resident Evil 2، و منهم من يجمع بين الأسلوبين مثلما حصل في Resident Evil 4. الجهد اللازم في إعادة الصنع كبير، لأنه أشبه بتطوير لعبة جديدة، الفرق أنه في إعادة الصنع لدى المطور تصور أوضح عن اللعبة و كأنه يملك مخطط blueprint لها. الجيد في الأمر هو الاستفادة الكاملة من التطور التقني الأحدث الموجود وقت إصدار اللعبة.

من وسائل تحديث الألعاب أيضاً تحديث محرك اللعبة ليدعم المنصات الحديثة و التحديثات المطلوبة، وقد يأتي معه إضافات في أسلوب اللعب. عرف هذا النوع من التحديث في الماضي باسم نقل محسن enhanced port، و هو معبر كثيراً عن طبيعة الألعاب برامج مثل أي برامج تنقل من منصة لأخرى، لكن لسبب ما صارت تسمية رفع جودة remaster التسمية الشائعة لكنها مصطلح مختص بالأفلام و المسلسلات التي هي عبارة عن صور متحركة و صوتيات ليست برامح كالألعاب. الأمثلة كثيرة لكن يعجبني إصدار Final Fantasy XII The Zodiac Age الذي أضاف على اللعبة الأصلية الكثير مثل دعم أبعاد 16:9 و تسريع اللعبة (الإيقاع البطيء مشكلة متجذرة في ألعاب RPG اليابانية) و إضافة أصوات أوركسترا و الحفظ التلقائي و سرعة التحميل. بعض الألعاب لما تنقل من مصة لأخرى لا تحمل معها الكثير من التغييرات.

أتاح بعض المطورين رماز المصدر source code للمحركات التي عملوا عليها و جعلها مفتوحة المصدر، و هذا سمح لمطورين آخرين تطوير المحرك و إضافة خصائص لم يدعمها المحرك الأصلي. يسمى هذا نقل المصدر source port. أبرز مثال على هذا محرك Doom الذي أتاحه مطورو id و بنى عليه مطورون آخرون و ظهرت محركات كثيرة مثل GZDoom و Vanilla Doom و Choclate Doom و غيرها. أهم ما تضيفه المحركات دعم مختلف أبعاد الشاشات و دعم يد تحكم XBOX360 و تغيير شكل الواجهة. اللافت هنا أن هذا سمح بنقل لعبة Doom الأصلية لأجهزة لا علاقة لها بالألعاب مثل آلات حاسبة و مشغلات صوتيات. هذا غير المحتوى الإضافي الذي صنعه اللاعبون و ألعاب مختلفة على نفس المحرك. الجيد في هذا أننا نلعب Doom على أجهزة حديثة و لا نحتاج للمحاكيات التي لها تكلفة overhead في الأداء. المحرك لا يستبدل الملفات الأصلية بل يحتاجها، و هذه الملفات ضرورية لأنها محمية الحقوق copyright و ملكية خاصة لأصحابها. المختلف هو مشغل launcher اللعبة.

ليس كل محرك مصدره متاح، و بعض الألعاب القديمة محدودة بسبب برمجة المحرك. بعض المبرمجين يسعون لفهم طريقة عمل المحركات القديمة عن طريق الهندسة العكسية reverse engineering، و يطورون محرك جديد بهدف لعب اللعبة القديمة لكن دون مشكلاتها بسبب محركها الأصلي. يسمى هذا إعادة صنع محرك اللعبة game engine recreation. مشروع ScummVM يعمل على إعادة صنع محركات قديمة أكثرها ألعاب مغامرات قديمة (التي تعتمد على حل الألغاز) و قليل منها RPG غربي. أنا مهتم أكثر بمشروع openMW الذي يسعى لبرمجة محرك بديل للعبة The Elder Scrolls Morrowind يحل مشكلات اللعبة القديمة.

تعمل الألعاب منذ بداية التسعينات من خلال محركات الألعاب، و تبرمج المحركات بلغات البرمجة عالية المستوى التي يسهل نقلها من منصة لأخرى. كانت الألعاب موجهة لمنصة خاصة بحيث تبرمج بلغة الآلة لتلك المنصة، و هذا كان الحال في حواسيب الثمانينات و منصات الألعاب المنزلية ذات رسوم البكسل. لا سبيل لتحديث تلك الألعاب و لعبها على منصات حديثة. الوسائل المتاحة غير مباشرة منها تحويل برمجة اللعبة إلى كود حديث عن طريق عكس الترجمة decompilation، و هذا الأسلوب يتطلب التدخل البشري. إحدى الوسائل التي رأينا نتيجتها ما فعله Christian Whitehead مبرمج محرك Retro Engine، فقد نقل ألعاب سونيك القديمة أول مرة لمنصة iOS. ما فعله هو سحب الملفات الرسومية من تلك الألعاب و برمجة الألعاب بالكامل من الصفر. ما فعله هو بالضبط إعادة صنع remake لتلك الألعاب، و تلك الألعاب بدورها نقلت و جمعت في تجميعة Sonic Origins. من فائدة برمجة ألعاب سونيك من الصفر دعم أبعاد 16:9 التي يصعب دعمها في الألعاب القديمة التي لا تعمل في محرك، و دعم معدل إطارات 60 إطار في الثانية، و الحفظ التلقائي بعد كل مرحلة.