idTech engine games For Android. An idTech games runtime libraries collection on Android
DOOM 3 BFG/The Dark Mod/Quake 1 2 3/RTCW/GZDOOM/ETW/RealRTCW/FTEQW/STAR WARS™ Jedi Knight/Serious Sam Classic/Urban Terror/OpenMOHAA/Skin Deep/Quadrilateral Cowboy/Icarus Starship Command Simulator on Android
Latest version:
1.1.0harmattan72(lindaiyu)
Latest update:
2026-03-08
Arch:
arm64 armv7-a
Platform:
Android 4.4+
License:
GPLv3
- Linux/Windows(MinGW/MSVC(without editor)) build
- multi-threading renderer
- pure soft shadow with shadow-mapping
- soft shadow with stencil-shadow and translucent stencil shadow
- global illumination rendering
- lighting model: Phong/Blinn-phong/PBR/Ambient/No-lighting
- Wide-character language translation and BFG new fonts support
- debug render tools support with programming render pipeline
- OpenGLES2.0/OpenGLES3.0
- png/dds/bimage texture image, jpeg/png/bmp/dds format of screenshot
- obj/dae/md5mesh format static model
- psk&psa/iqm/gltf&glb/fbx format animation/static model
- OpenAL(soft) and EFX Reverb
- Float console
- DOOM3(with full body awareness mod, view body mod, bot mod, view flashlight mod)
- Quake4(with bot mod, full body awareness mod, view body mod) and Raven's idTech4 engine
- Prey(2006)(with full body awareness mod) and HumanHead's idTech4 engine
| Game | Engine | Version | OpenGL ES version | Vulkan version | Standalone folder (* means always enabled) |
Mods/Plugins |
|---|---|---|---|---|---|---|
| DOOM III | n0n3m4's dante | - | 2.0/3.0 | doom3 | Resurrection of Evil The Lost Mission Classic DOOM3 Rivensin HardCorps Overthinked Doom^3 Sabot(a7x) HeXen:Edge of Chaos Fragging Free LibreCoop LibreCoop D3XP Perfected Doom 3 Perfected Doom 3:RoE Doom 3: Phobos(Dhewm3 compatibility patch) |
|
| Quake IV | n0n3m4's dante | - | 2.0/3.0 | quake4 | Hardqore | |
| Prey(2006) | n0n3m4's dante | - | 2.0/3.0 | prey | ||
| DOOM 3 BFG(Classic DOOM 1&2) | RBDOOM-3-BFG | 1.4.0 (The last OpenGL renderer version) |
3.0 | 1.1 | doom3bfg | |
| The Dark Mod | Dark Mod | 2.13 | 3.2 (require geometry shader support) |
darkmod * | ||
| Return to Castle Wolfenstein | iortcw | 1.51d | 1.1 | rtcw | ||
| Quake III Arena | ioquake3 | 1.36 | 1.1 | quake3 | Quake III Team Arena | |
| Quake II | Yamagi Quake II | 8.60 | 1.1/3.2 | 1.0 | quake2 | Capture The Flag Ground Zero The Reckoning Team Evolves Zaero 3rd Zigock Bot II |
| Quake I | Darkplaces | - | 2.0 | quake1 | ||
| UZDOOM(64bits) | UZDOOM | 4.14.2 | 2.0/3.2 | 1.0 | uzdoom * | |
| Wolfenstein: Enemy Territory | ET: Legacy | 2.83.2 | 1.1 | etw | Omni-Bot support | |
| RealRTCW | RealRTCW | 5.3 | 1.1 | realrtcw | ||
| STAR WARS™ Jedi Knight - Jedi Academy™ | OpenJK | 1.0.1.1 | 1.1 | openja | ||
| STAR WARS™ Jedi Knight II - Jedi Outcast™ | OpenJK | 1.0.1.1 | 1.1 | openjo | ||
| FTEQW | FTEQW | 1.05 | 3.2 | 1.1 | fteqw * | |
| Serious Sam Classic : The First Encounter | SamTFE | 1.10.7 | 1.1 | serioussamtfe * | ||
| Serious Sam Classic : The Second Encounter | SamTSE | 1.10.7 | 1.1 | serioussamtse * | ||
| Urban Terror | Q3-UT4 | 4.3.4 | 1.1 | urt | ||
| Medal of Honor: Allied Assault | OpenMOHAA | 0.82.1 | 1.1 | openmohaa | ||
| Skin Deep | SkinDeep | 1.0.4 | 3.2 | skindeep | ||
| Quadrilateral Cowboy | SkinDeep | 1.0.2602252 | 2.0/3.0 | qc | ||
| Icarus Starship Command Simulator | SkinDeep | 1.0.9 | 2.0/3.0 | icarus |
- Add
Quadrilateral Cowboy(ver 1.0.2602252) support, game standalone directory namedqc, game data directory namedbase. More view in Quadrilateral Cowboy. - Add
Icarus Starship Command Simulator(ver 1.0.9) support, game standalone directory namedicarus, game data directory namedbase. More view in Icarus Starship Command Simulator. - Add new game chooser on launcher.
bind "Your key" "_impulse51"
For playing Quake 4(jmarshall 's Quake4Doom). Now can play all levels, but some levels has bugs.
- Putting PC Quake 4 game data file to
q4basefolder and START directly. - Effect system: Quake4 new advanced
BSEparticle system is working now! Also see Quake4BSE, Quake4Decompiled, and OpenBSE with DOOM3 original FX/Particle system has been removed.
- Putting PC Prey game data file to
base(preybaseon Android) folder and START directly. - Some problems solution: e.g. using cvar
harm_ui_translateAlienFontto translate Alien text on GUI. - Exists bugs: e.g. some incorrect collision(using
noclip), some GUIs not work(Music CD in RoadHouse). - If settings UI is not work, can edit
preyconfig.cfgfor binding extras key.
bind "Your key of spirit walk" "_impulse54"
bind "Your key of second mode attack of weapons" "_attackAlt"
bind "Your key of toggle lighter" "_impulse16"
bind "Your key of drop" "_impulse25"
- idTech4A++ using std libc's malloc/free in Mem_Alloc/Mem_Free in idlib/Heap.cpp
- idTech4A++ using pure OpenGL programming render pipeline
- _MULTITHREAD: Add multithread support for rendering.
- _USING_STB: Using stb jpeg instead of libjpeg for jpeg image file.
- _K_CLANG: If compiling by clang not GCC.
- _MODEL_OBJ: Add obj static model support.
- _MODEL_DAE: Add dae static model support.
- _SHADOW_MAPPING: Add Shadow mapping support.
- _OPENGLES3: Add OpenGLES3.0 support.
- _OPENAL _OPENAL_EFX _OPENAL_SOFT: Add OpenAL(soft) and EFX Reverb support.
- _NO_LIGHT: Add no lighting support.
- _STENCIL_SHADOW_IMPROVE: Add stencil shadow improve support(translucent shadow, force combine global shadow and self local shadow).
- _SOFT_STENCIL_SHADOW: soft shadow(OpenGLES3.1+), must defined
_STENCIL_SHADOW_IMPROVEfirst. - _MINIZ: Using miniz instead of zlib, using minizip instead of DOOM3's UnZip.
- _USING_STB_OGG: Using stb_vorbis instead of libogg and libvorbis.
- _D3BFG_CULLING: Add DOOM3-BFG occlusion culling support.
- _WCHAR_LANG _NEW_FONT_TOOLS: Add wide-character language font support.
- _D3BFG_FONT: Add DOOM3-BFG new font support.
- _GLOBAL_ILLUMINATION: Add global illumination support.
- _POSTPROCESS: Add retro postprocess rendering support.
- _GLSL_PROGRAM: Add GLSL program on new material stage support.
- _IMGUI: Add imGUI support.
- _SND_MP3: Add mp3 sound file support.
- _RAVEN_BSE: Build BSE as effect system on Quake 4.
- _RAVEN_FX: Build Fx as effect system on Quake 4.
- _MODEL_MD5V6: Add 2002 E3 demo md5mesh/md5anim v6 version animation model converter.
- _MODEL_PSK: Support Unreal engine psk/psa animation/static model.
- _MODEL_IQM: Support iqm animation/static model.
- _MODEL_SMD: Support Source engine smd animation/static model.
- _MODEL_GLTF: Support Khronos gltf/glb animation/static model.
- _MODEL_FBX: Support Autodesk fbx animation/static model.
- _DOOM3: Build DOOM 3 improve changes.
- MOD_BOTS: Build bot support in multiplayer-game.
- _MOD_FULL_BODY_AWARENESS: Build Full-body-awareness mod.
- _MOD_VIEW_BODY: Build view-body mod.
- _MOD_VIEW_LIGHT: Build player flashlight mod.
- _RAVEN: Enable Raven Quake 4 patches in engine and idlib source code.
- _QUAKE4: Enable Raven Quake 4 patches in game source code.
- _RAVEN_BSE: Build Raven Quake 4 BSE as particle system.
- _RAVEN_FX: Build DOOM 3 FX instead of BSE as particle system.
- MOD_BOTS: Build bot support in multiplayer-game.
- _MOD_FULL_BODY_AWARENESS: Build Full-body-awareness mod.
- _MOD_VIEW_BODY: Build view-body mod.
- _HUMANHEAD: Enable Humanhead Prey patches in engine and idlib source code.
- _PREY: Enable Humanhead Prey patches in game source code.
- _MOD_FULL_BODY_AWARENESS: Build Full-body-awareness mod.
- _OPENSLES: Add OpenSLES support for sound.
- REQUIRE ALSA, zlib, X11, EGL, SDL2
- ./bin/cmake_linux_build_doom3_quak4_prey.sh
- REQUIRE SDL2, cURL, zlib:
vcpkg install SDL2 curl - Setup your vcpkg.cmake path
- /bin/cmake_msvc_build_doom3_quak4_prey.sh
- Copy OpenAL32.dll from vcpkg package path to binary path:
vcpkg install OpenAL-Soft
- idTech4A++ for Android arm64: Android testing.
- idTech4A++ for Android arm32: Android testing.
- DOOM 3/Quake 4/Prey(2006) for Windows x64: Windows x64 testing.
- Setup game type with
gamekey: also see Q3E/com.n0n3m4.q3e.Q3EGameConstants.java GAME_XXX constants. Valid value:doom3quake4prey2006quake2quake3rtcwtdmquake1doom3bfggzdoometwrealrtcwfteqwopenjaopenjosamtfesamtseurtopenmohaaskindeepqcicarussource - Setup game command arguments with
commandkey. Starts withgame.arm
startActivity(new Intent().setComponent(new ComponentName("com.karin.idTech4Amm", "com.n0n3m4.q3e.Q3EMain"))
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
// 1. Setup game type
.putExtra("game", "doom3")
// 2. Setup game command
.putExtra("command", "game.arm +set fs_game moddir + harm_fs_gameLibPath /data/app/~~tBiIEpYUhA3P4wkarcd1AA==/com.author.package-p0-kOTTN2iU3ZewCcNXsrA==/lib/arm64/libgame.so")
);
finish();
- Extract
doom3/d3_sabot_a7.pk4(DOOM 3) orq4base/q4_sabot_a9.pk4(Quake 4) file in apk to game data folder, it includes some defs, scripts and MP game map AAS file(version < 66). - Set cvar
harm_g_autoGenAASFileInMPGameto 1 for generating a bad AAS file when loading map in Multiplayer-Game and not valid AAS file in current map, you can also put your MP map's AAS file tomaps/mpfolder(botaa48 on DOOM 3, botaa32 on Quake 4). - Set
harm_si_autoFillBotsto -1 for automatic fill bots when start MP game. - Set
harm_g_botEnableBuiltinAssetsto 1 for enable built-in bot assets if external assets missing(version >= 66), so only need MP game map aas files.
- harm_si_botLevel: Setup bot level.
- harm_si_botWeapons: Setup bot default weapons.
- harm_si_botAmmo: Setup bot weapons ammo clip.
- harm_si_useCombatBboxInMPGame: Players force use combat bbox in multiplayer game(DOOM 3 only).
- addBot: adds a new bot
- removeBot: removes bot specified by id (1,31)
- addBots: add multiplayer bots batch
- removeBots: disconnect multi bots by client ID
- fillBots: fill bots to maximum of server
- appendBots: append more bots(over maximum of server)
- cleanBots: disconnect all bots
- truncBots: disconnect last bots
- botLevel: setup all bot level
- botWeapons: setup all bot initial weapons
- botAmmo: setup all bot initial weapons ammo clip
-
Make full-body-awareness mode(view player model like first-person view) DOOM 3 example
Quake 4 example
Prey(2006) example -
Make third-person mode and use crosshair(different from
pm_thirdPerson) DOOM 3 example
Quake 4 example
Prey(2006) example
Point flashlight example
Spot flashlight example
DOOM 3 example
Quake 4 example
| Feature | Github | F-Droid |
|---|---|---|
| Android min version(for ffmpeg) | 4.4 | 7.0 |
| Khronos Vulkan validation layer | Yes | No |
| Feature | idTech4A++ | Other |
|---|---|---|
| Multi-threading | Support (using multithread command to switch if enabled in gaming) |
d3es-multithread support (and support switch in gaming) |
| New stage shader (heatHaze, heatHazeWithMask, heatHazeWithMaskAndVertex, colorProcess, enviroSuit(D3XP)) |
Yes | - |
| No lighting | Yes (And support switch in gaming by set harm_r_lightingModel to 0) |
Yes |
| TexGen | Yes | - |
| OpenGL ES version | 2.0 and 3.0+ (point light shadow mapping shader use cubemap on OpenGLES2.0, use texture array on OpenGLES3.0+) |
2.0(3.0+ compat) |
| Debug render tools | Yes (need to set harm_r_renderToolsMultithread to 1 if with multi-threading) |
- |
- /idTech4Amm: launcher source
- /Q3E: frontend source
- /doom3: DOOM 3/Quake 4/Prey(2006) source
- For F-Droid pure free version.
- /screenshot: screenshot pictures
- /source: Reference source
- /pak: Game resource
- Original old
n0n3m4version source.
- Baidu网盘: https://pan.baidu.com/s/1hXvKmrajAACfcCj9_ThZ_w 提取码:
pyyj - Baidu贴吧: BEYONDK2000
- F-Droid(different signature)






















