Open-source project
xoreos/xoreos avatar
xoreos/xoreos

xoreos re-implements BioWare's Aurora engine, and it is not yet a game you can play

A reimplementation of BioWare's Aurora engine (and derivatives). Pre-pre-alpha :P

1,191 stars138 forksC++GPL-3.0

At a glance

What is it?
xoreos is a GPL-3.0 C++ reimplementation of BioWare's Aurora engine, aimed at running Neverwinter Nights, Dragon Age and related titles on modern systems. Its own documentation is blunt about the state of the work, describing spectator mode rather than gameplay.
Who is it for?
xoreos fits a reverse engineering or preservation-minded developer who wants to read an open source Aurora engine implementation, help port a specific title, or run an old BioWare game on a system that no longer supports it. It is not a game engine you can build a project on today, because the documentation says no actual normal gameplay is implemented yet, and it is a poor fit for anyone who expects a launcher or an installer, since there is neither.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 50 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The project describes itself as pre-pre-alpha, and the status section agrees

It is unusual for a project README to undercut its own ambitions this early, so the framing is worth taking at face value. The repository description says pre-pre-alpha, and the status section in the README spells out what has actually been done. The foundation work of managing resources, reading many basic file formats, displaying graphics and playing sounds is complete. All targeted games show partial in-game graphics, such as area geometry and objects, letting you fly around in a spectator mode. Some games show partial menus, and something resembling a starting point for a script system is there. Then the line that ends the discussion of what works today: no actual normal gameplay is implemented yet. That is an unusually precise status report, and it tells you exactly what kind of artifact this is at the moment, a viewer that loads worlds and renders them, not a game you can play from start to finish.

Nine games are valid targets, spanning BioWare and one Black Isle RPG

The list of valid targets defines the scope of the reverse engineering effort. Neverwinter Nights and Neverwinter Nights 2 head the list, followed by Knights of the Old Republic and Knights of the Old Republic II: The Sith Lords, Jade Empire, Sonic Chronicles: The Dark Brotherhood, The Witcher, Dragon Age: Origins and Dragon Age II. The stated goal is to have all games using this engine working in a portable manner, starting from Neverwinter Nights and ending with Dragon Age II. The interesting inclusion is The Witcher, which is not a BioWare title, and its presence reflects the fact that the engine family has non BioWare branches that the same parsing code has to cope with. The repository topics agree, listing aurora, bioware, dragon-age, jade-empire, knights-of-the-old-republic, kotor, kotor2, neverwinter-nights, nwn, nwn2, the-witcher and reverse-engineering. Per game status is tracked on the project wiki rather than in the README, which is the page to read for a specific title.

There is no launcher, so the game path goes straight on the command line

Anyone expecting a double clickable installer will be disappointed, and the README says so directly: xoreos does not yet have a launcher GUI or anything like this, and you need to start it from the command line. The first prerequisite is that you fully install or copy the game you want to play onto your hard disk, and how you do that depends on the game, your operating system and where you have bought it. Then the quickest way to start a game is the -p option, with the path to the game directory attached to it.

bash
xoreos -p/path/to/game/

On Windows the same idea applies with a Windows path.

bash
xoreos -pD:\\Path\\To\\Game\\

The command line option --help prints a help text with further options, and the project keeps a longer Running xoreos page on its wiki. The absence of a launcher is not a missing feature so much as a reflection of the pre-pre-alpha state, since a launcher would be a wrapper around a game that cannot yet be played. It also means the configuration story is entirely command line and file based, which is where the next part comes in.

Config files are organised by target, with one global section

xoreos reads the configuration of which game to run from the command line, a config file or both, and when you first specify a new game on the command line it adds a related entry to the config file, creating the file if it does not exist. The unit of configuration is a target, which is how xoreos identifies a specific instance of an installed game. Each target has its own section in the config file and the options in it apply only to that target. There is one special target named xoreos, which is a global section applying to all games, and an option in a game target overrides the matching global option.

ini
[xoreos]
width=1024
height=768
fullscreen=false

[nwn]
path=/home/drmccoy/games/nwn/
fullscreen=true
volume_music=0.500000
volume_sfx=0.850000
volume_voice=0.850000

Once the target exists, you start the game by naming it, so xoreos nwn launches the nwn target from the configured path, and in this example in fullscreen at 1024x768. The volume options show the second half of the design, because xoreos also saves settings you make in the game's actual GUI into the target section of the config file. The config file location follows the platform conventions, at $XDG_CONFIG_HOME/xoreos/xoreos.conf on GNU/Linux where that variable defaults to $HOME/.config, at $HOME/Library/Preferences/xoreos/xoreos.conf on Mac OS X, and in a Windows-specific location.

Both autotools and CMake are supported across seven CI configurations

The build system is duplicated on purpose, and the CI badges show the reason. There are build status workflows for Linux with autotools and gcc, Linux with autotools and clang, Linux with cmake and gcc, Linux with cmake and clang, macOS with autotools and clang, macOS with cmake and clang, and Windows with cmake and msvc, plus a Coverity scan status. The repository root carries both build systems side by side, with configure.ac, Makefile.am, rules.mk, autogen.sh and the m4 directory for the autotools path, and CMakeLists.txt with the cmake directory for the other. The choice between them is not a matter of taste you have to guess at, since CI runs the full matrix. Other root files point at the shape of the project: BUILDDEP.md for build dependencies, FAQ.md, TODO, NEWS.md, ChangeLog, Doxyfile for documentation generation, and a .uncrustifyrc for code formatting. The external directory and the dists directory sit alongside src and tests.

Binaries exist for three platforms, and two distributions package it directly

Getting xoreos does not require you to build it. The downloads page offers an archive with a binary of the latest release, including binaries for Microsoft Windows, Mac OS X and GNU/Linux, as well as packages for various GNU/Linux distributions, and all of them are available for both 32-bit and 64-bit x86 architectures. The project also maintains distribution channels directly for two systems, which is worth knowing if you are on either. On Arch Linux, xoreos installs from the AUR. On Gentoo Linux, it installs from the project's own overlay. For everyone else the route is the download page for a release source package, or a fresh repository checkout, and the Compiling xoreos wiki page covers the per operating system details. Note what the release numbering implies: the most recent tagged release is 0.0.6, named Elanee, from 2020-08-03, preceded by 0.0.5 Dawn Star in 2018 and 0.0.4 Chodo in 2016. A pre-1.0 series with a gap of several years between tags is a project whose recent work is on the repository rather than in packaged releases.

The licence makes the reuse question simple and the data question not

xoreos is licensed under the GNU General Public License version 3 or later, and the COPYING file is in the repository root. For a reimplementation of a commercial engine, that is a deliberate and consequential choice, and it cuts in a specific direction. If you want to read the code, study it, or contribute a fix, the GPL puts no obstacle in the way. If you want to take the engine into a closed product, the copyleft obligation is a real constraint, and the project documentation does not offer any alternative licence tier. Separately, and this is the point people often miss with reimplementations, the engine is not the game. The README requires that you fully install or copy the game you want to play onto your hard disk yourself, and the way you do that depends on where and how you have bought the game. xoreos provides the machinery to read BioWare's data formats; the licensed game content is yours to supply. The repository also asks contributors to read CONTRIBUTING.md, and carries a CODE_OF_CONDUCT.md alongside it.

Editorial conclusion

xoreos fits a reverse engineering or preservation-minded developer who wants to read an open source Aurora engine implementation, help port a specific title, or run an old BioWare game on a system that no longer supports it. It is not a game engine you can build a project on today, because the documentation says no actual normal gameplay is implemented yet, and it is a poor fit for anyone who expects a launcher or an installer, since there is neither. Before you invest, read the wiki page for the specific game you care about, since the documentation points there for per game status rather than making a blanket claim, and expect to supply your own legally obtained game data. The licence is GPL-3.0 or later, the last tagged release is 0.0.6 from 2020-08-03, and the last push was on 2026-09-04.

Frequently asked questions

Which games does xoreos support?

The valid targets are Neverwinter Nights, Neverwinter Nights 2, Knights of the Old Republic, Knights of the Old Republic II: The Sith Lords, Jade Empire, Sonic Chronicles: The Dark Brotherhood, The Witcher, Dragon Age: Origins and Dragon Age II. Per game status is tracked on the project wiki rather than in the README.

Can you actually play a game with xoreos right now?

No. The status section says that while all targeted games show partial in-game graphics and can be flown around in a spectator mode, no actual normal gameplay is implemented yet. Some games show partial menus and there is something resembling a starting point for a script system.

How do I start a game with xoreos?

There is no launcher GUI, so you start it from the command line and point it at the game directory with the -p option, for example xoreos -p/path/to/game/. The --help option prints the other command line options, and you need the game installed or copied to your hard disk first.

Where is the xoreos configuration file?

On GNU/Linux it is $XDG_CONFIG_HOME/xoreos/xoreos.conf, where XDG_CONFIG_HOME defaults to $HOME/.config. On Mac OS X it is $HOME/Library/Preferences/xoreos/xoreos.conf, and Windows has its own location. Each game has a target section, with a global section named xoreos.

What licence is xoreos under?

It is licensed under the GNU General Public License version 3 or later, with the text in the COPYING file at the repository root. The engine is separate from the game data, which you must supply yourself from your own legally obtained copy.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. xoreos/xoreos on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/xoreos-xoreos.svg)](https://hysenlabs.com/projects/xoreos-xoreos)

Was this useful?