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.
Platform | Latest release | Unstable build |
---|---|---|
Windows | - | |
Linux AppImage | - | |
Mac | - | |
Android | - | |
Flatpak | - |
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.
- 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
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
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
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
-
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
Checkout cpptrace
submodule:
git submodule init
git submodule update ext/cpptrace
Build in Debug mode.
Use environment variable SDL_LOG_PRIORITY
for adjustment of logging. For example:
SDL_LOG_PRIORITY=debug
By default info
level is set.
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
--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
--render // use specific renderer directx, opengl, vulkan
--size // window size. Example: 800x600
--window // enable window mode
--mixed // hot reload scripts from disk
--save_debug_texture // save screen output to game folder