Skip to content

rebelancap/Quake3-iOS

 
 

Repository files navigation

Quake III: Arena for iOS

 

Full-featured Quake III Arena port with multiplayer, modern controller support, mod support, console management with virtual keyboard, easy menu navigation with controller, touchscreen controls, and iOS Shortcuts support (to launch a q3 mod directly).

Installation

Checkout releases to sideload Quake 3 via Xcode, Sideloadly, Altstore, etc. Or build it yourself. Then use Files app or macOS Finder to transfer baseq3 folder or other mods.

Important Info

  • Use macOS Finder or Files app to transfer baseq3 or mod folders.

  • Set up your .cfg files (containing your settings and bindings) and place in baseq3 or other mod folders. Here are my examples for baseq3 and q3ut4 (Urban Terror).

  • Tap the π symbol in the bottom right corner to launch full version of Quake 3. (A slower way is use the simplified frontend to create any game, then press START, Exit Arena.) Or create an iOS Shortcut to launch directly, including your mod and map of choice!

  • Menu Navigation. You can navigate the Quake 3 menus by using DPAD, A (Enter), B or START (Esc). Or use left joystick to move mouse, Right Trigger to mouse click. These would have to be changed in Xcode, but you can generally change any in-game bindings/preferences with the .cfg files. If touch only, theres a DPAD, Enter, Esc, and Tab overlay, then Q (Disconnect) while in-game.

  • Console Management. Press both thumbsticks down to triggle console + virtual keyboard. (or C button in top right if no controller) Use con_scale to increase text size and con_margin to increase margin padding (if you have a notch). e.g. con_scale 2.0 & con_margin 130 is what I use on an iPhone 16 Pro Max.

  • Note! If your controller gets disconnected, you need to restart the game to reconnect the controller. Had to disable SDL controller and enable Native GameController Framework to get MFi controllers to work. Claude and I could not figure out a way to solve this.


Background: I could not get @tomkidd's port to work with any of my controllers: Backbone Pro, Gamesir G8, any bluetooth controllers, etc. I know very little about coding, so Claude is to thank for most of this. Slowly vibe coded in features I wanted.


Original README:

This is my port of Quake III: Arena 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 without warnings on Xcode 9.4.1.
  • Runs single player campaigns at full screen and full speed on iOS
  • Multiplayer support, including server browser
  • 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.

You will need to provide your own copies of the baseq3 directory from an existing instalation of Quake III: Arena. You can grab the whole thing with expansions on GOG or Steam.

You will need to drag your directories into the project and select "Create Folder References" and add them to both the Quake3-iOS and Quake-tvOS targets. The folders will be blue if you've done it right:

folders

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

This repo was based on the code from Beben III by Ronny Stiftel (more info here), ultimately derived from ioquake3. On-screen joystick code came from this repo by Brad Howe. Quake font DpQuake by Dead Pete available here. Code to query servers came from Q3ServerBrowser on GitHub by Andrea Giavatto.

I have now modified the code to use SDL for iOS, employing OpenGL ES work from Zack Middleton. The original, GLKit-based version is available on the legacy branch.

Video of Quake III: Arena running on an iPhone X

Video of Quake III: Arena running on an Apple TV

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

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

About

Quake III: Arena for iOS and tvOS for Apple TV

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 96.4%
  • Swift 1.2%
  • Makefile 0.7%
  • HTML 0.6%
  • Objective-C 0.4%
  • Assembly 0.2%
  • Other 0.5%