Giter VIP home page Giter VIP logo

mohitsethi99 / arcgameengine Goto Github PK

View Code? Open in Web Editor NEW
294.0 8.0 17.0 424.95 MB

AGE: Arc Game Engine is an open-source engine for building 2D & 3D real-time rendering and interactive contents, especially video games with C# scripting support.

Home Page: https://m0hit.dev

License: Apache License 2.0

C 0.25% C++ 63.60% Batchfile 0.14% Lua 0.83% GLSL 3.63% Arc 11.90% C# 19.50% Python 0.12% Shell 0.04%
ecs game-development game-engine opengl cpp engine entity-component-system imgui glfw glsl

arcgameengine's Introduction

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/MohitSethi99/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

Arc Game Engine has the following dependencies:

Projects are generated with Premake 5.

Special Mentions

Huge shout out to:

arcgameengine's People

Contributors

dependabot[bot] avatar mohitsethi99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arcgameengine's Issues

Texture sampling issue on AMD cards with OpenGL

How to Reproduce:

  • Run the engine
  • Add an Entity with Skylight component.
  • Drag/Drop any model in Viewport and note that the textures are not being rendered correctly.

Result:

Textures are not being rendered correctly on AMD RX 480.
Tested on Nvidia cards- RTX 3060, RTX 3080 and the issue is not present.

Expected:

Textures should be rendered correctly.

image

Device Info:

OS: Windows 11
CPU: Ryzen 2600
GPU: Gigabyte RX 480 8GB

OpenGL Info:

Vendor: ATI Technologies Inc.
Renderer: Radeon (TM) RX 480 Graphics
Version: 4.6.14800 Compatibility Profile/Debug Context 22.6.1 30.0.21023.1015

Multiple Scene Viewports reduces performace by a lot!

How to Reproduce:

  • Run the engine
  • Note the frame time
  • Add one more scene viewport by going to Menu Bar, Window>Add>Viewport
  • Note the frame time, should be around x15 higher than single viewport which is not acceptable frame time.

Result:

Two scene viewports with an empty scene can bog down the performance taking 20+ms

Expected:

Adding more Scene Viewports is bound to degrade performance but not at this scale

More Info:

OneSceneViewport

One scene viewport, CPU time: 1.227ms

TwoSceneViewports

Two scene viewports, FPS: 20.35ms

Fullscreen bug

If I go to full screen the window is slightly bigger than the screen so the borders get cut away and I don't know how to fix that.
Bug

You can see it on the stats panel bottom left.

How to actually open Sponza?

Describe the bug
I tried to add sponza.obj to project "Sandbox" but that does nothing. Also I tried to create empty project and add sponza.obj to that. Also without effect.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Arc Editor'
  2. Drag and drap 'Sandbox\Assets\Models\sponza\sponza.obj' to the scene
  3. See nothing

Expected behavior
I expect to see Sponza as you showed in README

Desktop (please complete the following information):

  • Windows SDK version: 10.0.22621.0
  • Graphics API: OpenGL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.