Giter Club home page Giter Club logo

equilibriumengine's Introduction

Equilibrium Engine

Equilibrium Engine is a data-oriented and multi-threaded C11 game engine that takes advantage of ECS pattern followed by Hot-Reloading of your libraries and shaders which allows you to quickly iterate on different aspects of your projects.

Features

clang is the primarily supported compiler

Hot-Reloading of shaders & scripts

hot-reloading.mp4

Flecs entity inspector

flecs-entity-inspector.mp4

Usage

Equilibrium works on Windows via clang only and was tested some time ago on Ubuntu 20.04 LTS using GCC compiler. More work needs to be done to make sure the engine runs perfectly on both Linux & Mac.

To get started on Windows

You might need Visual Studio build tools installed so clang can link to MSVC static libraries. In case if Visual Studio is your primarily IDE please consider following these steps and check the issues section if you have troubles building the engine.

The rest of the dependencies included within the project:

  • assimp
  • bgfx
  • cglm
  • cgltf
  • cimgui
  • cr
  • flecs
  • SDL2
  • x-watcher

Screenshots

equilibriumengine's People

Contributors

clibequilibrium 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

equilibriumengine's Issues

Update flecs

Looks like it has outdated flecs version, need to update it

Can't compile

I was trying to check out the project, but I can’t get it to build. Are there any special configuration steps or requirements that are not mentioned in the usage section of the readme? I generated a vs2022 solution using cmake with x64 target and all options on default. Out of the 23 projects, 5 fail, most notably equilibrium, editor and sandbox. In the equilibrium project I’m getting 780 compiler errors, most of them, if not all, are on invalid calls to flecs and bgfx according to error log. Meanwhile, all bgfx projects and flecs build fine... Do you have any idea what I might be doing wrong?

Picture1

Compile error:

EquilibriumEngine/3rdparty/bgfx/bgfx/src/dxgi.h:9:10: fatal error: sal.h No such a file

About License

Hi.

Why it GPL but not MIT? it is big no no, it not possible get permission to use this engine in commercial project, I suggest change it, bc it scares a lot of potential contributors.

Please support MSYS2 MINGW64

cmake configuration is fine:

$ cmake ..
-- Building for: Ninja
-- The C compiler identification is GNU 13.1.0
-- The CXX compiler identification is GNU 13.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/msys64/mingw64/bin/cc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/msys64/mingw64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Configuring done (1.0s)
-- Generating done (0.1s)
-- Build files have been written to: C:/msys64/home/Administrator/EquilibriumEngine/build

But compilation failed with:

$ ninja
[1/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/input.c.obj
[2/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/gui.c.obj
[3/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/hot_reloadable_module.c.obj
[4/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/bgfx_components.c.obj
[5/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/renderer/renderer_components.c.obj
[6/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/sdl_window.c.obj
[7/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/cglm_components.c.obj
[8/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/scene/scene_components.c.obj
[9/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/components/transform.c.obj
[10/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/engine-simulation/engine_simulation.c.obj
[11/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/entity.c.obj
[12/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/engine.c.obj
[13/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/base_rendering_system.c.obj
[14/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/imgui/imgui_bgfx_sdl_system.c.obj
[15/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/forward_renderer_system.c.obj
[16/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/deferred_renderer_system.c.obj
[17/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/light_system.c.obj
[18/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/bgfx_system.c.obj
[19/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/pbr_system.c.obj
[20/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/sky_system/sky_system.c.obj
[21/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/scene/camera_system.c.obj
[22/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/sdl_system.c.obj
[23/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/transform_system.c.obj
[24/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/utils/cgltf_utils.c.obj
FAILED: equilibrium/CMakeFiles/equilibrium.dir/utils/cgltf_utils.c.obj
C:\msys64\mingw64\bin\cc.exe -DBGFX_CONFIG_MULTITHREADED=1 -DBGFX_SHARED_LIB_BUILD=1 -DBX_CONFIG_DEBUG=0 -DCGLM_STATIC -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1 -DIMGUI_IMPL_API="extern   \"C\"    __declspec(dllexport)" -DPUBLIC -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Dequilibrium_EXPORTS -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/bgfx -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/cimgui -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/flecs -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/cglm -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/cr -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/cgltf -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/../3rdparty/x-watcher -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/SDL2/include -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/assimp/include -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/components -IC:/msys64/home/Administrator/EquilibriumEngine/equilibrium/systems -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bgfx/include -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bx/include -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bx/3rdparty -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bx/include/compat/mingw -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/cimgui -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/cimgui/imgui -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/cglm/include -IC:/msys64/home/Administrator/EquilibriumEngine/3rdparty/flecs -O3 -DNDEBUG -std=gnu11 -MD -MT equilibrium/CMakeFiles/equilibrium.dir/utils/cgltf_utils.c.obj -MF equilibrium\CMakeFiles\equilibrium.dir\utils\cgltf_utils.c.obj.d -o equilibrium/CMakeFiles/equilibrium.dir/utils/cgltf_utils.c.obj -c C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/cgltf_utils.c
C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/cgltf_utils.c: In function 'setTSpaceBasic':
C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/cgltf_utils.c:144:14: error: array initialized from non-constant array expression
  144 |     vec4 t = (vec4){tangent[0], tangent[1], tangent[2], -sign};
      |              ^
[25/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/systems/rendering/gfx_resource_system.c.obj
[26/256] Building C object equilibrium/CMakeFiles/equilibrium.dir/world.c.obj
[27/256] Building CXX object equilibrium/CMakeFiles/equilibrium.dir/systems/sky_system/sky_color_map.cpp.obj
[28/256] Building CXX object equilibrium/CMakeFiles/equilibrium.dir/systems/imgui/imgui_bgfx/imgui_impl_bgfx.cpp.obj
[29/256] Building CXX object equilibrium/CMakeFiles/equilibrium.dir/utils/bgfx_utils_wrapper.cpp.obj
In file included from C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/bgfx_utils_wrapper.cpp:2:
C:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bgfx/include/bgfx/bgfx.h:20: warning: "BGFX_INVALID_HANDLE" redefined
   20 | #define BGFX_INVALID_HANDLE { bgfx::kInvalidHandle }
      |
In file included from C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/components/bgfx_components.h:4,
                 from C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/bgfx_utils_wrapper.h:4,
                 from C:/msys64/home/Administrator/EquilibriumEngine/equilibrium/utils/bgfx_utils_wrapper.cpp:1:
C:/msys64/home/Administrator/EquilibriumEngine/3rdparty/bgfx/bgfx/include/bgfx/c99/bgfx.h:26: note: this is the location of the previous definition
   26 | #   define BGFX_INVALID_HANDLE { UINT16_MAX }
      |
ninja: build stopped: subcommand failed.

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.