Skip to content

Docu: game overview

mrwonko edited this page Apr 8, 2013 · 6 revisions

Jedi Academy is based on idTech 3, the Quake 3 Engine, albeit heavily modified. As such, the basics are the same. The most notable difference is that there are two executables - jasp.exe for the Singleplayer and jamp.exe for the Multiplayer - and that the Quake Virtual Machine is not used anymore. (It is still used in Jedi Outcast though.) Here are some other noteworthy changes:

  • GHOUL2 model format, which features dismemberment, ragdolls (JKA only), and gore textures, as well as proper bone-based animation.
  • ICARUS scripting engine
  • Particle effects system encapsulated in plaintext .efx files
  • StringEd string system (JA) / StriP (JK2) localization options
  • Weather effects system, which is vastly improved in JKA. Weather effects can optionally be affected by wind.
  • Various rendering improvements (tm) including Dynamic Glow (bloom), as well as removal of SMP (JKA only)

For the Multiplayer, there are four components:

  • The engine, jamp.exe. This contains all the rendering, sound, networking code etc. It then loads the game code from the other components.
  • The server game code, jampgamex86.dll, mostly located in codemp/game.
  • The client game code, cgamex86.dll, mostly located in codemp/cgame.
  • The UI code, uix86.dll, mostly located in codemp/ui.

The assets and DLLs are usually loaded from the base/ directory, but you can load a mod in a different directory that will shadow existing files in the virtual filesystem, meaning you can change the DLLs to modify how the game plays. The code for the DLLs has been available for a long time in the form of the MP SDK and multiple mods have been created using it, for example Lugormod. The engine however has been closed source for almost ten years.

The Singleplayer is mostly the same (at this high level), but:

  • The UI code is merged with the engine in jasp.exe
  • The server and client game code are merged in jagamex86.dll
  • JASP.exe and jagamex86.dll code is located in /code/
  • OpenJK is capable of running modified versions of JK2's jk2gamex86.dll, which is similar to jagamex86.dll. This code is located in /codeJK2/

None of this code was available before.

The game also has a number of useful tools for it:

  • GTKRadiant (map editor) - open sourced on a variety of repos
  • BehavEd (script editor) - NO SOURCE CODE. Tool released as part of 2003 SDK.
  • roq2 (video codec/compiler) - On this repo.
  • StringEd (localization utility) - NO SOURCE CODE. The app was never released either.
  • IBIZE (script compiler) - On this repo
  • lipthing2 (not used)
  • EffectsEd (effect editor) - NO SOURCE CODE. Tool released as part of 2003 SDK.
  • ModView (GHOUL2 model viewer) - On this repo
  • Assimilate (.xsi -> .glm converter) - On this repo
  • carcass (.xsi -> .gla converter) - INCOMPLETE SOURCE CODE. Tool released in 2003 SDK.
  • md3view (.MD3 format viewer) - Source code released ~2010, unknown. Tool released in 2003 SDK.
  • ShaderEd (.shader editor) - NO SOURCE CODE (and not really wanted either). Tool released in 2003 SDK.
  • jawa (XBOX matchmaking tester) - Source code released in 2013 r1. Removed from this repo for being largely useless.
  • create_soundbank (UNKNOWN) - Source code on this repo.
Clone this wiki locally