Well, as most of you probably know, the MDX samples and
documentation have been deprecated from the August DirectX SDK and all forthcomingreleases. I'm not sure if the redistributable is continuing to ship
with it or if it's been taken out too (I
haven't looked at it to be honest).
This means that the main renderer so far for Jade is now
officially dead from Microsoft's point of view.
I posted a lot about this subject earlier this year when we started to shape Jade 2 features and
objectives and that we had to plan for MDX dying in the future.
Now that the future has come and MDX has died, what can we
do?
1 - continue with MDX. The redistributable for MDX 1.1 will most likely continue to exist (although MS did trick us with MDX 2), so we can keep using it. However, the lack of documentation in the SDK represents MS's lack of support for improvements (features, fixes, etc) to this technology.
2- move to XNA. I personally like XNA and what it can become
for the game industry. While I also think it's quite young, yet the new features in XNA 2.0 (announced some
days ago) are a very big step in the right direction. But for us XNA is just a
another flavor of MDX and no matter how
hard we try we won't be able to run on a 360 because our code is way out of the
scope of the Compact Framework. Without being able to port Jade to 360 (and not planning to do that in the near future), XNA offers very little to us.
3- use a DX wrapper. There's a very good project started at
Gamedev called SlimDX that wraps around DX9 and DX10. We did some tests with it
but we didn't get very far; although it shows a
lot of promise given the talented people working on it. But for us, as we use
very little functionality of DX it was overkill.
4- wrap the needed functionality of DX ourselves. We could write a new renderer in C++/CLI
that calls directly the DX dlls.
The 4th point is the path we have taken in Jade and
currently the C++/CLI renderer is up and doing everything we were doing with
MDX. Well, actually, there's a difference: it's
running much faster than the old renderer :) MS numbers were that MDX was around
10% slower than raw DX but our numbers are showing a bigger difference there
(although our tests are quite simple so maybe this could change as we add more
features to the engine).
This jump from MDX to C++/CLI has also shown us that it will
be easy enough to have several renderers in the new architecture (in fact we
have 3 renderers now: the deprecated MDX renderer, the new C++/CLI renderer and
a very simple fixed pipeline renderer).
So it seems we are going in the right direction as lots
of new and important features are working in the engine so far. These include multiple renderers, multi-threading, support
for multiple scenes,... And much more is yet to come :)
Well, nearly 2 months since last post... Summer is not a very productive time for me :) But I have lots of things to talk about so updates should come more often during the next weeks.
Today I wanted to talk about Project Simply Complex, probably the most ambitious project done with Jade 1.1 (that we know about). As you can see in our wiki page here, it's the work of a group of people from Milwaukee School of Engineering about Rube Goldberg machines. I must thank Alikar and the rest of the project team for sharing their code with the the Jade community and people involved in 3D game programming in general. You can download it our page on Codeplex.
Take into account that the code is in early alpha state not pretty or finished by any way ;) But there you'll find very nice examples of picking, physics integration, drag and drop and an UI for Jade (the UI is probably one of the most requested features of the engine). Also, they got quite a good understanding about Jade 1.1 and their suggestions and comments have been pretty important for several Jade 2 decisions.