There has been almost a year now since the last major update about Tao Classic, so this post is meant to be a roundup covering this year and also to provide insights into the future. First of all, the most important thing to start with, is the past. How Tao Classic started, what was the goal in mind, etc? To be honest, Tao Classic was never meant to be what it is evolving into. It started as an inhouse fork of Tao Framework with 100% percent focus on bringing up OpenGL support to 4.x for usage with a demoscene engine. Later on, it turned out that obviously for new functionality, new tests have to be implemented and these tests turned into the new additions like the OpenGLForm and OpenGLControl classes or the demoviewer application, etc. While coding the mentioned tests, code was added to support handling the extensive matrix algebra required by OpenGL 3.x (because it made matrix operations like glPushMatrix() deprecated). This led to the birth of Tao.Math. At this point too much was added to have it only kept for myself and i’ve also realized that other people might profit from the stuff i’ve created, so i registered the project on SourceForge and started to spread the word about it. The months passed and while still working on the OpenGL part, i started to receive a lot of mails asking about other aspects of Tao Classic, even about ones i haven’t thought before. This forced me to shift development efforts, quite drastically, to be honest. Below, i listed these aspects, in a descending order of importance.
To be honest, since the ’90s i’ve been a huge fan of Microsoft. Whatever they did, i liked, simple as that. (Ok, not always, but…) When Tao Classic’s development has began, i haven’t even considered Linux, not even for a second…
Then came the latest era – if might call it that way – and the new “lets create a new API and dump it two years later!” way of thinking, which i really don’t understand. Just an example: first they had MFC, then they started with .NET and gave birth to WinForms. Ok, this is old stuff. But a few years later, they dumped further development of WinForms and started to advertise that WPF is the future. Now they seem to dump WPF for the sake of Metro-based apps. Same goes with Managed DirectX and XNA. They ditched Managed DirectX and kept saying that XNA is the future and now, they are shutting down XNA early 2014. So what’s next? Seeing all the latest buzz around the good old C++ once again, i started to think – ok, they are going back to Direct3D & C++, but then it turns out, they are not developing DirectX further either. So really, what’s next?
Finally, Visual Studio – when they came up with Express, the whole world of Windows developers cheered up with joy, then later on they announced that Visual Studio 2012 Express will be all about Metro, without support for WinForms or even WPF. Luckily for us, hobby developers, this never happened, as – probably because all of those negative responses – they ended up having a separate version called Visual Studio for Windows Desktop.
Ok, all this is history and i don’t want to have a wall of text here that sounds like a hate speach against Microsoft or something, but the fact is, that considering all what’s happening lately, it’d be foolish to create something that is purely Windows-based. I just don’t feel like trusting Microsoft *that* much anymore. Maybe i’m wrong, maybe i’m not, but for the future, i’d like to concentrate more on having Tao Classic flawlessly run on Linux, while keeping Windows supported, of course. (Until the day when Microsoft decides to remove something that is crucial for Tao Classic!)
Finally, if the above words are not enough, let’s consider how lately many major companies stated that they are planning to focus more on Linux as a gaming / multimedia platform. Steam, CryEngine, Unity, etc. – just to throw in some bigger names.
A large portion of questions (or even contributions and tips!) covered the Tao.Math library, which i originally wanted as a minimalistic implementation. To be honest, this caught me by surprise – i never thought that there’s really such a need for a math library that is a part of Tao Classic. Even though sometimes it was a bit time consuming to extend the math library, this one was the easier… It just needs some time, really.
Another painful thing: with OpenGL 4.4, Khronos fundamentally changed the format of the OpenGL specification files. As you might know, these files are used by a code generator tool to generate the Tao.OpenGL bindings, which would be too large to be maintained manually. This change basically forces me to rewrite the codegenerator or to drop OpenGL 4.4 support. To keep Tao Classic alive, the latter should be off the table, of course!
For now, i’m hitting a brick wall with this one – i lack the experience with OSX and also the hardware/software environment, yet i’m getting asked from time to time regarding this. If things turn serious and there’s really a need to have Tao Classic support OSX, i’ll do the neccessary steps of course. For now, all i can do is to have OSX considered, whenever i make a design choice regarding Tao Classic.
OpenGL ES support
Khronos seem to be moving in a direction where OpenGL and OpenGL ES gets merged at some time in the future, making it possible to have for example OpenGL ES applications natively run on PCs, etc. Since OpenGL ES became too important to ignore this, this aspect became another thing that need to be considered – on the design level, for now.
Just like OpenGL ES, OpenCL also became something that cannot be ignored anymore, although most of the hobby developers still don’t really try to harness its power. On the long run, support for OpenCL should be also considered to keep Tao Classic at the cutting edge.
It must be admitted, all the above sounds like a lot of empty promises and it is possible that some of the less important goals won’t be reached for quite some time, but what was meant here, once again, to provide insights into the challanges and the big “what if”s of the development. I’m not promising to have X and Y features in the next release, but one thing is sure: Linux support is a must. Linux for gaming and multimedia – especially for the indie developers! – is too much of an exciting challange to miss
Finally, but with no less importance, i’d like to say thank you for Lucas Cosson, Nick Norman and Tim Schroeder for providing valuable feedback and ideas about Tao Classic and to encourage others to keep providing feedback and to help build a community around Tao Classic!