Home
Softono
ArcGameEngine

ArcGameEngine

Open source Apache-2.0 C++
385
Stars
30
Forks
12
Issues
8
Watchers
7 months
Last Commit

About ArcGameEngine

Arc Game Engine (AGE) is an open-source, in-development game engine written in C++ for building 2D and 3D real-time rendering and interactive content, primarily video games. It uses the EnTT library for Entity Component System architecture and supports C scripting through Mono. The engine features scene-based entity management with YAML serialization, a 2D batch renderer and a basic 3D renderer with lighting, IBL, PBR workflow, soft and hard shadow support, both running on OpenGL. It includes basic game editor and in-game debug UI through Dear ImGui. Physics support covers 2D physics via Box2D with rigidbodies, box and circle colliders, and joints, as well as basic 3D physics via Jolt Physics with rigidbodies, box and sphere colliders. Audio is handled through Miniaudio with spatialization support. Currently developed as a personal spare-time project, the engine targets Windows and Linux, with build setup using Visual Studio 2022 and project generation scripts. Planned features include a complete C API for al

Platforms

Web Self-hosted

Languages

C++

Arc Game Engine

Build Status Quality Gate Status Bugs Code Smells Reliability Rating

Platform GitHub Size

ARC

About

Arc Engine is an in-development game engine written in C++.

I develop it in my spare time as a personal project, so expect frequent periods of time with no activity in this repository.

Set up

  • Clone Arc Game Engine using git. Make sure you do a --recursive clone!
    git clone --recursive https://github.com/GloriousPtr/ArcGameEngine.git
  • Arc Game Engine is built in a Windows environment, using Visual Studio 2022.
  • Execute the script scripts/Win-GenProjects.bat to generate the solution and project files.

Current Features

Right now, Arc Game Engine is very bare-bones. Its most remarkable features are:

Feature Description Status
Scene system Scene-based entity management. Scene serialization with YAML. Done ✔️
ECS support Entity Component System approach through entt. Done ✔️
2D Renderer 2D batch renderer supporting OpenGL. Done ✔️
3D Renderer Basic 3D renderer with lighting, IBL and PBR workflow supporting OpenGL. Done ✔️
ImGui support Basic game editor and in-game debug UI using dear imgui. Done ✔️
Shadow Support Soft and Hard shadow support in OpenGL 3D Renderer. Done ✔️
2D Physics 2D Physics using Box2D with Rigidbody, Box and Circle Colliders and joints. Done ✔️
3D Physics Basic 3D Physics using Jolt Physics with Rigidbody, Box and Sphere Colliders. Done ✔️
Scripting Basic scripting in C# using mono. Done ✔️
Audio Basic Sound API with spatialization through miniaudio. Done ✔️

Planned Features

Feature Description Status
C# API C# API for all the components. WIP 💻
Extended 2D Physics Extend 2D physics to support more collider types and API. WIP 💻
Extended 3D Physics Extend 3D physics to support more collider types and API. WIP 💻
Font Extend the Renderer capabilities so it can draw text. WIP 💻
Advanced Audio Advanced Sound API with effects. TODO 📋
Asset manager Basic asset handling API. TODO 📋
Direct3D Extend the Renderer to support D3D12. TODO 📋

Feature Showcase

Arc Game Engine Showcase

Dependencies

LOC: scc --include-ext=cpp,h,cs,hlsl,hlsli,glsl --count-as=hlsl:glsl,hlsli:glsl --exclude-dir=Arc/vendor

Arc Game Engine has the following dependencies:

Projects are generated with Premake 5.

Special Mentions

Huge shout out to: