Eu realmente tenho que escrever meu próprio formato de modelo otimizado?

8

Então, eu sou um novato no mundo dos desenvolvedores de jogos e estou começando a escrever meu próprio jogo usando C ++ e openGL. Estou começando a carregar modelos, etc., e enquanto procuro pelo "melhor formato", percebo que a maioria dos formatos comuns é destinada à transferência entre aplicativos de modelagem e não necessariamente à representação final dos dados ao carregar em um ambiente de jogo. Sou informado através de várias fontes que, em última análise, você deseja usar formatos como collada etc. e convertê-los em um formato binário personalizado otimizado para o seu jogo. Isso é absolutamente necessário? Entendo a idéia de que analisar um XML grande ou outro formato ASCII será mais lento do que ler um tipo de arquivo binário, mas será realmente um grande impacto no desempenho se não o fizer? Eu não consigo ver


fonte
2
O que há de errado com os formatos existentes? Eles se saem perfeitamente bem para 99,9% das pessoas.
The Duck comunista

Respostas:

5

O que acredito que essas pessoas estão dizendo é que você deseja carregar seu arquivo COLLADA na sua estrutura no jogo. Você pode salvar o conteúdo dessa estrutura em um arquivo binário pronto para carregamento em tempo de execução.

Isso pode ter vantagens como as que você disse, mas também possui desvantagens, normalmente durante o estágio de desenvolvimento.

Se o ganho de desempenho em tempo de carregamento que você obtém é necessário para o seu jogo, você decide. Se você possui alguns modelos não complexos, a diferença provavelmente é insignificante e cabe a você decidir o que fazer.

Se, para fins de desenvolvimento, você preferir usar o COLLADA e analisar o XML no tempo de carregamento, vá com ele! Eu recomendo que você verifique se o seu código de carregamento é abstrato o suficiente para que você possa substituí-lo facilmente por arquivos binários se o carregamento for muito longo.

Jonathan Connell
fonte
11
Então, basicamente, faça o que estava fazendo e, se achar necessário, posso usar os SDKs para esses formatos para convertê-los em um formato final para o meu jogo. Obrigado pelo esclarecimento, às vezes é difícil separar opiniões. Eu li muitas críticas sobre o uso desses formatos (especialmente ascii), basicamente, batendo-os como algo que nunca seria usado em jogos "profissionais", mas a última vez que verifiquei o software de identificação tem usado modelos de texto sem formatação nos últimos 10 a 15 anos .
Que tal decidir sobre um layout de vértice e depois armazenar essas informações em um arquivo? Depois de resolver isso, você pode descobrir quais outras semelhanças as suas malhas têm. O problema que acho que você enfrentará a princípio é o número esmagador de pequenas diferenças que cada uma de suas malhas tem em seus requisitos no mundo do jogo. No entanto, algumas dessas informações podem ser geradas no carregamento do modelo e podem não valer a pena ser armazenadas no arquivo de dados da malha.
28811 Jay