В 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, в проектах Кидда нет графики и звуки. Файлы для запуска придется доставать самостоятельно из оригинальных версий.
Автор: arttom