Skip to content

An early-stage, cross-platform interactive application and rendering framework.

License

Notifications You must be signed in to change notification settings

edisonlee0212/EvoEngine

Repository files navigation

EvoEngine

EvoEngine is an early-stage, cross-platform interactive application and rendering engine for Windows and Linux.

Build Status

  • Windows:
    • WindowsRelBuildStatus WindowsDebugBuildStatus
  • Linux:
    • LinuxRelBuildStatus LinuxDebugBuildStatus

Main features

Here are the features that already exist in the EvoEngine.

  • Modularized design
    • EvoEngine is designed with layers. WindowLayer, RenderLayer, EditorLayer, etc.
      • E.g. Offscreen rendering by disabling WindowLayer and EditorLayer.
    • Plugin support.
  • Data-oriented entity component system
    • Cache-friendly data component, for systematic behavior of large quantity of entites. E.g. boids.
    • Customizable private component, for individual behavior.
  • Multi-threading
    • Job system
  • Editor
    • Entity managements
    • Inputs
    • Profiler
    • File I/O
    • Asset managements
      • Registry
      • Serialization
    • Project managements
    • Msg console
  • Rendering:
    • Vulkan
    • GPU-driven rendering
      • Unified renderInstance/geometry/texture storage
    • Built-in deferred + forward rendering pipeline.
      • Support external rendering commands
    • Lighting & shadows
      • PCSS
      • Cascaded shadow map (CSM)
    • Environmental map
      • Light probe/reflection probe
    • Skybox
      • Support procedural generation from sky illumination model
    • Particle system
    • High-level rendering API
    • Post-processing
    • Ray-tracing
      • Custom BVH construction
      • CPU/compute shader/hardware ray-tracing support
    • Skeletal animation
  • Input/Event system
  • Python binding

Getting Started

  • Note: Visual Studio 2019 or 2022 is recommended. EvoEngine is tested on Windows and Linux platform, other platform is not supported. We primarily focus on Windows platform.
  • Build requirements
    • For Linux platform, the following libaries are required (Ubuntu):
      • clang-14
      • cmake
      • ninja-build
      • libwayland-dev
      • libxkbcommon-dev
      • xorg-dev
      • Vulkan-SDK (From LunarG)
      • python3.12-dev
    • For Windows platform, make sure the following components are installed on Visual Studio:
      • Desktop development with C++
  • Step 1: Clone the repository with the following command:
    • git clone --recursive /~https://github.com/edisonlee0212/EvoEngine
  • Step 2: If the repository was cloned non-recursively previously, clone all submodules with the following command:
    • git submodule update --init --recursive
  • Step 3: Build:
    • For Windows:
      • run build.cmd
    • For Linux:
      • bash build.sh
  • Additional resources:
    • See /EvoEngine/Resources/Building/ for additional ways to build/run/test EvoEngine.
  • To directly build the project, scripts under the root folder build.cmd (for Windows) and build.sh (for Linux) is provided for building with a single command line.

Examples

What's next...

  • Documentation
  • Node editor