iainmckay / idtech4.net

Port of doom3 / idtech4 to C#.
19 stars 3 forks source link

Content Pipeline #6

Open iainmckay opened 12 years ago

iainmckay commented 12 years ago

idtech4.net uses the content pipeline for loading assets. This means all content has to be pre-processed before it can be loaded by the engine.

This causes obvious problems for games that use stock assets from Doom3 and require the user to copy them to their game directory. Stock assets cannot be loaded and cannot be compiled on the fly (the required components are only available to XNA developers).

The developer cannot precompile these assets and redistribute them as this is against the Doom3 licence.

I think we gain more by using the content pipeline than not using it. If possible it would be nice if we could think up a workaround.

mattiascibien commented 11 years ago

Do you mean creating xnbs automatically or sort of that?

iainmckay commented 11 years ago

Yes, but it it's not particularly realistic for your players.

Most mods use assets from DOOM3, but with this port of the engine we require that those assets be passed through the content pipeline (into XNB form).

You can't do this on the side of the player because there is no client re-distributable for the compiler stages of the content pipeline. They'd have to install Visual Studio and the Game Studio and you can't really expect your players to do this :)

This isn't an issue personally for me as I wouldn't be using assets from DOOM. I'd be using self made or CC licensed material that permit me to package them with my game.

mattiascibien commented 11 years ago

What about working with MonoGame? It should provide some sort of compiler for XNBs in the near future.

iainmckay commented 11 years ago

Yep that's a real option.

mattiascibien commented 11 years ago

I'll try to check what parts of the engine build with monogame if you wish

iainmckay commented 11 years ago

Sorry, been AFK.

Yep, that's be good. There will be a few pain points. Mainly how the engine decides which platform driver to load, it's just a bunch of #ifdefs right now.

Another project is eating up my time at the moment so I've not been able to work on this recently, hoping to get back to it soon however.