I hadn’t realized, but the Vortex Editor turned one year old a couple of months ago. I set off to work on this project in my free time with a clear set of objectives and it’s hard to believe that one year has already passed since the initial kick-off.
Of course, the Editor is closely tied to the Engine, which has seen its fair share of improvements through this year. From building an entirely new deferred renderer to completely replacing the node-based scene graph system to an Entity Component System model that is flexible and extensible, enhancements have been wide and deep.
This post is a short retrospective on the accomplishments of the Vortex Editor and Vortex Engine through this last year.
Vortex Engine Achievements in the last year:
- Kicked off the third iteration of the Vortex Engine, codename “V3”.
- Upgraded the Graphics API to Core OpenGL 3.3 on Desktop and OpenGL ES 3.0 on Mobile.
- Implemented Deferred Rendering from scratch using MRT. Establish the base for PBR rendering.
- New Entity Component System model, far more flexible than the old scene graph model and with support for Native and Script Components
- Overhaul of several internal engine facilities, such as the Material and Texture systems.
- Completely redesigned engine facilities such as Lights and Postprocessing.
- New Lua-powered engine scripting.
- Ported to Windows, fixing several cross-compiler issues along the way. The engine now builds with clang,
GCC and MSVC and runs on Linux, Mac, Windows, iOS and Android.
- Started moving codebase to Modern C++ (C++11).
Vortex Editor Achievements in the last year:
- Successfully kicked off the project. Built from scratch in C++.
- Built a comprehensive, modular UI with a context-sensitive architecture that adjusts what you’re doing.
- Bootstrapped the project using Vortex Engine 2.0, then quickly moved to V3 once things were stable.
- Provide basic serialization/deserialization support for saving and loading projects.
- Implemented a Lua REPL that allows talking to the engine directly and script the Editor.
- Friendly Drag-and-Drop interface for instantiating new Entities.
- Complete visual control over an Entity’s position, orientation and scale in the world, as well as the configuration of its components.
- Allow dynamically adding new components to entities to change their behavior.
It has been quite a ride for the last year. I believe all these changes have successfully built and expanded upon the 5 years of work on Vortex 1.1 and 2.0. I’m excited about continuing to work on these projects to ultimately come up with a product that is fun to tinker with.
My objectives for this year two of the Editor include: implement scene and asset packaging, expanded scripting support and PBR rendering.
Stay tuned for more!