mattguerrette / vixenengine Goto Github PK
View Code? Open in Web Editor NEWOpen Source C++ Game Engine
Home Page: http://mattguerrette.github.io/VixenEngine/
License: GNU General Public License v3.0
Open Source C++ Game Engine
Home Page: http://mattguerrette.github.io/VixenEngine/
License: GNU General Public License v3.0
VixenEngine needs to be setup using CMake which will generate the correct Makefile for Linux and Visual Studio solution/project files for Windows.
We need to capture the SDL_TextInputEvent into a buffer that we can send to scripts. This way we can effectively capture user text input when requested.
Here is the SDL sample documentation:
https://wiki.libsdl.org/Tutorials/TextInput
Vixen needs to have its code documented. This way, we can generate doxygen documentation that can eventually be linked to on developer site.
Currently the implementation of DXModel only renders using the first mesh received from Assimp after loading the model file. There needs to be a new IMesh interface and corresponding DXMesh class to hold per mesh data, which DXModel will use to render each mesh
I have a few items that may need attention, unfortunately, to do with everything except the code, which happens to the the fun bit.
First, I was wondering whether it would be prudent to have a universal coding style written up, possibly added to a wiki of some sort, simply for consistency within the project. Additionally, the wiki may contain an upcoming features list.
Second, a mode of communication would be helpful in discussing minor items that aren't classified as issues for general communication, at the very least.
The items listed above are little things that will certainly prove useful in creating a project team, and creating an engine that will be almost indispensable for use in popular games, and in education. Cheers
All current dependencies need to be built in release mode, as well as all Vixen library projects need to be setup to build Release.
In doing so, the code base should factor out (using macros) any debug specific logic to increase runtime performance of release builds.
Objects are currently being added to a list for deletion, which is really slow and inefficient. They should instead be marked for removal from the scene. If they are marked for removal, they will be removed as the update loop iterates over them.
Instead of passing (float dt) around everywhere in the update and render loops, time should be a singleton that contains get methods for all of the relevant values (deltaTime, totalTime, FPS, etc.).
There needs to be a collection of common render states that can easily be created and set on the device context.
Currently, there is a significant performance issue with the rendering using DXRenderer. Multiple instances of the same model should be instance rendered as to alleviate some of the rendering overhead.
Currently there is only a runtime resource solution for VixenEngine. There needs to be an offline (not runtime) resource management solution that can transform DCC content into the content packages loadable by the game engine itself. This system will be needed for VixenEditor at some point to be able to compile content.
Features:
How do we implement such a feature?
Comments
Please let me know if you have any questions or concerns involving this project. It is no small task to create such a resource system, but I believe developing such a feature for Vixen will greatly improve the engine.
Currently, there is significant overhead with the current implementation of Lua in Vixen. Analyzing the data outputted by visual studio's performance profiler shows that the most expensive operations seem to be accessing the C++ bound objects from their lua tables and calling any C/C++ functions bound to them.
The possible solution and one I am currently exploring is using LuaJIT to precompile all scripts and hopefully increase runtime performance through loading and executing the bytecode.
Currently, there are evident race cases and unknowns involved with interaction between lua scripted game logic and scenes because issues with scene state. The lifetime of a scene and all of its objects needs to be made more concrete.
For example:
LoadScene -> Scene is now created -> initialize all gameobjects -> call initialize (scripting) on all objects -> continue with gameplay.
There was an issue with the current scene not being set correctly in SceneManager due to the current scene loading code, and trying to create or delete objects before a scene has been initialized or made current causes issues. This needs to be addressed.
License for project will be changed to LGPLv3
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.