Skip to content

Repository files navigation

ETQWDOOM3

Enemy Territory: Quake Wars on DOOM3 GPL OpenGLES/GLSL


Not supported

  • [-] MegaTexture (from Jmarshall23's DarklightNG, but only support raw stencil shadow with external megatexture shaders)
  • Collision testing multi-threading(thread lock instead of thread local data)
  • All ARB/CG type shader source(only GLSL)
  • GUIs on model
  • Some shaders
  • [-] Environment lighting
  • [-] Occlusion query(only query visible, not query visible pixels)
  • [-] ASCII file parsing(if binary file missing)
  • [-] Atmosphere rendering
  • Cinematic and bik video
  • ...

Bugs

  • [-] Postprocess view effect
  • Some vehicles AAS error
  • BSE
  • Fonts on GUIs
  • OK in game command GUIs by mouse clicking
  • Multiplayer game
  • Formatter text
  • ...

Changes

  • All DXT* dds files decoding by software for OpenGLES
  • Always using DOOM3's interaction shader
  • Playing with bots only
  • Only support raw stencil shadow with external megatexture shaders instead of Jmarshall23's DarklightNG shader(not support soft/translucent stencil shadow and soft shadow mapping).
  • Only support GLSL(100 es/300 es) shader source: renderprogs

Source code

Game SDK

IDA Hex-ray Decompiled

Raven BSE

GPL

Game resource


Binary file structure

Extension Origin extension Description Class Structure
aasb aas_player/aas_vehicle Area Awareness System idAASFileLocal aasb
cacheb Global parser token cache cacheb
clustb Model clust for map terrain. e.g. tree, grass clustb
cmb cm Map collision model idCollisionModelManagerLocal cmb
declb def/gui... Compressed Decl(All idDecl) idDeclManagerLocal declb
md5b md5mesh MD5Mesh v11 model(include LODs, GUI surfaces) idRenderModelMD5 md5b
mega mega Mega texture mega
modelb lwo/ase Static model idRenderModelStatic modelb
procb proc Processed map render model idRenderWorldLocal procb

New cvars

CVar Type Default Description Flag Range Scope Remark Platform
harm_r_fontDefaultScale Float 0.27 default font scale in GUIs ARCHIVE Engine/Renderer All
harm_r_clearPostprocessBuffer Bool 0 clear postprocess buffer image on every draw ARCHIVE Engine/Renderer All
harm_r_printShaderSource Bool 0 print external converted shader source ARCHIVE Engine/Renderer All
harm_r_skipAreaAmbient Bool 0 skip areas ambient rendering before draw interactions Engine/Renderer All
harm_r_builtinAreaAmbient Bool 0 using built-in global illumination for area ambient rendering Engine/Renderer All
harm_r_areaAmbientScale Float 1.0 area ambient scale ARCHIVE Engine/Renderer All
harm_r_areaAmbientAlpha Float 1.0 area ambient alpha ARCHIVE Engine/Renderer All
harm_r_skipImposter Bool 0 skip imposter rendering for static model Engine/Renderer All
harm_r_skipVisDistCheck Bool 0 skip entity visible distance check Engine/Renderer All
harm_r_visDistCheckType Integer 0 entity visible distance check type 0 = bounds, 1 = origin, 2 = sphere Engine/Renderer All
harm_r_drawVisDistCheck Bool 0 draw entity visible distance check Engine/Renderer All
harm_r_visDistLightFallOff Float 0.2 light fade by view distance ARCHIVE Engine/Renderer All
harm_r_visDistEntityFallOff Float 0.2 entity fade by view distance ARCHIVE Engine/Renderer All
harm_r_skipVisDistFade Bool 0 skip visible distance fade ARCHIVE Engine/Renderer All

New commands

Command Description Usage Scope Remark Platform
loadRenderProgram load external render program force Engine/Renderer All
listRenderPrograms list loaded external render program Engine/Renderer All
reloadRenderPrograms reload external render program Engine/Renderer All
imageProgramStringToCompressedFileName print compressed image name from raw image program Engine/Renderer All
declbToText convert declb to text files Engine/Framework All
exportDeclSource export decl source text files Engine/Framework All
exportDeclExpandSource export decl expand source text files Engine/Framework All
exportRenderPrograms export all render programs Engine/Framework All

Compiling

CMake

cmake -DBUILD_ETQW=ON -DBUILD_D3=OFF -DBUILD_Q4=OFF -DBUILD_PREY=OFF -DTOOLS=OFF -DDEDICATED=OFF -DSUPPORT_OBJ CMakeLists.txt

Defined macros

  • _SPLASHDAMAGE: patches for engine
  • _ETQW: patches for game
  • _MODEL_OBJ: obj model support

Run

  1. Put base/renderprogs into game base folder(etqwbase on Android).
  2. Execute ETQW +set r_multithread 0 +set r_useShadowMapping 0 +set harm_r_stencilShadowTranslucent 0 +set harm_r_stencilShadowSoft 0 +set r_forceShadowMapsOnAlphaTestedSurfaces 1 +set si_pure 0 +set net_serverAllowServerMod 1 +set s_useOpenAL 1.

About

Enemy Territory: Quake Wars on DOOM3 GPL(OpenGL ES, pure GLSL)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages