Skip to content

AeonGames/AeonEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AeonEngine

MS Visual C++ Build status MSYS Build status Linux Build status macOS Build status CodeFactor Patreon Ko-Fi

Aeon Games Flagship Game Engine

Aerin just chilling

This is the 3rd iteration of the engine, the first one was started circa 1996 and was lost on a hard drive crash, the second one was started circa 2001 and still exists, but is a mess and a patchwork of collected ideas of 15 years of trying to keep up.

THIS IS A WORK IN PROGRESS.

πŸš€ Building

The AeonEngine supports building on multiple platforms with different toolchains. Choose the method that best fits your development environment.

πŸͺŸ Windows with Visual Studio Code and MSYS2 MinGW

You do not need to install Visual Studio Code just to build the project, but it is highly recommended that you do so if you intend on changing the code, or if you want to develop a game using MSYS2/MinGW.

πŸ“¦ Install MSYS2

Go to MSYS2 and install MSYS2, while the 32 bit version of the MinGW compiler should work, development is focused on 64 bit, so get that if you don't know what to chose.

πŸ“‹ Install required Packages

Bring up an MSYS2 bash terminal for MinGW and update all of your installed packages:

pacman -Syuu --no-confirm

Follow the instructions, you may have to forcefully shut down the terminal and run the same command at least one time. After pacman reports no more updates, its time to install all our engine dependencies.

First install general required system tools:

pacman -S --needed --noconfirm git pactoys make

The pactoys package installs pacboy which allows instalation of the required packages for the different toolchains as required, so pick a subplatform, either mingw64, clang64 or ucrt64, run the corresponding terminal and proceed to install the required packages:

pacboy -S --needed --noconfirm \
    toolchain:p \
    cmake:p \
    make:p \
    tools-git:p \
    vulkan:p \
    vulkan-devel:p \
    qt6:p \
    protobuf:p \
    zlib:p \
    libpng:p \
    glslang:p \
    portaudio:p \
    libogg:p \
    libvorbis:p \
    cairo:p \
    gtest:p

This has to be done for each required subplatform.

Install autopep8 and cmake-format (optional, only if you want to create a pull request, or make changes to your own fork)

The CMake script installs a git pre-commit hook to format code using astyle, autopep8 (for the Blender scripts) and cmake-format, so you will need these if you want to create any commits.

python3 -m pip install autopep8 cmake-format

Clone the Repository

git clone https://github.com/AeonGames/AeonEngine.git
cd AeonEngine

Build with CMake

cmake -G "MSYS Makefiles" -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Run Tests

cd build
ctest --output-on-failure

Edit with Visual Studio Code

You can now use the "Open Folder" option in VS Code to open the topmost repo folder and then go to View->Terminal, where you'll get prompted to allow bash to run, accept and now you can issue your make commands directly from inside VS Code.

You should be able to run the various executables directly from the terminal or from the debug environment, if you run them from the debug environment they will be run through GDB, so you can set breakpoints or issue commands from the Debug Console.

🐧 Ubuntu/Linux

πŸ“¦ Install Dependencies

sudo apt-get update
sudo apt-get install -y \
  build-essential \
  software-properties-common \
  gcc \
  g++ \
  llvm \
  clang \
  sed \
  python3 \
  tar \
  wget \
  cmake \
  autoconf \
  automake \
  libtool \
  curl \
  make \
  unzip \
  zlib1g-dev \
  libpng-dev \
  vim-common \
  git \
  portaudio19-dev \
  libogg-dev \
  libvorbis-dev \
  googletest \
  libglu1-mesa-dev \
  freeglut3-dev \
  mesa-common-dev \
  libcairo2-dev \
  libprotobuf-dev \
  protobuf-compiler \
  mesa-vulkan-drivers \
  libvulkan1 \
  libvulkan-dev \
  qt6-base-dev \
  qt6-tools-dev \
  qt6-tools-dev-tools \
  qt6-l10n-tools \
  libxkbcommon-dev \
  glslang-dev \
  glslang-tools \
  libglx-mesa0 \
  vulkan-validationlayers

πŸ“₯ Clone the Repository

git clone https://github.com/AeonGames/AeonEngine.git
cd AeonEngine

πŸ”¨ Build with CMake

For GCC:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

For Clang:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=cmake/clang-toolchain.cmake
cmake --build build

πŸ§ͺ Run Tests

cd build
ctest --output-on-failure

πŸͺŸ Windows with Visual Studio

Building with Visual Studio uses Microsoft's vcpkg for dependency management. The engine requires Visual Studio 2022 or later.

πŸ“¦ VCPKG

The vcpkg executable can now be installed directly from the Visual Studio Updater, the easiest is to install that, the project is already set to automatically download and build the required packages, you may just need to find where the scripts\buildsystems\vcpkg.cmake script is to feed it to cmake.

πŸŒ‹ Install the Vulkan SDK

Download and install the Vulkan SDK from the LunarG website.

πŸŒ‹ Install Git for Windows

Download and install Git for Windows from git-scm.com.

πŸ“₯ Clone the Repository

Open a VS Developer terminal, it can be a simple CMD terminal or Powershell.

git clone https://github.com/AeonGames/AeonEngine.git
cd AeonEngine

πŸ”¨ Generate Solution Files with CMake

cmake -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -B build

🚧 Build

cmake --build build

Or open the generated solution file in Visual Studio and build from the IDE.

🍎 macOS

🍺 Install Dependencies with Homebrew

First, make sure you have Homebrew installed, then install the required dependencies:

brew update
brew install \
    cmake \
    make \
    protobuf \
    zlib \
    libpng \
    glslang \
    portaudio \
    libogg \
    libvorbis \
    cairo \
    googletest \
    qt6 \
    pkg-config \
    molten-vk

πŸ“₯ Clone the Repository

git clone https://github.com/AeonGames/AeonEngine.git
cd AeonEngine

πŸ”¨ Build with CMake

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

πŸ§ͺ Run Tests

cd build
ctest --output-on-failure

Miscelaneus

Enable/Disable Renderers

The BUILD_<API NAME>_RENDERER cmake variable can be used to disable or enable renderers, by default all renderers available on the platform are build, unless one is temporarily disabled due to it being broken or under construction.

In general the following command can be used:

cmake -DBUILD_VULKAN_RENDERER:boolean=<ON/OFF> -DBUILD_OPENGL_RENDERER:boolean=<ON/OFF> ..

About

Aeon Games Flagship Game Engine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages