Tuesday, December 29, 2009

Assets exporting.

Here we've discussed instant pipeline for our engine. To achieve this goal we need exporting tool compatible with our favorite modeling packages. Starting from ground up is not an option for us, as we want this part to be defined ASAP.

Some time ago I've used modified Microsoft's X File exporter for 3DSMAX and Maya. It can be extended if you need something specific, but it's not very practical when you want to get every bit of info about scene. Supporting it for different versions of modeling packages is another scary story. So I've dropped it.

After some research I've got two good candidates: COLLADA and FBX. And COLLADA seemed much more interesting option for me: open format, XML based, supported almost everywhere. One of our internal projects started COLLADA import/export pipeline implementation and I've watched closely on their progress. After few months of development I've got first impression from the team. It was a disaster. There was a lot of different implementations of COLLADA exporters, but none of them seemed working properly with all possible resources types we need for modern games development. Autodesk implementation didn't even were able to import scene it exported seconds ago. It was clear that you need to build custom solution and this is something we actually don't want to do.

So I've changed my mind and selected FBX for our task. And it worked like a charm.

To be continued.

Monday, December 28, 2009

Instant pipeline.

So, we are about creating brand new shiny engine. Where should we start? I've seen a lot of different opinions. Someone starts from renderer design, someone starts from basic things like math and core framework. If you will ask me, we should start from defining the pipeline. We should get clear view on how our assets will get into engine, how we will create our levels and how we will create platform specific builds from all this.

No magic here, this was solved zillion of times. But we will add one new thing to this equation: pipeline should be instant. No "Export" button in your favorite modeling package. Artist should get updated model in engine right after he pressed Ctrl-S and Alt-Tabbed into game editor. If he has dev console connected, model changes should instantly appear on console as well.