Giter VIP home page Giter VIP logo

etherealengine's Introduction

Ethereal Engine - Cross-platform C++ Game Engine

Codacy Badge Join the chat at https://gitter.im/EtherealEngine/Lobby Build Status Build status license language c++ msvc2017+ mingw-5.3+ gcc-5.0+ clang-3.8+ Get more details at codescene.io.

INFO

Using c++14

WYSIWYG Editor

STATUS

WIP - not production ready in any way

Building

Don't forget to update submodules

git clone https://github.com/volcoma/EtherealEngine.git
cd EtherealEngine
git submodule init
git submodule update

mkdir build
cd build
cmake ..

PLATFORMS

It is written in a cross-platform manner using c++.

msvc2017+ windows linux
msvc2017+ yes
mingw-5.3+ yes
gcc-5.0+ yes
clang-3.8+ yes

ASSETS

Some high quality assets: https://github.com/volcoma/Library

Supported texture formats: png, tga, dds, ktx, pvr

Supported mesh formats: obj, fbx, dae, 3ds

Supported audio formats: ogg, wav

SUGGESTIONS AND ISSUES

Any suggestions and help will be appreciated.

BUILD

The engine uses the CMake build system.

CODEBASE

c++ Using the latest and greatest features of the language.

CODE STYLE

#include "some_header.h"
#include "some_other_header_impl.hpp"

namespace nsp
{
class some_class
{
public:

//-----------------------------------------------------------------------------
  //  Name : some_method ()
  /// <summary>
  /// This is a method comment description.
  /// </summary>
  //-----------------------------------------------------------------------------
  void some_method();
  
  //-----------------------------------------------------------------------------
  //  Name : some_templated_method ()
  /// <summary>
  /// This is a method comment description.
  /// </summary>
  //-----------------------------------------------------------------------------
  template<typename T>
  void some_templated_method();
public:
  /// this is a member comment
  int some_public_member = 0;
  
private:
  /// this is a member comment
  int some_private_member_ = 0;
}

template<typename T>
inline void some_class::some_templated_method()
{
// If the class is fully templated it is acceptable to put this inside the class
}

PREVIEW

screenshot1

screenshot2

screenshot3

LIBRARIES

bgfx - https://github.com/bkaradzic/bgfx

cereal - https://github.com/USCiLab/cereal

rttr - https://github.com/rttrorg/rttr

spdlog - https://github.com/gabime/spdlog

imgui - https://github.com/ocornut/imgui

assimp - https://github.com/assimp/assimp

glm - https://github.com/g-truc/glm

openal-soft = https://github.com/kcat/openal-soft

etherealengine's People

Contributors

arncarveris avatar codacy-badger avatar gitter-badger avatar volcoma 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  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

etherealengine's Issues

EXE run turn on error

latest source may be successfully compiled,but running exe turn on error as blow:

1651100686106129-0

but change desktop.width/height from 100 to 0, may run successfully, if this a bug?
1681031410412093
16741207113100142-1

I have found this from the bgfx page and i want to do my congrats to the developer!

Ok sorry this is not an issues, but i have just found this i want to say my congrats to the developer, this seems amazing!!!! I LOVE THE GUI!!! Keep going my friend, i will follow you!

PS Will this have an internal script editor like the one of Stingray and Visual Scripting in the future?

Can't wait to play around with this in Windows!

Compiler turn on Error C1083

I use win7+ vs2015 compiler EtherealEngine to turn on " Cannot open include file: 'boost/preprocessor/debug/error.hpp': No such file or directory"

error
pls help me how to deal with these errors? Tks

Get Error by run cmake

A friend of mine and I have tried to use EtherealEngine and we both (my friend on Windows/me on Linux) failed to run cmake.
Did we get someting wrong or is the version we're using buggy?

Mac OS X support of mml library

I found most part of the code base are portable and can be compiled successfully on Mac OS X, but the mml library failed. After dipping into the code a little bit, I found it is a streamlined version of the SFML library, which supports Mac OS X. Is mml library can be made cross-platform? Thanks for your great work.

Failed to compile clean - task system error template

Building of clean repo(building as in readme) fails at these lines:

[ 74%] Building CXX object engine/core/tasks/CMakeFiles/tasks.dir/task_system.cpp.o
In file included from EtherealEngine/engine/core/tasks/../common/nonstd/type_traits.hpp:6:0,
                 from EtherealEngine/engine/core/tasks/future_traits.hpp:2,
                 from EtherealEngine/engine/core/tasks/task_system.h:4,
                 from EtherealEngine/engine/core/tasks/task_system.cpp:1:
EtherealEngine/engine/core/tasks/../common/nonstd/traits/is_detected.hpp:53:16: error: template declaration of ‘constexpr const bool nonstd::is_detected_v’
 constexpr bool is_detected_v = is_detected<Op, Args...>::value;
                ^
....[same errors]....

Does anyone know why and how to solve?

need help,Why can`t I finish initialization work

I am a novice,,
After using

git clone https://github.com/volcoma/EtherealEngine.git
cd EtherealEngine
git submodule init
git submodule update

then
i use cmake and something wrong

OS >>> Windows
COMPILER >>> MSVC
BUILD_SHARED_LIBS >>> OFF
PROJECT_BINARY_DIR >>> C:/Users/12976/source/test/12
CMAKE_CXX_FLAGS >>> /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /bigobj /W3
CMAKE_CXX_FLAGS_DEBUG >>> /MDd /Zi /Ob0 /Od /RTC1
CMAKE_CXX_FLAGS_RELEASE >>> /MD /O2 /Ob2 /DNDEBUG
---------3rdparty scanning---------
---------assimp scanning---------
CMake Error at 3rdparty/assimp/CMakeLists.txt:149 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/assimp/assimp

  does not contain a CMakeLists.txt file.


CMake Error at 3rdparty/assimp/CMakeLists.txt:151 (target_include_directories):
  Cannot specify include directories for target "assimp" which is not built
  by this project.


CMake Error at 3rdparty/assimp/CMakeLists.txt:152 (target_include_directories):
  Cannot specify include directories for target "assimp" which is not built
  by this project.


---------assimp finished---------
---------bgfx scanning---------
CMake Warning (dev) at 3rdparty/bgfx/cmake/bgfx.cmake:42 (SET):
  implicitly converting 'INT' to 'STRING' type.
Call Stack (most recent call first):
  3rdparty/bgfx/CMakeLists.txt:47 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at 3rdparty/bgfx/cmake/3rdparty/glsl-optimizer.cmake:73 (list):
  list sub-command REMOVE_ITEM requires two or more arguments.
Call Stack (most recent call first):
  3rdparty/bgfx/cmake/tools/shaderc.cmake:14 (include)
  3rdparty/bgfx/cmake/tools.cmake:18 (include)
  3rdparty/bgfx/CMakeLists.txt:50 (include)


---------bgfx finished---------
---------rttr scanning---------
CMake Error at 3rdparty/rttr/CMakeLists.txt:15 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/rttr/rttr

  does not contain a CMakeLists.txt file.


---------rttr finished---------
---------cereal scanning---------
CMake Error at 3rdparty/cereal/CMakeLists.txt:4 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/cereal/cereal

  does not contain a CMakeLists.txt file.


---------cereal finished---------
---------mml scanning---------
---------mml finished---------
---------spdlog scanning---------
CMake Error at 3rdparty/spdlog/CMakeLists.txt:4 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/spdlog/spdlog

  does not contain a CMakeLists.txt file.


---------spdlog finished---------
---------filedialog scanning---------
---------filedialog finished---------
---------imgui scanning---------
---------imgui finished---------
---------glm scanning---------
CMake Error at 3rdparty/glm/CMakeLists.txt:11 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/glm/glm

  does not contain a CMakeLists.txt file.


---------glm finished---------
---------openal scanning---------
CMake Error at 3rdparty/openal/CMakeLists.txt:14 (add_subdirectory):
  The source directory

    C:/Users/12976/source/test/EtherealEngine/3rdparty/openal/openal-soft

  does not contain a CMakeLists.txt file.


CMake Error at 3rdparty/openal/CMakeLists.txt:16 (target_include_directories):
  Cannot specify include directories for target "OpenAL" which is not built
  by this project.


---------openal finished---------
---------stb scanning---------
---------stb finished---------
---------3rdparty finished---------
---------engine scanning---------
---------core scanning---------
---------core finished---------
---------runtime scanning---------
---------runtime finished---------
---------engine finished---------
---------editor scanning---------
---------editor_core scanning---------
---------editor_core finished---------
---------editor_runtime scanning---------
---------editor_runtime finished---------
---------editor finished---------
Configuring incomplete, errors occurred!

Sample

Hi

Can you provide us some example to create game using ur engine? especially multiplayer game.

cling based C++ as scripting language / hot code reload

cling based C++ as scripting language / hot code reload
Why? Able to run C++ script in runtime or compile it for max speed ( as in example https://github.com/derofim/cling-cmake )

HOT code reload
possible approaches:

store app state
fix cling undo for files
https://root-forum.cern.ch/t/loading-unloading-class-as-interpreted-macro-in-cling-multiple-times/32976/2

execute cling code to change callbacks & variables
nested cling::Interpreter with multiple cling::MetaProcessor
IDK how to do it, but you can create child cling::Interpreter

cmake error

I use cmake 3.80 do makelist,but turn on error:

CMake Error at 3rdparty/bgfx/cmake/3rdparty/glsl-optimizer.cmake:73 (list):
list sub-command REMOVE_ITEM requires two or more arguments.

360-164408199794146

crash in bgfx

void memCopy(void* _dst, const void* _src, size_t _numBytes)
{

#if BX_CRT_NONE
memCopyRef(_dst, _src, _numBytes);
#else
::memcpy(_dst, _src, _numBytes);
#endif // BX_CRT_NONE
}

Can not compile

When I try to compile it gives me error in the "variant.h", "variant.cpp", "ringbuffer.cpp" and "xutility".

Can anyone pls help?

Error In Build

error
Hi,
I am new in game programming and C++. When I built your game engine, i got the above two error. Could you help me to resolve it?

New style can't be previewed

After changing the style of the editor, the settings are not effected immediately. However, the changed color scheme will be correctly loaded after a restart of the editor.

Few suggestions and possible bugs.

Overview

So i have been playing with the engine and editor for a few days now and i have stumbled upon a few things missing or not working

Materials Editor

There is no materials from within the editor. Personally, i feel this is a very important feature for any engine to have as without such a feature it becomes difficult and tedious to create a level for your game. I recommend doing this through a selection of default shaders that the user can choose from and then it open up properties and textures inputs based upon the shader.

Drag and Drop

From what i could tell there is no way to drag models or other assets from the asset browser into the current scene and if there is then it is not working correctly. This feature should not only work for dragging into the scene but also for dragging assets into the inspector. Correction, i have re-read the Reedme and found you need to use middle mouse, this is not natural for many users and impossible on laptops.

Statistic Dropdown issues

I have had a small issue where the statistics dropdown box is difficult to click, i end up spamming click until it hit the small zone that causes it to open, this is something that could do with fixing.

BGFX Issues

When trying to run DX12 and Vulkan i came across a few issues in the form of DX12 crashing upon startup and Vulkan reverting back to DX11. I am on windows 10 and my GPU is a 970 on the newest drivers. I believe these issues would be solved by updating bgfx to the newest version.

Documentation

When trying to learn and understand the engine i couldn't help but feel there was a strong need for proper hand written documentation, this would help people learn and understand the engine much faster and would also make the engine more accessable. I recommend you do this sooner rather than later so you can do it slowly over time rather than all the docs within a month with no new features.

DOCUMENTATION?

this is really what i need. When I use bgfx and want to combine it with assimp, I find your project and this is prefect for me. But there is no documentation about its useage, So it is hard to begin After compiling

error when I run on windows 8

hello.
I run command

cmake -G "Visual Studio 15 2017 Win64" ..

on win 8
then when I run editor project, I get an error:

Exception thrown: read access violation.
this->m_factory-> was 0xFFFFFFFFFFFFFF1F.

It is happen in file dxgi.cpp line 409.

hr = m_factory->CheckFeatureSupport(DXGI_FEATURE_PRESENT_ALLOW_TEARING, &allowTearing, sizeof(allowTearing) );

How can I fix the problem?

the stack is :

Missing artifacts

Missing build artifacts from appveyor CI & travis-ci, to download binary

Engine filed to compile

Under the lastest commits the engine fails to compile, from what i can gather its because all the files in "runtime/rendering/debug" are missing. Im not sure if these files were refactored but there are still some references to it in the engine

is math::qualifier missing

compile errors;
3>g:\lo\bgfx-master\etherealengine\engine\runtime\meta\rendering../core/math/vector.hpp(8): error C2039: “qualifier”: 不是“math”的成员 (编译源文件 G:\lo\bgfx-master\EtherealEngine\engine\runtime\meta\rendering\reflection_probe.cpp)
3> G:\lo\bgfx-master\EtherealEngine\engine\core/math/math_includes.h(12): note: 参见“math”的声明 (编译源文件 G:\lo\bgfx-master\EtherealEngine\engine\runtime\meta\rendering\reflection_probe.cpp)
3>g:\lo\bgfx-master\etherealengine\engine\runtime\meta\rendering../core/math/vector.hpp(8): error C2061: 语法错误: 标识符“qualifier” (编译源文件

source code:
template <typename Archive, typename T, math::qualifier P>
inline void SERIALIZE_FUNCTION_NAME(Archive& ar, math::tvec2<T, P>& obj)
{
try_serialize(ar, cereal::make_nvp("x", obj.x));
try_serialize(ar, cereal::make_nvp("y", obj.y));
}

License?

What license are you granting others to use EtherealEngine?

Under US laws, you're automatically granted copyright for your work from the moment you created it. Hence, it isn't in the public domain and anyone seeking to incorporate your work, or derive other work from yours, must do so with your express permission.

I'm sorry for being a killjoy here, as you're probably more interested in continuing to work on cool stuff, but those are the ground rules for the creative arts; which, as a fellow creative, I'm actually glad and grateful they did it this way. A lot of other stuff, not so much.

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.