Devons-nous nous soucier des ordres d'octets dans le processus de programmation d'un jeu? Les consoles de jeu utilisent-elles des ordres d'octets différents?
software-engineering
saadtaame
la source
la source
Réponses:
Si vous écrivez du code réseau, c'est souvent quelque chose que vous devez gérer, oui.
Il est également possible que la commande d'octets dans un format de fichier ne soit pas celle utilisée par votre plate-forme, donc parfois cela compte aussi.
la source
Devez-vous vous en soucier? Probablement pas. Une grande majorité de la programmation de jeux va être à un niveau tel que l'endianisme est abstrait. Même en réseau, vous allez presque certainement utiliser une bibliothèque pour les protocoles de réseau. C'est bien que vous en soyez conscient, mais je doute que vous rencontriez un problème avec cela.
la source
La plupart du temps, non.
Endianess est généralement résumé dans les modules de haut niveau d'un moteur de jeu, et vous n'avez pas à vous en soucier quotidiennement. S'il n'est pas abstrait, le moteur a un problème grave et devrait être corrigé, car ce n'est pas le genre de détails dont vous devriez vous soucier lorsque vous créez un jeu.
Cependant, si vous travaillez sur certaines parties de bas niveau d'un moteur multiplateforme C / C ++, vous devrez peut-être y faire face. Les trois consoles de génération actuelle utilisent une architecture PowerPC, qui est big-endian, tandis que l'architecture x86 utilisée sur PC est little-endian. Donc, si vous travaillez sur du code qui lit des octets bruts de quelque part pour les mettre dans des structures de données (sérialisation binaire, mise en réseau ...), oui, vous devrez y faire face.
Par exemple, en C / C ++, il est courant de voir ce type d'échange d'octets en action (non testé, accueillant les corrections):
Encore une fois, c'est OK dans le code de bas niveau, mais cela ne devrait pas être quelque chose utilisé partout.
la source
Cela dépend des plateformes que vous ciblez. Par exemple, je crois que la PS3 est grande endurance, donc si c'est l'un de vos objectifs, c'est quelque chose dont vous devez être conscient, oui.
Dans l'espace informatique domestique, les "Big 3" (Windows, Linux, Mac) sont tous exclusivement ou presque exceptionnellement sur les architectures Intel x86 / x64 de nos jours, donc les problèmes d'endienness ne sont plus d'actualité.
la source