/EtherealEngine

C++ Game Engine and Editor

Primary LanguageC++BSD 2-Clause "Simplified" LicenseBSD-2-Clause

Ethereal Engine - Cross-platform C++ Game Engine

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

This is mostro verson of Ethereal.
I added the bullet physics engine.
I've made some useful updates to the interface, camera, and game & editor separation.

My goal of this work is WYSIWYG and highly scalable.

STATUS

I am continuing to develop,

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:
    /**
     * @brief This is a method comment description.
     *
     */
    void some_method();
  
    /**
     * @brief 
     * 
     * @tparam T 
     */
    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

REQUIRED FEATURES

PRIMARY FEATURE

  • Implement all methods of Rigidbody Component
  • Implement all Collider Component and its method
  • Fix camera sight distance bugs
  • Script Component, which support programing language such as C++, C#, Python(Yes, I've seriously thought about it)
  • game & editor separation
  • Game play & close button switch
  • Scene(Project) save
  • Use system default file explorer
  • Double click game object to focus
  • Unit test of Transform Component

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