illation / etengine Goto Github PK
View Code? Open in Web Editor NEWRealtime 3D Game-Engine with a focus on space sim. Written in C++ 14
License: MIT License
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
License: MIT License
I'd like to know the reason for writing your own vector class. Is it just because of the extra dependency? Or are there other reasons?
Your project uses the cmake build system so it's not difficult to add support for MSYS2 MinGW-w64.
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.
Nothing big but -H. -Bbuild
is apparently deprecated since 3.13. Its -S . - B build
now.
Since the -H is apparently not documented it took me a while to figure out what the intend was.
https://stackoverflow.com/questions/11143062/getting-cmake-to-build-out-of-source-without-wrapping-scripts
Not urgent or anything seeing how you are still winding up to a release.
Just documenting.
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
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
ETEngine/Engine/source/EtMath/Vector.inl
Line 365 in 827b8aa
/home/nero/repos/ETEngine/Engine/source/EtMath/Vector.inl:365: error: ‘lhs’ was not declared in this scope; did you mean ‘rhs’?
365 | result[i] = lhs[i] + scalar;
| ^~~
| rhs
Many of the engine projects on github launch discord servers lately.
How about one for ETEngine too?
Hey, I am getting this error during compilation in Engine/third_party/bc7enc/bc7enc/rgbcx.h
.
What's the cause and how do I fix that?
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.
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.
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).
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
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
.
E.g, the correct code would be
pFont->m_BufferStart = (int32)tVerts.size();
and
pFont->m_BufferSize = ((int32)tVerts.size()) - pFont->m_BufferStart;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.