Выход ремастера The Elder Scrolls IV: Oblivion вновь актуализировал дискуссию о различиях между ремастером и ремейком. Традиционно считается, что ремастер — это слегка улучшенная версия оригинала без кардинальных изменений, тогда как ремейк предполагает перенос игры на совершенно новый движок. Однако новый Oblivion работает на Unreal Engine 5, оставаясь при этом ремастером. Это стало возможно благодаря технологии Engine Wrapper — своего рода “оболочки”, которая позволяет использовать новый движок, не меняя основной сути игры. Давайте разберемся, как это работает.
Engine Wrapper, или “обертка для движка” в дословном переводе, точно описывает принцип работы. В основе такого подхода лежит использование оригинального кода и движка игры, который интегрируется в новый. Новый движок как бы “оборачивает” старый, позволяя перехватывать и обрабатывать определенные элементы. В широком смысле, Wrapper в ПО — это программа, дающая возможность запускать код в среде, для которой он изначально не предназначался. Простейший аналог — эмуляция, позволяющая играть в игры для PlayStation на ПК. Разница в том, что эмуляция имитирует аппаратное обеспечение, а Wrapper работает преимущественно на программном уровне.
Ранними примерами “оборачивания” можно считать source-порты старых шутеров, например, GZDoom. Хотя это новый движок, ему необходимы оригинальные файлы игры. Более показателен официальный порт DOOM от Bethesda на движке Unity, где используется уже готовая современная платформа.
Одним из наиболее известных современных Engine Wrapper является KEX Engine от Nightdive Studios. На его основе было выпущено множество обновленных версий классических игр, таких как Turok, Blood, Quake, Killing Time, а также адвенчуры Shadow Man, Blade Runner и хоррор The Thing. Эти игры изначально работали на совершенно разных движках, но KEX Engine смог их “обернуть”.
KEX Engine представляет собой высокоуровневую надстройку. Он позволяет запускать оригинальный код практически без изменений, при этом, благодаря поддержке множества внешних библиотек и API, он “перехватывает” определенные функции игры и позволяет заменить их на современные реализации. Это дает возможность легко улучшать графику, менять модели, повышать разрешение и частоту кадров, а также добавлять поддержку многопоточности. Плюс ко всему, Engine Wrapper значительно упрощает портирование игр: например, Turok, изначально эксклюзив Nintendo 64, теперь доступен на множестве платформ.
Другой яркий пример — переиздание Halo 2: Anniversary. Оно базируется на оригинальной игре 2001 года и ее движке Blam!, который отвечает за всю внутреннюю логику, триггеры и физику. Поверх него “наложен” упрощенный рендерер от Halo Reach. Он получает данные от оригинального движка и обрабатывает их, создавая обновленную картинку. Это возможно, потому что игра 2001 года по современным меркам требует минимальных ресурсов. Отсюда и функция мгновенного переключения между старой и новой графикой: новый рендерер просто отключается, и становится виден старый, работавший все это время в фоновом режиме.
Еще один громкий кейс — GTA: The Trilogy — The Definitive Edition, вышедшая в 2021 году. Игра использует оригинальный движок RenderWare, но для отрисовки графики задействован Unreal Engine 4. Это позволило внести значительные улучшения в визуальную часть, не затрагивая при этом основную игровую механику: физика, ИИ трафика и пешеходов, а также большая часть анимаций остались из оригинала. В то же время были обновлены интерфейс, текстуры, модели, погодные эффекты, освещение и растительность. Итоговое качество ремастера вызвало много споров, но сам по себе пример хорошо демонстрирует возможности технологии.
Аналогичная ситуация с новым Oblivion: под “капотом” скрывается оригинальный движок Gamebryo со всеми его файлами, а сверху “наложен” Unreal Engine 5. Энтузиасты быстро обнаружили, что в файлах ремастера хранится полный оригинал игры, и его даже можно модифицировать инструментами 2006 года. Однако попытки внести изменения на базовом уровне могут вызывать ошибки из-за специфики работы Engine Wrapper в данном случае. Именно поэтому пока невозможно просто перенести существующие моды, хотя это, возможно, лишь вопрос времени.
हिंदी अनुवाद
The Elder Scrolls IV: Oblivion के रीमास्टर के रिलीज़ होने से एक बार फिर रीमास्टर और रीमेक के बीच की सीमा का सवाल उठ खड़ा हुआ है। पारंपरिक रूप से, यह माना जाता है कि रीमास्टर मूल गेम का थोड़ा बेहतर संस्करण है जिसमें कोई मौलिक बदलाव नहीं होता, जबकि रीमेक में गेम को पूरी तरह से नए इंजन पर ले जाना शामिल होता है। हालांकि, नया Oblivion Unreal Engine 5 पर चलता है और फिर भी रीमास्टर ही है। यह Engine Wrapper नामक तकनीक के कारण संभव हुआ है – एक प्रकार का “शेल” जो मूल गेम के मुख्य सार को बदले बिना एक नए इंजन का उपयोग करने की अनुमति देता है। आइए समझें कि यह कैसे काम करता है।
Engine Wrapper, या शाब्दिक अनुवाद में “इंजन रैप”, काम के सिद्धांत को सटीक रूप से बताता है। इस दृष्टिकोण का आधार मूल गेम के कोड और इंजन का उपयोग है, जिसे नए इंजन में एकीकृत किया जाता है। नया इंजन पुराने को “लपेटता” है, जिससे कुछ तत्वों को इंटरसेप्ट और प्रोसेस किया जा सके। व्यापक अर्थों में, सॉफ्टवेयर में Wrapper एक प्रोग्राम है जो कोड को ऐसे वातावरण में चलाने की अनुमति देता है जिसके लिए वह मूल रूप से अभिप्रेत नहीं था। सबसे सरल उदाहरण एमुलेशन है, जो पीसी पर PlayStation गेम खेलने की अनुमति देता है। अंतर यह है कि एमुलेशन हार्डवेयर की नकल करता है, जबकि Wrapper मुख्य रूप से सॉफ्टवेयर स्तर पर काम करता है।
पुराने गेमों को “लपेटने” के शुरुआती उदाहरणों में पुराने शूटरों के सोर्स-पोर्ट्स शामिल हैं, जैसे GZDoom। हालांकि यह एक नया इंजन है, इसे मूल गेम फ़ाइलों की आवश्यकता होती है। एक अधिक स्पष्ट उदाहरण Bethesda द्वारा Unity इंजन पर DOOM का आधिकारिक पोर्ट है, जहां एक तैयार आधुनिक प्लेटफॉर्म का उपयोग किया जाता है।
सबसे प्रसिद्ध आधुनिक Engine Wrapper में से एक Nightdive Studios का KEX Engine है। इसके आधार पर Turok, Blood, Quake, Killing Time जैसे क्लासिक गेमों के कई अपडेटेड संस्करण जारी किए गए हैं, साथ ही एडवेंचर गेम Shadow Man, Blade Runner और हॉरर गेम The Thing भी। ये गेम मूल रूप से पूरी तरह से अलग-अलग इंजनों पर चलते थे, लेकिन KEX Engine उन्हें “लपेटने” में सक्षम था।
KEX Engine एक उच्च-स्तरीय परत है। यह मूल कोड को लगभग बिना किसी बदलाव के चलाने की अनुमति देता है, जबकि कई बाहरी लाइब्रेरी और API के समर्थन के कारण, यह गेम के कुछ कार्यों को “इंटरसेप्ट” करता है और उन्हें आधुनिक कार्यान्वयन से बदलने की अनुमति देता है। यह ग्राफिक्स को आसानी से बेहतर बनाने, मॉडल बदलने, रिज़ॉल्यूशन और फ्रेम रेट बढ़ाने, साथ ही मल्टी-थ्रेडिंग के लिए समर्थन जोड़ने की अनुमति देता है। इसके अलावा, Engine Wrapper गेम पोर्टिंग को बहुत सरल बनाता है: उदाहरण के लिए, Turok, जो मूल रूप से Nintendo 64 का एक्सक्लूसिव था, अब कई प्लेटफार्मों पर उपलब्ध है।
एक और शानदार उदाहरण Halo 2: Anniversary का री-रिलीज़ है। यह 2001 के मूल गेम और उसके Blam! इंजन पर आधारित है, जो सभी आंतरिक तर्क, ट्रिगर और भौतिकी के लिए जिम्मेदार है। इसके ऊपर Halo Reach का एक सरलीकृत रेंडरर “लागू” किया गया है। यह मूल इंजन से डेटा प्राप्त करता है और एक अपडेटेड छवि बनाने के लिए उन्हें प्रोसेस करता है। यह संभव है क्योंकि 2001 का गेम आधुनिक मानकों के अनुसार न्यूनतम संसाधनों की मांग करता है। इसलिए पुरानी और नई ग्राफिक्स के बीच तुरंत स्विच करने की सुविधा भी है: नया रेंडरर बस बंद हो जाता है, और पुराना, जो उस समय बैकग्राउंड में चल रहा था, दिखाई देने लगता है।
एक और प्रमुख मामला GTA: The Trilogy — The Definitive Edition है, जो 2021 में जारी हुआ था। गेम मूल RenderWare इंजन का उपयोग करता है, लेकिन ग्राफिक्स प्रस्तुत करने के लिए Unreal Engine 4 का उपयोग किया गया। इसने मुख्य गेमप्ले को प्रभावित किए बिना विज़ुअल पार्ट में महत्वपूर्ण सुधार करने की अनुमति दी: भौतिकी, ट्रैफिक और पैदल चलने वालों का AI, साथ ही अधिकांश एनिमेशन मूल से ही बने रहे। साथ ही, इंटरफ़ेस, टेक्सचर, मॉडल, मौसम प्रभाव, प्रकाश व्यवस्था और वनस्पति को अपडेट किया गया। रीमास्टर की अंतिम गुणवत्ता पर बहुत विवाद हुआ, लेकिन यह उदाहरण स्वयं ही तकनीक की क्षमताओं को अच्छी तरह से दर्शाता है।
नए Oblivion के साथ भी यही स्थिति है: “हुड के नीचे” सभी फ़ाइलों के साथ मूल Gamebryo इंजन छिपा हुआ है, और ऊपर Unreal Engine 5 “लागू” किया गया है। उत्साही लोगों ने जल्दी से पाया कि रीमास्टर की फ़ाइलों में गेम का पूरा मूल संस्करण संग्रहीत है, और इसे 2006 के मॉडिंग टूल का उपयोग करके संशोधित भी किया जा सकता है। हालांकि, मूल स्तर पर बदलाव करने के प्रयास इस मामले में Engine Wrapper के काम करने के तरीके की बारीकियों के कारण त्रुटियां पैदा कर सकते हैं। इसीलिए मौजूदा मोड को आसानी से पोर्ट करना अभी संभव नहीं है, हालांकि यह शायद केवल समय की बात है।