VDEngine – Virtual Dimension Game Engine

VDEngine – Virtual Dimension Engine, is a game engine that was part of a hobby project I started when learning C++ and OpenGL, around 2013. It is inspired by the Unity 3D game engine. Simply because I had previous experience making games in that engine. Thus, I had an idea how what a game framework could look like and how it works.

The Beginning

This project was also made as part of some secondary school courses, this allows for much more time to spend on developing and learning about game engine creations while being in school. Since spare time is a luxury. It provided me with many challenges and was a great learning experience. Because, as mentioned in A Guide to Start Creating a Game Engine, game engines are complicated software and require knowledge in many fields of computer science. But as I will mention later, I had no knowledge when starting the project, but that didn’t matter, because it was fun.

In parallel to the project, I quickly separated the low-level window management into its own library. This lead to the creation of the ELT – Engine library toolkit. It works similar to SDL, glfw, and many other similar libraries. It handles the process of creating the window, OpenGL context, and other platform-specific tasks. In hindsight, it would have been a much better choice to go by some other more stable library. Though, this is what I did eventually, replaced ELT with SDL since it did the same thing but was more stable and fully supported on multiple platforms.

Thus the ELT project was a reinvention of something already existing. However, a great learning experience to recreate similar functionalities.

It was at first developed for Windows since that was the development environment. However, it was later ported to Linux. This took much more time since the original code used the equivalent of C#’s properties. However, this is a strict Visual studio C++ compiler feature so all of that has to be changed, which involved many of the math methods and etc.

The game engine went through many phases over the years, this was primarily, at the beginning of the development of the engine, I had for no intent and purpose no knowledge of C++, only prior C# and javascript. All of which do not deal with memory management and pointers and etc.

Video Demo ShowCase