Giter Site home page Giter Site logo

illation / etengine Goto Github PK

View Code? Open in Web Editor NEW
756.0 40.0 56.0 556.76 MB

Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14

License: MIT License

C++ 92.13% GLSL 5.47% C 0.11% CMake 2.29%
game-engine planet-generator planet-renderer real-time-rendering pbr opengl resource-manager gtkmm ecs ecs-framework

etengine's People

Contributors

ajweeks avatar illation avatar logzero avatar neroburner 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

etengine's Issues

Support MSYS2 MinGW-w64

Your project uses the cmake build system so it's not difficult to add support for MSYS2 MinGW-w64.

Please support MSYS2 MINGW64

When I saw the submodule /ETEngine/Engine/third_party/gtk/GTK-for-Windows-Runtime-Environment-Installer I immediately know your project doesn't support MSYS2 MINGW64. Because on MSYS2 MINGW64, this submodule is absolutely not needed as we have packages for GTK3 and GTK-for-Windows-Runtime-Environment-Installer is indeed made using MSYS2's GTK3 packages.

Can someone explain how to build with Visual Studio 2022 ?

Changing this :

git clone https://github.com/Illation/ETEngine
cd ETEngine/Projects/Demo
cmake -G "Visual Studio 15 2017 Win64" -S . -B build
cmake --build build --target all --config Develop
cmake --build build --target install
cmake --build build --target cook-installed-resources-EtEngineDemo

Into this :

git clone https://github.com/Illation/ETEngine
cd ETEngine/Projects/Demo
cmake -G "Visual Studio 17.4.3 2022 Win64" -S . -B build
cmake --build build --target all --config Develop
cmake --build build --target install
cmake --build build --target cook-installed-resources-EtEngineDemo

Does not seems to be enought

decomposed transform component rotation is in wrong coordinate space

glm decomposition does not have a left handed version, thus the resulting world rotation is mangled as if its input had been a right handed rotation

this problem has been overlooked for a large part of the engines development, resulting in code that is adapted to work with this bug

the correct solution would be to not use decomposition here at all, but because of the adapted code the correct solution causes incorrect behaviour

Discord Server

Many of the engine projects on github launch discord servers lately.
How about one for ETEngine too?

Appveyor build fails to generate libraries

For some reason vcpkg fails to install 7zip during the setup phase, and therefore cannot download gtkmm and its dependencies.
https://ci.appveyor.com/project/Illation/etengine

That said even if that worked it might fail anyway, due to the time it takes to generate the library files during a first time build. Appveyor has a time limit of 1 hour, which may be exceeded by the time the 50 or so dependencies are built.

If it did work, it still isn't ideal, as nobody wants to wait that long to validate a source build and run unit tests.

The best solution would probably be to have a release with all the libraries prebuilt, which appveyor can simply download and then proceed straight towards the engine build instead.

Add DirectX 12/Vulkan backend

Description

Currently the engine only support OpenGL backend and while it's sufficient I think a second API like DirectX 12 or Vulkan could be a nice addition. It can improve performance and can also make rendering more efficient. Moreover adding these APIs will also open up the possibility to use features such as Ray-Tracing and NVIDIA's DLSS.

DirectX 12 vs Vulkan (Metal?)

The two major candidate for an alternative backend is DirectX 12 and/or Vulkan (I think Metal should be at a lower priority for now). Since @Illation is already planning to add DirectX 12 I don't think there is a question in between the two, but I am slightly inclined towards Vulkan mainly because it is cross platform and I love using Linux. Also, in this discussion people tend to prefer Vulkan since it has better documentation and is cross platform (can be biased tough).

Final Thoughts

Adding a second backend can really increase the potential of the engine. I personally prefer Vulkan but even DirectX 12 will be a good addition compared to the current backend. I am willing to contribute to the project and would love to hear everyone's opinion regarding this. One of the major challenge is to add the second API while not breaking OpenGL meanwhile using the second API to it's fullest potential, if anyone has experience regarding this I would love to hear your opinion on how to tackle this problem.

Thanks

Font buffer size is being calculated incorrectly

I believe the following lines should not take into account the number of elements in the TextVertex struct, but rather simply store the current number of tVerts.

pFont->m_BufferStart = (int32)tVerts.size() *(sizeof(TextVertex) / sizeof(float));

pFont->m_BufferSize = (int32)(tVerts.size()) * (sizeof(TextVertex) / sizeof(float)) - pFont->m_BufferStart;

E.g, the correct code would be

pFont->m_BufferStart = (int32)tVerts.size();

and

pFont->m_BufferSize = ((int32)tVerts.size()) - pFont->m_BufferStart;

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.