Skip to content
DOOM 3 for iOS and tvOS for Apple TV
C++ C Objective-C Objective-C++ Swift Shell Other
Branch: master
Clone or download
Latest commit a1959e6 Apr 10, 2019

README.md

DOOM 3 for iOS and tvOS for Apple TV

 

This is my port of DOOM 3 for iOS, running in modern resolutions including the full width of the iPhone X. I have also made a target and version for tvOS to run on Apple TV.

screenshot

Features

  • Tested and builds on Xcode 10.
  • Runs single player campaigns at full screen and full speed on iOS
  • Support for original campaign and expansion pack campaigns via separate apps.
  • MFi controller support (reccomended) and on-screen control options
  • Second project target for tvOS that takes advantage of focus model and removes on-screen controls.
  • Limited support for native menus of original game

This commit does not need any placeholder resources as it is not an update of an existing id Software port.

NOTE: this is a port of the original DOOM 3 from 2004, not the DOOM 3: BFG Edition from 2012

You will need to provide your own copies of the base and d3xp directories from an existing instalation of DOOM 3. The latter directory is only needed if you want to run the expansion. You can buy DOOM 3 on Steam here. You can buy the expansion pack DOOM 3: Resurrection of Evil on Steam here. Note that GOG does not sell the original game, they only sell the BFG Edition which is incompatible with this release.

There are two Xcode project files, one for DOOM 3, DOOM3-iOS.xcodeproj, and one for the expansion pack, DOOM3xp-iOS.xcodeproj. You will need to drag your directories into the project and select "Create Folder References". The base folder needs to be added to the DOOM 3 project and target, while both the base and d3xp folders need to be added to the expansion pack project. The folders will be blue if you've done it right:

folders

foldersxp

You can read a lengthy blog article on how I did all this here.

This port was based on dhewm3 and uses SDL for iOS. I also referenced to this fork for WebAssembly/WebGL from Gabriel Cuvillier for OpenGL ES code. On-screen joystick code came from this repo by Brad Howe. Font Diablo Heavy available here. I also studied the iOS port of Hedgewars for information on how to use UIKit alongside SDL.

Video of DOOM 3 running on an iPhone X

I have also made apps for Wolfenstein 3-D, DOOM, DOOM II and Final DOOM, Quake, Quake II, Quake III: Arena and Return to Castle Wolfenstein.

Have fun. For any questions I can be reached at tomkidd@gmail.com

You can’t perform that action at this time.