Até agora, no meu jogo de ritmo, tenho usado o Content Pipeline do XNA para carregar recursos estáticos no meu aplicativo (vídeos, efeitos sonoros, etc.). No entanto, no caminho, eu gostaria de permitir que os usuários criassem seus próprios temas, além de criar gráficos personalizados para as músicas que eles gostariam de tocar. Existe alguma maneira de carregar, digamos, um objeto Texture2D ou Video, do disco sem usar o Pipeline de conteúdo, dado um caminho de arquivo para o recurso?
EDIT : Mesmo que este seja XNA, eu estou direcionando apenas o Windows (sem Zune, WP7 ou Xbox 360).
É perfeitamente possível executar o processo de criação de conteúdo em tempo de execução usando o MSBuild. O exemplo a seguir mostra basicamente como fazê-lo: http://creators.xna.com/en-GB/sample/winforms_series2 . Este exemplo em particular usa formulários do Windows, mas não há nada que o impeça de fazer a mesma coisa em um jogo real.
O grande problema é que o conjunto do pipeline de conteúdo (onde estão todos os processadores / importadores / tarefas de construção necessárias para a construção) não é incluído no XNA Framework redistribuível. Isso significa que, para realmente criar e / ou carregar conteúdo personalizado, seus usuários precisariam instalar qualquer versão do XNA Game Studio com a qual seu jogo foi desenvolvido. Eles nunca precisariam realmente usar nenhum dos softwares incluídos nele, mas precisariam instalá-lo. Dependendo do seu jogo e de quem você espera criar e usar conteúdo personalizado, isso pode ou não ser aceitável.
fonte
Alguns dos processadores de conteúdo expõem classes que fazem muito trabalho pesado, por exemplo, capturam um Stream e produzem um objeto intermediário (como os dados necessários para construir uma malha, mas não um objeto Mesh real). Você poderá fazer algum processamento adicional para transformar o objeto intermediário no objeto final que deseja consumir. Algumas dessas classes podem até cuspir o objeto final para você. Varia de acordo com o tipo de conteúdo. Sugiro pesquisar nos processadores de conteúdo os tipos de conteúdo relevantes e ver se algo útil é exposto. Pode ser necessário reescrever alguns bits você mesmo (Reflector é seu amigo), mas pode valer a pena o esforço se você realmente não quiser usar ativos "pré-compilados".
fonte