# Atlantis Game Engine This is a 3D game engine based on SDL3 + Vulkan API / Metal API. ## Prerequisites The following prerequisites need to be fulfilled in order to build this game engine. 1. Conan 2.29.1 must be installed. 2. A Conan default profile must exist with the same compiler flags as this project. 3. Missing Conan dependencies must be installed: ```shell # For ls-std conan install . --output-folder=cmake-build-debug --build=missing -o "ls-std/*:shared=True" -s build_type=Debug -s compiler.cppstd=17 conan install . --output-folder=cmake-build-release --build=missing -o "ls-std/*:shared=True" -s build_type=Release -s compiler.cppstd=17 # For all other dependencies conan install . --output-folder=cmake-build-debug --build=missing -s build_type=Debug -s compiler.cppstd=17 conan install . --output-folder=cmake-build-release --build=missing -s build_type=Release -s compiler.cppstd=17 ``` 4. The following CMake-Options must be provided for the "Debug" & "Release" Profile: ```shell -DCMAKE_CONFIGURATION_TYPES=Debug -DCMAKE_TOOLCHAIN_FILE=cmake-build-debug/conan_toolchain.cmake -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_TOOLCHAIN_FILE=cmake-build-release/conan_toolchain.cmake ``` 5. For the CMake Default Toolchain use __Generator__ Visual Studio for each CMake profile. 6. For ls-std dependency downloag the recipes repository and navigate to the version __conanfile.py__. Then run: ```shell conan create . -o "ls-std/*:shared=True" -s build_type=Debug conan create . -o "ls-std/*:shared=True" -s build_type=Release ``` ## Modules In Process: It contains the following modules: | Name | Description | |-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------| | ls-atlantis-cycle | This module provides functionalities like engine setup, game loop logic and engine run time information. | | ls-atlantis-interface | This module provides all interfaces all other engine modules can implement. This would avoid circular dependencies through out the project. | | ls-atlantis-window | This module provides functionalities for window creation and handling. | ## Dependencies The following table illustrates a list of required dependencies | Name | Version | Explanation | |--------|-------------|------------------------------------------------------------| | gtest | 1.17.0 | The Google Test framework for unit- and integration tests. | | ls-std | v2024.1.0.1 | The Lynar Studios C++-Standard library. | | sdl | 3.4.8 | The Window API library SDL3. |