Catddly / Seagull-Engine

A real-time rendering game engine.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seagull Engine v0.2

License Lines of code Code size Repo size GitHub contributors Repo stars
Codacy Badge

Brief Introduction

Seagull Engine is a real-time rendering game engine.

Still work in progress!!!: A long long way to go./(ㄒoㄒ)/~~

This engine is for learning purpose, so some parts of the engine may be very coarse.
This engine is unstable and have many api changing at this stage.
If you have any questions on this engine, you can contact me with these email: 2565492401@qq.com or illmewds@gmail.com.

Graphic api: Vulkan. (may be intergrated dx12 later)
Platform: Windows.

Features

  • Tiny Self-Implemented ECS
    It is called TipECS and it have the basic subset of a ECS.

  • GPU-Driven Rendering Pipeline
    Most of the scene objects(excluding skybox) are culled and drawn by GPU. (Using Draw Indirect and compute shader)

  • Auto Shader Recompilation (not the hot reload)
    Automatically detect the modification of the shader and recompile it to SPIR-V shader.

  • Simple IBL And PBR Rendering
    Now have brdf implemented. PBR Lighting and PBR camera need to be done later.

  • Some Common Render Techs
    For now deferred rendering...(will be more in the future)

  • Frame Graph(Or Render Graph) Based Render System
    RenderPasses are constructed into nodes, it is easy to figure out the dependencies between renderpass and easy to do custom rendering.

Developing Screenshots

Basic editor

GPU Driven Rendering Pipeline
Inside the small statistics panel you can see the cull out object infos and drawcall infos.

GPU Culling (Red objects been culled out and white objects reserved)

Default Scene with IBL and BRDF.

Default Scene with phone shading.

Building

Open the Scripts folder, and run the GenerateProject-Win.bat.
After that, you will see the Seagull.sln in the root directory.
Open the solution file, build the whole solution and you are ready to go!

ToDo

  • Simple Scripting System (Native Scripting and may be C#)
  • ECS (√)
  • ImGui for Editor (√)
  • Little Particle System
  • PBR Rendering (√)
  • 2D Renderer branch for 2D branch
  • Multi-Thread System (Including Task System and Some advanced techs)
  • Physics
  • User exposed rendering system (like the scriptable render pipelines?)

Also see ISSUE.md to gain more details.

Dependencies

  • VulkanSDK.

About

A real-time rendering game engine.

License:MIT License


Languages

Language:C++ 81.7%Language:C 15.5%Language:CMake 0.8%Language:Python 0.7%Language:Assembly 0.3%Language:Ada 0.2%Language:HTML 0.2%Language:C# 0.1%Language:Pascal 0.1%Language:GLSL 0.1%Language:Makefile 0.1%Language:Lua 0.1%Language:M4 0.0%Language:Shell 0.0%Language:Meson 0.0%Language:JavaScript 0.0%Language:Roff 0.0%Language:Objective-C 0.0%Language:DIGITAL Command Language 0.0%Language:GDB 0.0%Language:Batchfile 0.0%