Akhenaten aims to make the original game Pharaoh compatible with modern systems with redesigned original engine. Unlike the original game, which was developed by Impressions Games, Akhenaten is a community-driven effort to keep the game alive and accessible.
This is a fork of the Julius/Augustus project with the aim of making it work with Pharaoh instead of Caesar 3.
The work is still in progress, so any help or support is appreciated. Allows you to load original save games from Pharaoh and play the initial campaign missions without major issues.
For the original game, check out the page on Steam
or GOG.
For the official 2023 remaster called Pharaoh: A New Era (a separate project from Akhenaten, though Akhenaten can work with it), check out the Steam page here. Note: Don't try to use resources from the remaster, as they are not compatible with this project.
| Platform | Latest release | Unstable build |
|---|---|---|
| Windows | - | |
| Linux binary | - | |
| Mac (arm) | - | |
| Mac (x64) | - | |
| Android | - | |
| Flatpak | - | |
| Bazzite | - | |
| Emscripten | - |
After downloading the most recent binaries from above or building them from source, start Akhenaten and it will ask you to point to an original Pharaoh installation folder.
Akhenaten, like Julius and Augustus, requires the original assets (graphics, sounds, etc) from an unmodified game installation to run, in this case it needs Pharaoh as well as the Cleopatra expansion.
Note that you must have permission to write in the game data directory as the saves will be stored there; also, your game must be patched to last version (1.3 + Cleopatra) to run Akhenaten.
- Clone the repository
- Install CMake
- run update-workspace.bat, which download all SDL2 dependencies and create VS solution for you
To build with your favorite IDE, just import the cmakelists.txt file as a project and build from there. Otherwise, you can use MinGW-w64 to build via CLI:
-
Clone the repository
-
Install CMake
-
From the project's root folder execute, in order:
mkdir build cd build cmake .. -G "MingGW Makefiles" mingw32-make
Note: All dependencies (SDL2, SDL2_mixer, zlib, etc.) are automatically downloaded and built via CMake's FetchContent, so no manual DLL copying is required for static builds.
-
Clone the repository
-
From the root folder execute:
$ ./update-workspace-linux.sh $ cmake --build ./build --target clean $ cmake --build ./build- The script assumes that you are running Ubuntu. On other distributions you could find and install relevant packages manually and then run these commands instead of the script:
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. cd ..
- The script assumes that you are running Ubuntu. On other distributions you could find and install relevant packages manually and then run these commands instead of the script:
Assuming the zip file is in your Downloads directory:
cd ~/Downloads
unzip linux_build.zip
chmod +x akhenaten.linux
./akhenaten.linuxBuilding in Bazzite (https://bazzite.gg/) on Steam Deck or other platform
You will have to use rpm-ostree to install static version of stdc++ which is not recommended and will make system updates slower. But you won't be able to build Akhenaten without it.
rpm-ostree install libstdc++-static
systemctl rebootAnd after reboot:
./update-workspace-bazzite.sh-
Clone the repository
-
From the root folder execute:
$ ./compile_macos.sh
-
Clone the repository
-
From the root folder execute:
sudo apt install openjdk-17-jdk openjdk-17-jre ninja-build sudo wget https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip sudo unzip commandlinetools-linux-9123335_latest.zip cd cmdline-tools/bin sdkmanager --install "platform-tools" "build-tools;30.0.1" "emulator" "platforms;android-33" cd ../../build cmake -DCMAKE_BUILD_DEPENDENCIES=android .. cd ../android ./gradlew assembleDebug
Stack trace logging is automatically enabled when building in Debug or RelWithDebInfo mode. The cpptrace library is automatically downloaded via CMake's FetchContent, so no manual submodule checkout is required.
Simply build in Debug or RelWithDebInfo mode:
cmake -DCMAKE_BUILD_TYPE=Debug ..
# or
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..Use environment variable SDL_LOG_PRIORITY for adjustment of logging. For example:
SDL_LOG_PRIORITY=debugBy default info level is set.
Tracy profiler support is enabled by default via OPTION_ENABLE_TRACY (set to ON). The Tracy library is automatically downloaded via CMake's FetchContent, so no manual submodule checkout is required.
Important: This project uses Tracy v0.13.1. You must use the matching Tracy Profiler GUI version (v0.13.1) to connect to the application. Using a different version (e.g., v0.11.0 or v0.11.1) will result in a protocol mismatch error and the profiler will not work.
To build with tracy enabled (default):
cmake -DOPTION_ENABLE_TRACY=ON ..
# or simply (since it's ON by default)
cmake ..To disable tracy:
cmake -DOPTION_ENABLE_TRACY=OFF ..To use the profiler, download and run the Tracy Profiler GUI v0.13.1 from the Tracy releases page. If you need to build the profiler from source (e.g., for older hardware compatibility), make sure to build version v0.13.1.
--logjsfiles
print logs which files open with js
--nocrashdlg
do not show crash dialog
--fulldmp
create full dump on crash
--config
always show configuration window on startup
--save_debug_texture
save debug textures to DEV_TESTING/tex/
--unpack_scripts
unpack embedded scripts to user directory
--nosound
not use sound manager
--window
enable window mode
--render RENDERER
use specific renderer
--mods PATH
set mods data directory path
--mixed PATH
hot reload scripts from disk
--language CODE
set game language (e.g., ru, en, fr, de, it, sp, po, pr, sw, tc, sc, kr)
--font PATH
use custom TTF font file (overrides font from localization.js)
--display-scale NUMBER
Scales the display by a factor of NUMBER. Number can be between 0.5 and 5
--cursor-scale NUMBER
Scales the mouse cursor by a factor of NUMBER. Number can be 1, 1.5 or 2
--size WxH
window size. Example: 800x600
--pos x,y
window pos. Example: 10,10
--help
show this help message
The last argument, if present, is interpreted as data directory of the Pharaoh installation.
Akhenaten supports modding through the --mods parameter, which allows you to specify a directory containing mod files (.sgx archives). The game will load mods from this directory in addition to the base game assets.
The --mixed parameter enables hot-reloading of JavaScript scripts from disk, which is useful for development and testing. The --unpack_scripts parameter extracts embedded scripts to the user directory for inspection or modification.
We welcome contributions! Please read CONTRIBUTING.md for guidelines on how to contribute to the project.
See CHANGELOG_2025.md or CHANGELOG_2025_EN.md for a summary of recent changes.
- Issues: Report bugs or request features on GitHub Issues
- Discord: Join our Discord community
- Website: Visit akhenatengame.squarespace.com










