Starting over, again...
You may have wondered what I've been up to all this time. I stopped posting engine updates for the Third Eye Engine some time in August 2022, and from there it has largely been radio silence. Well, a few things have been going on:
I came to a realization that two parts of the engine required a major overhaul; the rendering engine and the object translations (which were intertwined with much of the engine itself). Both of these were very significant changes that would require more than a month of dedicated work.
Having already worked extremely hard on the engine (and its previous iterations) for a couple of years, and faced with these required changes on top of the pandemic recovery, I burnt myself out. I knew deep in my mind that it may be in my best interest to start over with an altered approach, but I couldn't comprehend getting myself to do it.
Luckily for me was in the position where it wasn't such a big deal; until I actually start developing commercial games, I don't have an obligation to complete anything; this is still just a hobby until that point. With that said, so many of you have stuck around the Discord community, showing continued support, and so I wanted to take this opportunity to apologize for the wait and thank you for the continued interest and support! Now let's get down to business!
Improvement of skills, and TEE3 progress
Since the last engine update, I've been at work improving my skill in areas that previously limited what I was able to do. That includes learning how to handle 3D rendering myself, learning more about complex systems, new C++ features and so on.
I've also been at work in planning how I would "do it all over again". After much planning, improving, relaxing and overall getting myself back to a healthy state of mind, a new iteration of the Third Eye Engine has entered the development phase! Like before, the plan is to develop a robust, multiplayer physics game engine, alongside an editor that allows for high levels of customization and modding. This time however, there's a few new features that take it to the next level:
The engine is now being developed using modern C++ standards and builds natively for Windows and Linux. Everything is being developed with the idea of potentially supporting Mac as well, but I am unable to test with it at this time.
Both 2D and 3D rendering / scenes will be supported, and they can even be mixed. The new engine and editor allow for not only creating 3D scenes, but have access to a 2D layer as well. This means that things like game UI, character selection screens, menus, etc. can now ALL be made in the editor!
A new "chunking" system has been created to split up objects into invisible "chunks" based on positioning. This allows for efficient rendering; only rendering objects that are in visible chunks. This also allows for efficient area-specific operations such as object selections and finding objects within distance of a particular point. In the future, the multiplayer engine may use this to prevent sending object updates for objects that can not be seen by the player.
The game engine will be built to be multiplayer-first. Much like popular games such as Minecraft, even single player games will process on a hidden / local multiplayer layer. This will allow for much easier development, as every feature will be multiplayer-ready from day one.
Multiple scenes can now be active at once, layered, and even combined. This allows for all sorts of cool tricks that would not have been possible before. Imagine creating an in-game menu once, attaching a script for its functionality, and then using it in multiple other scenes easily. Also by supporting a transparent scene background, scenes can now be layered to create almost any combination you could think of! Another usage of this feature is a server that serves multiple "games" at once, or games with multiple levels that a player can traverse freely. In such cases, multiple scenes would need to be loaded and processed at once by the server. This also allows for loading upcoming scenes in the background for instant initialization later on.
A new rendering engine is being developed that supports multiple passes on both the 2D and 3D side, and delegation of specific objects to specific renders. This will allow for shaders to be used and selected per-object as needed, giving access to almost any visual effect out there. As the rendering engine is being developed from bare bones, anything that isn't supported can simply be created. This also allows for very tight use of resources with minimal waste on the engine side because of the amount of control a custom renderer gives you. This also means that there is no longer any overhead between the engine and rendering, because rendering is part of the engine. This was developed with the intention of allowing for higher quality graphics than the previous engine allowed for.
The new editor is extremely clean, supports full customization, docking and modification of multiple scenes at once! This allows for great productivity as you'll now be able to work on a level while modifying prefabs used within that level at the same time, seeing the changes in real-time.
Better usage of templates will see editor source code drastically reduced in size as components will no longer be "hardcoded" into the editor. In the previous iteration of TEE, adding a component to the engine involved not only updating the engine, but the editor. Now I can create components, and they will automatically integrate with the editor. In fact, this system can be easily upgraded to load custom DLL or script based components in the future!
New editor demonstration images



So where are we at?
We're still early in development, but right around the corner are some very exciting demos and additions (that is why I've chosen to announce this project now). Currently the system's barebones are completed:
- Scenes and scene management
- Objects and components
- Separate 2D and 3D rendering
- Ability to hijack rendering for scenes (this is how we get the scene drawn inside the editor windows)
Over the upcoming weeks and months, the following will be completed:
- The resource manager (which holds everything the game "loads", such as textures, meshes and sounds) will be completed alongside the editor integration
- New shaders will be developed and will show off 3D rendering and shadow rendering that looks much better than previous iterations of the engine (if you like the new Unity-based first person hockey, you'll love this)
- New object components with 2d and 3d rendering will be created (eg. Text Labels, Sprites, 3D Meshes)
- The multi-rendering system will be finalized and we will begin to see the first examples of shaders (lighting and shadows)
- The editor will be developed alongside these new features, including component modification
- The multiplayer-first system will become a reality
- Physics and scripting support will be added
That's it for now
I will continue to post updates here as the engine develops, along with some type of announcement in the Discord server. I think the #dev-log portion of the discord will be deprecated (but left there for now for historical purposes).
For anyone that has made it this far, thanks for reading! Hopefully this excites more than just me. At the end of the day, you're probably here because you're waiting for a hockey game. We'll get there :)