Skip to content

Sigurd015/Hanabi

Repository files navigation

Hanabi

A simple game engine made for learning rendering APIs, game engine architecture, etc.

License: MIT Language

Goals

  • Cross-platform, multiple graphics API compatible.
  • Useable for game development.

Supported platforms and APIs

DirectX 11 Vulkan
Windows ✔️ ✖️
macOS/iOS/tvOS ✖️ ✖️
Linux ✖️ ✖️

Features

  • Basic engine architecture
  • Custom format asset system
  • ECS system
  • Scripting system
    • C# script engine
  • Rendering system
    • 2D batch renderer
    • PBR pipeline
  • Editor
    • Basic editor

Dependencies

Roadmap

  • DX11 support
  • C# script engine
  • Custom format asset system
  • Rendering
    • Mesh system
    • Material system
    • Lighting
    • Deferred rendering
      • Tile-based light culling
    • Shadow mapping
      • Cascaded shadow maps
      • Omnidirectional shadow maps
    • Skyboxes rendering
    • Physically based rendering pipeline
    • Image-based lighting
    • Screen space ambient occulsion
    • Screen space reflection
    • Screen space global illumination
    • Light baking system
    • Non-photorealistic rendering pipeline
    • LOD(Level of detail) system
    • UI rendering
    • Ray/Path tracing
      • Vulkan & DX12
    • Metal support
  • 3D physics(JoltPhysics or PhysX)
  • Animation system
  • New C# script engine(Custom C++/C# wrapper)
  • Runtime
    • Asset package serialize & deserialize
  • Editor
    • Animation state machine graph editor

Getting Started

Windows

Require Vulkan SDK 1.2(or higher)

Visual Studio 2022 is recommended

1. Downloading the repository:

git clone https://github.com/Sigurd015/Hanabi
git submodule update --init --recursive

2. Run the Setup-Windows.bat

3. Open .sln file with Visual Studio

Reference