Skip to content
Ravil Sultanov edited this page Jan 23, 2026 · 11 revisions

SunshineEngine

SunshineLogo_transparent

About The Project

2026-01-23_14-35

Sunshine Engine is a 3D game engine built with C++ and DirectX 11.

Core Features

Graphics

  • Deferred rendering system with multiple render passes
  • Support for meshes, textures
  • Particle system with compute shaders
  • Shadow mapping and lighting
  • Debug visualization (perception radii, emitters, icons)

Physics

  • Jolt Physics integration for collision detection and rigid body dynamics
  • Physics components on game objects

Scripting

  • Lua integration via Sol2 for game logic
  • Component-based scripting system
  • Lua bindings for engine systems (camera, input, perception, physics,...)

Audio

  • FMOD integration for sound playback and management

Game Objects & Components

  • GameObject-Component architecture
  • Built-in components: Transform, Render (hidden), Mesh, Physics, Lua, Perception, Behaviour
  • Player object with camera control and input systems
  • JSON serialization for scenes and objects

AI & Perception

  • Perception component for NPC awareness (sight, hearing)
  • Behavior tree system via Lua
  • Debug visualization of perception radii

Editor

  • SunshineEditor - ImGui-based world editor
  • Scene management and object editing
  • Content browser
  • Properties panel for game objects
  • Camera preview with miniature viewport

Input System

  • Robust input manager with edge detection (pressed/released/held)
  • Support for keyboard and mouse
  • Key-to-Lua-function mapping for player controllers

Architecture

  • SunshineEngine (LIB) - Core engine systems
  • SunshineEditor (EXE) - Editor application
  • Projects folder - Game projects using the engine
  • Modular rendering with render passes and techniques

The engine is designed for indie game development with a focus on scripting-driven gameplay.

1. Overview Guide

📺 Watch the overview video here:

More videos will be released as the engine continues to be updated.


2. SunshineEngine Repository

🔗 https://github.com/ravilkooo/SunshineEngine


3. Requirements

  • CMake version 3.20+
  • Visual Studio 2022 or JetBrains Rider

4. Downloading and Installing SunshineEngine

1) Clone the repository

git clone https://github.com/ravilkooo/SunshineEngine.git

2) Configure projects via CMake

Option 1:
Run the configure_solution.bat file in the repository root.

Option 2:
Open cmd / PowerShell in the repository folder and execute:

mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64

3) Open the solution

Open the Sunshine.sln file in Visual Studio 2022 or Rider.

4) Build the solution

In Visual Studio, open CMakePredefinedTargets and build the ALL_BUILD target.

5) Copy fmodL.dll

Copy the file from:

$RepoFolder$\ThirdParty\FMOD\api\lib\x64\fmodL.dll

to:

$RepoFolder$\build\bin\Debug

6) Copy fmod.dll

Copy the file from:

$RepoFolder$\ThirdParty\FMOD\api\lib\x64\fmod.dll

to:

$RepoFolder$\build\bin\Release

7) Set the startup project

In the Solution Explorer, right-click SunshineEditorSet as Startup Project.

8) Launch the editor

Run the SunshineEditor configuration (Debug x64 or Release x64) — the engine editor will open.