OpenJK is a community-maintained, GPL-2.0-licensed continuation of the game and engine that power Star Wars Jedi Knight: Jedi Academy and Jedi Outcast, built for players who already own those games and want a more stable, more portable engine, and for developers who want a clean C++ base for new modifications.
What it is
OpenJK is a community effort to maintain and improve the game and engine behind Jedi Academy and Jedi Outcast, released originally by Raven Software. Its stated aim is to keep full backwards compatibility with the existing games and mods, and the project explicitly does not intend to add major features, rebalance, or otherwise modify core gameplay. It is written in C++, licensed under GPLv2 as free software, and carries the topics c, c-plus-plus, fps, game, game-development, game-engine, jedi-academy, jedi-outcast, linux, macos, multi-platform and multiplayer-game.
The concrete problem it solves is the age and platform narrowness of the shipped game executables. OpenJK replaces those binaries with a maintained build that improves stability by fixing bugs and improving performance, extends hardware support to x86_64, Arm and Apple Silicon, and extends software platform support to Linux and macOS. It also serves as a clean base from which new code modifications can be made, so mod authors do not have to start from the original engine code.
Key capabilities
- Full backwards compatibility with the existing Jedi Academy and Jedi Outcast games and their mods, with no changes to core gameplay.
- Engine stability work through bug fixes and performance improvements, tracked with a Coverity static analysis badge and a GitHub Actions build workflow (
build.yml).
- Multi-platform support covering x86_64, Arm and Apple Silicon hardware, and Linux and macOS software platforms.
- Platform-specific executables:
openjk.x86.exe on Windows, openjk.i386 for 32-bit Linux, openjk.x86_64 for 64-bit Linux, and an OpenJK app bundle on macOS.
- Stable single-player and multiplayer support for Jedi Academy, and single-player support for Jedi Outcast.
- A documented path for using the codebase as the foundation of a new mod, alongside compilation and debugging guides in the project wiki.
- On macOS, savegames, config files and log files are stored under
/Users/$USER/Library/Application Support/OpenJK/.
Who uses it and how
- Players who own Jedi Academy through Steam, Amazon or GOG and want a maintained engine: the release archive is extracted into the game's
GameData/ folder and the matching executable is launched in place of the original.
- Linux players, including those without an existing installation, who fetch the base game through SteamCMD using
force_install_dir, @sSteamCmdForcePlatformType "windows" and app_update 6020 before adding OpenJK.
- macOS players, including those holding the Mac App Store version, who install
sdl2 through Homebrew and extract the OpenJK DMG into /Applications/Star Wars Jedi Knight: Jedi Academy.app/Contents/.
- Mod developers who fork the repository, work on a branch and send pull requests upstream to JACoders/OpenJK, using the project as a clean starting point rather than patching the original engine.
- Players and developers seeking support through the JKHub sub-forum or the project Discord, which the README names as the channels for support queries, discussions and feature requests.
Getting started
Download the latest build from the GitHub releases page (or the alternative builds site at builds.openjk.org), extract its contents into the Jedi Academy GameData/ folder, and run the executable for your platform; macOS users install sdl2 with brew install sdl2 first. A Jedi Academy installation is required before OpenJK can be installed.
How it compares
Among the tools named in the project's own documentation, OpenJK is the general option for Jedi Academy across both single-player and multiplayer, while Jedi Outcast multiplayer is explicitly not supported and the README directs those players to JK2MV instead. OpenJK's Jedi Outcast single-player support is described as working but needing attention, so the project's coverage of the two games is uneven rather than uniform.
When to use it — and when not to
Choose OpenJK if you already own Jedi Academy or Jedi Outcast and want a maintained, portable engine that preserves compatibility with existing mods, or if you need a clean codebase to build a modification on. Do not pick it if you are hoping for new content, rebalancing or gameplay changes, since the project states it does not intend to add major features or alter core gameplay, and do not pick it for Jedi Outcast multiplayer. Prospective users should also note that installation is a manual extraction into the game directory rather than a packaged installer, that the repository carries 284 open issues, and that building from source for mod work requires following the separate compilation guide.
project readme (upstream, from github) — read inline
OpenJK
OpenJK is a community effort to maintain and improve the game and engine powering Jedi Academy and Jedi Outcast, while maintaining full backwards compatibility with the existing games and mods.
This project does not intend to add major features, rebalance, or otherwise modify core gameplay.
Our aims are to:
- Improve the stability of the engine by fixing bugs and improving performance.
- Support more hardware (x86_64, Arm, Apple Silicon) and software platforms (Linux, macOS)
- Provide a clean base from which new code modifications can be made.


Supported Games
Please direct support queries, discussions and feature requests to the JKHub sub-forum or Discord linked above.
License
OpenJK is licensed under GPLv2 as free software. You are free to use, modify and redistribute OpenJK following the terms in LICENSE.txt
For players
To install OpenJK, you will first need Jedi Academy installed. If you don't already own the game you can buy it from online stores such as Steam, Amazon or GOG.
Download the latest build (alt link) for your operating system.
Installing and running OpenJK:
- Extract the contents of the file into the Jedi Academy
GameData/ folder. For Steam users, this will be in /steamapps/common/Jedi Academy/GameData/.
- Run
openjk.x86.exe (Windows), openjk.i386 (Linux 32-bit), openjk.x86_64 (Linux 64-bit) or the OpenJK app bundle (macOS), depending on your operating system.
Linux Instructions
If you do not have an existing JKA installation and need to download the base game:
- Download and Install SteamCMD SteamCMD.
- Set the download path using steamCMD:
force_install_dir /path/to/install/jka/
- Using SteamCMD Set the platform to windows to download any windows game on steam. @sSteamCmdForcePlatformType "windows"
- Using SteamCMD download the game,
app_update 6020.
Extract the contents of the file into the Jedi Academy GameData/ folder. For Steam users, this will be in /steamapps/common/Jedi Academy/GameData/.
macOS Instructions
If you have the Mac App Store Version of Jedi Academy, follow these steps to get OpenJK runnning under macOS:
- Install Homebrew if you don't have it.
- Open the Terminal app, and enter the command
brew install sdl2.
- Extract the contents of the OpenJK DMG into the game directory
/Applications/Star Wars Jedi Knight: Jedi Academy.app/Contents/
- Run
OpenJK.app or OpenJK SP.app
- Savegames, Config Files and Log Files are stored in
/Users/$USER/Library/Application Support/OpenJK/
For Developers
Building OpenJK
Contributing to OpenJK
- Fork the project on GitHub
- Create a new branch and make your changes
- Send a pull request to upstream (JACoders/OpenJK)
Using OpenJK as a base for a new mod
- Fork the project on GitHub
- Change the JK_VERSION define in codemp/qcommon/game_version.h from "OpenJK" to your project name
- If you make a nice change, please consider back-porting to upstream via pull request as described above. This is so everyone benefits without having to reinvent the wheel for every project.
Maintainers (full list: @JACoders)
Leads:
Significant contributors (full list)