Awakened Engine
- · Graphics API: OpenGL
- · 2D and 3D Support
- · 3D Model Import: Utilizes TinyObj to import external 3D Models and convert them into the engine's format
- · Material Support: Supports different materials and allows the creation of new ones
- · Expandable Materials System
- · Scene Creation: Allows the creation of new scenes in Lua and the utilization of all engine's resources (materials, objects, textures, components...)
- · Shader Language: Uses GLSL as the Shader Language
- · ImGUI Editor: Features a user-friendly ImGUI Editor to manage all objects in the scene, including scene properties
- · ECS (Entity - Component - System): Custom ECS system created from scratch to manage objects with different components. Entities are classified into different chunks based on their components (using masks), so the system processes objects in each chunk separately. User-friendly for creating new Components and Systems
- · Multi-threading: The engine is multi-threaded, with Logic and Render tasks split
- · Lighting: Supports Directional Light, Point Light, and Spot Light, with up to 4 lights
- · Rendering: Utilizes Forward Rendering with Blinn-Phong as the primary material
- · Shadows: Supports Hard Shadows, Soft Shadows (Percentage Closer Filtering - PCF), and Advanced Soft Shadows (Percentage Closer Soft Shadows - PCSS)
- · Atmospheric Scattering: Features Mia Scattering and Rayleigh Scattering
- · Water Simulation: Utilizes Compute Shaders and Fast-Fourier Transform for water simulation
- · Post-Processing Effects: Supports various post-processing effects
Contribution
Game Engine created from scratch and completely developed in C++ with Lua as Scripting Language to create different scenes without re-compiling the whole engine. Visual Studio and RenderDoc played a main role as debugging tools.