After a much too long hiatus, we’re back with a new website. It is still under heavy construction and will be for some time – especially for the forums and new wiki. I was never satisfied with the old site and its various difficulties of integrating a decent forum into wordpress. This time I’m taking a slightly different route in an effort to build a better community site. For now, the development blog re-opens officially. These efforts mark a new revitalization of development for the Tesla 3D Engine. Lets go over some updates that have happened in the last few months.
Development Begins Anew
The last official commit to the google SVN repository was last May, which was quite a while ago. This April marks the 2nd year anniversary of the engine’s source code going live, and the third year anniversary of starting development. Last fall I began work on a Direct3D11 render system using SharpDX and a redesign of the render system. This work did not make it to the official code repository and laid unfinished for a while as my time became limited by my professional day job.
I covered some of these developments in a “State of the Engine” post some time ago, which included details on an Effect compiler. With the move to SharpDX, I began an effort to move away from the deprecated Effects11 framework, but decided to keep (more or less) the existing effect interfaces we have. This called for a custom effects implementation that would control the shaders and shader resources directly – very similar to what the SharpDX Toolkit and MonoGame have for custom effect solutions. So quite a bit of work was in the pipeline.
This effect compiler more or less has been finished as well as its binary format (“TEFX“). Some months ago I began working on the runtime aspect of the engine’s effect system. Then work got busy and my evenings working on engine development grew more sparse. I also recognized some areas (especially the engine Core, e.g. DataBuffer) really needed some good redesign in order to do better/faster buffer interop. I drew some inspirations from how SharpDX put together its own DataBuffer by using Mono.Cecil to replace method stubs with IL fragments. From there, I decided to do a partial re-write/review of the entire engine, which I began about two months ago in January.
Essentially I’m working on “Tesla Engine v2″, which will (finally) offer a completed content pipeline and redesigned render system to support more modularity of features, e.g. WPF support. It will also offer a cleaner API in setting up engine services. With the move to SharpDX, we also went AnyCPU and upgraded to .NET 4.5. I hope to get the first source release of the next engine version sometime in April, although there is still much work to be done, and I do operate on what is known as “Valve Time”!
However! The Tesla 3D Engine is not my only project initiative. I am also the author and maintainer of the AssimpNet C# wrapper for Assimp. This has become a popular library for many .NET developers (including MonoGame and SharpDX users), and I’m especially happy to see that piece of technology getting used so widespread. The last release has brought about 100% coverage of the C-API and the project is not only fully documented, but I’m fairly quick to respond to any bug issues. Since the project has become widely used, I am bringing the library under the same branding as Tesla Engine. When the forums re-open, AssimpNet will gain a sub forum for support and discussion. It still will continue to exist as a stand-alone component. Hopefully, the first of many! I have a keen interest in creating wrappers and doing managed-native interop (another one of my projects is DevilNet), so AssimpNet won’t be the last. I build these components for myself mainly, but I do so in a manner where they can be useful to other developers.
As you can see, we have a nifty new logo for the engine. The new Gear Lightbulb symbolizes innovation, industriousness, and robustness – attributes that I try to live by when developing software, whether its my Graphics Engine or third party components like AssimpNet.
With that said, I’ll be signing off. Until next time,