2 May 2019

Энтузиаст портировал Doom 3 и другие игры id Software на iOS, но так просто их не запустить

Development for iOSGame developmentGames and game consoles
В 2009 году id Software выпустила Wolfenstein 3D и Doom на iOS, когда операционная система была 32 битной. Сейчас она 64 битная и начиная с версии iOS 10.3, которая вышла в 2017 году, 32 битные приложения не поддерживаются. Поскольку id Software давно перестала обновлять мобильные релизы, на новых девайсах игры уже не запустить. Но мобильный разработчик Том Кидд решил это исправить. А после портировал на платформу и другие шутеры компании.

Тем не менее, купить их в App Store и просто так поиграть не получится.

В апреле прошлого года Кидд рассказал, как адаптировал 32 битные приложения под новые версии iOS. По его словам, в чем-то работа оказалась проще, в чем-то сложнее, чем он ожидал.
Wolfenstein 3D разрабатывали с помощью SDK для iPhone OS 2 (то есть, iOS 2, если бы ее тогда так называли). Некоторые странные на первый взгляд решения, с которыми я столкнулся, думаю можно объяснить тем, что общепринятые методы были неправильными или просто не существовали в 2009.

Кидд рассчитывал, что просто перекомпилирует проект, исправит пару ошибок и воспользуется опытом тех, кто уже пробовал сделать это раньше. Но процесс оказался долгим и сложным.

В работе он использовал исходный код, который id Software выкладывает на своей странице в Github. C 1995 компания начала распространять исходники своих проектов в образовательных целях. Результаты работы с ними нельзя продавать, к тому же в проектах отсутствуют многие файлы, например, звуковые библиотеки, которые защищены авторским правом, графика и уровни. Без них исходники не получится скомпилировать.

После того, как Кидд адаптировал игры под 64-битные системы, он потратил следующий год на портирование почти всех старых шутеров id Software на iOS, и ему это удалось.



Для порта Quake Кидд взял за основу версию игры для Google Cardboard, затем приступил к Quake III Arena, поскольку у нее тоже была старая портированная версия. Quake II Кидд портировал полностью сам, с нуля, как и Doom 3. Ее порт, как признается Кидд, был самой сумасшедшей задачей.
Я взял SDL из порта Quake II и использовал как основу для Doom 3. Но это было трудно увязать с OpenGL кодом, пока я не нашел чью-то версию для WebAssembly, откуда удалось взять то, что мне нужно.

Чтобы запустить игры на своем устройстве нужно скачать проект, собрать его на Маке с установленным Xcode и аккаунтом разработчика. Но как и в исходниках от id Software, в проектах Кидда нет графики и звуки. Файлы для запуска придется доставать самостоятельно из оригинальных версий.
Tags:id softwaredoomdoom 3quakewolfenstein 3dios
Hubs: Development for iOS Game development Games and game consoles
+23
9.4k 3
Comments 2
Popular right now