August 2007 - Posts

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 :)

Posted by Vicente | 2 comment(s)

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.

Posted by Vicente | with no comments
Filed under: