This repository represents the Lynar Studios - Standard Library (ls-std).

Patrick-Christopher Mattulat eaa6b5a4fa Add basic window event implementation 5 ngày trước cách đây
cmake eaa6b5a4fa Add basic window event implementation 5 ngày trước cách đây
doc df8f7c3d91 Add basic window creation functionality 1 tuần trước cách đây
include eaa6b5a4fa Add basic window event implementation 5 ngày trước cách đây
output 7fcf8ad1a8 Add basic game loop implementation 5 ngày trước cách đây
source eaa6b5a4fa Add basic window event implementation 5 ngày trước cách đây
test eaa6b5a4fa Add basic window event implementation 5 ngày trước cách đây
.clang-format bab023b3b7 Add coding and security guidelines 1 tháng trước cách đây
.clang-tidy bab023b3b7 Add coding and security guidelines 1 tháng trước cách đây
.gitignore 24c03034e9 Add basic test case for SdlWindowApi class 1 tuần trước cách đây
CMakeLists.txt 0fa6a362fd Add basic SDL keyboard implementation 5 ngày trước cách đây
README.md 0fa6a362fd Add basic SDL keyboard implementation 5 ngày trước cách đây
conanfile.txt 24c03034e9 Add basic test case for SdlWindowApi class 1 tuần trước cách đây

README.md

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:

    # For all dependencies
    
    conan install . --output-folder=cmake-build-debug --build=missing -o "*:shared=True" -s build_type=Debug -s compiler.cppstd=17
    conan install . --output-folder=cmake-build-release --build=missing -o "*:shared=True" -s build_type=Release -s compiler.cppstd=17
    
  4. The following CMake-Options must be provided for the "Debug" & "Release" Profile:

    -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 download the recipes repository and navigate to the version conanfile.py. Then run:

    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-factory This module provides factories for building interface implementations.
ls-atlantis-glossary Consumer: This module provides library constants and lists, which can be shared among project modules. This would avoid circular dependencies through out the project. This module can be imported. This module must not import any library dependencies itself.
ls-atlantis-input This module provides functionalities for handling input devices, such as keyboard, mouse & joystick.
ls-atlantis-interface Consumer: This module provides all interfaces all other engine modules can implement. This would avoid circular dependencies through out the project. This module can be imported. This module must not import any library dependencies itself.
ls-atlantis-message This module provides all messaging functionalities and status code implementations.
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.