Dois-je vraiment écrire mon propre format de modèle optimisé?

8

Je suis donc un tout nouveau noob dans le monde du développement de jeux et je commence par essayer d'écrire mon propre jeu en utilisant C ++ et openGL. Je me lance dans le chargement de modèles, etc. et en cherchant "le meilleur format", je trouve que la plupart des formats courants sont destinés au portage entre les applications de modélisation et pas nécessairement à la représentation finale des données lors du chargement dans un environnement de jeu. On me dit à travers diverses sources que vous voulez finalement utiliser des formats comme collada, etc. et les convertir en un format binaire personnalisé optimisé pour votre jeu. Est-ce absolument nécessaire? Je comprends l'idée, que l'analyse d'un grand XML ou d'un autre format ASCII sera plus lente que la lecture d'un type de fichier binaire, mais est-ce que ce sera vraiment un gros problème de performance si je ne le fais pas? Je ne peux pas le voir,


la source
2
Quel est le problème avec les formats existants? Ils font parfaitement bien pour 99,9% des personnes.
The Communist Duck

Réponses:

5

Ce que je pense que ces gens disent, c'est que vous voulez charger votre fichier COLLADA dans votre structure en jeu. Vous pouvez ensuite enregistrer le contenu de cette structure dans un fichier binaire prêt à être chargé lors de l'exécution.

Cela peut présenter des avantages comme ceux que vous avez mentionnés, mais présente également des inconvénients, généralement lors de la phase de développement.

Si le gain de performances en temps de chargement que vous obtenez est nécessaire pour votre jeu, c'est à vous de décider. Si vous avez quelques modèles non complexes, la différence est probablement négligeable, et c'est à vous de décider quoi faire.

Si, à des fins de développement, vous préférez utiliser COLLADA et analyser le XML au moment du chargement, allez-y! Je vous recommande de vous assurer que votre code de chargement est suffisamment abstrait pour que vous puissiez facilement le remplacer par des fichiers binaires si le chargement devient trop long.

Jonathan Connell
la source
1
Donc, faites simplement ce que je faisais et si je le juge nécessaire, je peux utiliser les SDK de ces formats pour les convertir en un format final pour mon jeu. Merci pour la clarification, il est parfois difficile de séparer les opinions. J'ai lu beaucoup de critiques sur l'utilisation de ces formats (en particulier ascii), les claquant fondamentalement comme quelque chose qui ne serait jamais utilisé dans les jeux "professionnels", mais j'ai vérifié que le logiciel d'identification utilisait des modèles en texte brut depuis 10-15 ans .
Que diriez-vous de décider d'une disposition de sommet puis de stocker ces informations dans un fichier? Une fois que vous avez terminé, vous pouvez déterminer les autres similitudes de vos maillages. Le problème auquel je pense que vous serez confronté au début est le nombre écrasant de légères différences que chacune de vos mailles a dans ses exigences dans le monde du jeu. Cependant, certaines de ces informations peuvent être générées lors du chargement du modèle et peuvent ne pas valoir la peine d'être stockées dans le fichier de «données» du maillage.
Jay