Skip to content

dalerank/Akhenaten

 
 

Repository files navigation

Akhenaten Github Actions

Discord Download Windows Linux Mac Android

2023-08-19 21_17_32-Window

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. Allows you to load original save games from Pharaoh and play the initial campaign missions without major issues.

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. You can more or less load original save games and play the first few missions in the campaign without major issues.

If you're looking for Caesar 3's vanilla experience with modern machine compatibility, check out Julius.
If you want additional features and visual/UI improvements, and don't care about strict compatibility with the original save files, check out Augustus.
For the original game, check out the page on Steam or GOG.
For the official upcoming remaster (unrelated to Akhenaten) called A New Era, check out the Steam page here.

Running the game

Platform Latest release Unstable build
Windows - Github Actions
Linux AppImage - Github Actions
Mac - Github Actions
Android - Github Actions
Flatpak - Github Actions

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 to run Akhenaten.

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
    

To run the engine, you'll also need the necessary dynamic libraries in the same folder as the executable, unless the project is set to build with static linkage.

  • Navigate to the SDL2, SDL2_mixer and SDL2_image extracted files, and locate the .dll files inside the bin folder of the correct architecture (e.g. SDL2_image-2.6.2/x86_64-w64-mingw32/bin/)

  • Copy the .dll files from each of the above to the build folder

Linux

Only tested on Manjaro, but under Ubuntu or similar you should install the same packages:

  • Clone the repository

  • From the root folder execute:

    $ ./update-workspace-linux.sh
    $ cmake --build ./build --target clean
    $ cmake --build ./build
    

MacOS

Only tested on Manjaro, but under Ubuntu or similar you should install the same packages:

  • Clone the repository

  • From the root folder execute:

    $ ./update-workspace-mac.sh
    $ cmake --build ./build --target clean
    $ cmake --build ./build
    

Android

  • Clone the repository

  • From the root folder executr:

    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

Checkout cpptrace submodule:

git submodule init
git submodule update ext/cpptrace

Build in Debug mode.

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

Enable tracy submodule:

git submodule init
git submodule update ext/tracy

Run profiler:

cd ext/tracy/profiler/build/unix && make && ./Tracy-release

Build & run with tracy enabled:

cmake -DUSE_FUTURE_TRACY=ON .. && make akhenaten && ./akhenaten

Alt

About

An open source re-implementation of Pharaoh (1999) in the Julius/Augustus engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 62.7%
  • C 35.6%
  • JavaScript 0.9%
  • CMake 0.7%
  • Java 0.1%
  • Shell 0.0%