Skip to content

dalerank/Akhenaten

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,346 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Akhenaten Github Actions

Website Discord Download Windows Linux Mac/Arm Mac/x86 Android Chrome-icon

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.

Running the game

Platform Latest release Unstable build
Windows - Github Actions
Linux binary - Github Actions
Mac (arm) - Github Actions
Mac (x64) - Github Actions
Android - Github Actions
Flatpak - Github Actions
Bazzite - Github Actions
Emscripten - Akhenaten Build 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.

Become a patronBecome a patron

Building Akhenaten from source

Windows + Visual Studio

  • Clone the repository
  • Install CMake
  • run update-workspace.bat, which download all SDL2 dependencies and create VS solution for you

Windows + Yours IDE

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.

Linux

Building from source

  • 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 ..
      

Running the binary

Assuming the zip file is in your Downloads directory:

cd ~/Downloads
unzip linux_build.zip
chmod +x akhenaten.linux
./akhenaten.linux

Building 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 reboot

And after reboot:

./update-workspace-bazzite.sh

MacOS (ARM only)

  • Clone the repository

  • From the root folder execute:

    $ ./compile_macos.sh
    

Android

  • 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
    

Existing build options

Building with logging stack trace on crash

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 ..

Running with different log levels

Use environment variable SDL_LOG_PRIORITY for adjustment of logging. For example:

SDL_LOG_PRIORITY=debug

By default info level is set.

Running with tracy

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.

Command line parameters:

--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.

Mods and Scripts

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.

Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines on how to contribute to the project.

Changelog

See CHANGELOG_2025.md or CHANGELOG_2025_EN.md for a summary of recent changes.

Support

Alt

About

Pharaoh (1999, open source engine)

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages

  • C++ 56.6%
  • JavaScript 23.9%
  • C 18.0%
  • CMake 1.3%
  • Java 0.1%
  • Python 0.1%