Нужно ли беспокоиться о порядке следования байтов в процессе программирования игры? Игровые приставки используют разные порядки байтов?
software-engineering
saadtaame
источник
источник
Ответы:
Если вы пишете сетевой код, вам часто приходится иметь дело с этим, да.
Также возможно, что порядок следования байтов в формате файла - это не то, что использует ваша платформа, поэтому иногда это тоже имеет значение.
источник
Вы должны беспокоиться об этом? Скорее всего нет. Подавляющее большинство игрового программирования будет находиться на таком уровне, что отстраненность от абстракции исчезнет. Даже в сети вы почти наверняка будете использовать библиотеку для сетевых протоколов. Хорошо, что вы знаете об этом, но я сомневаюсь, что у вас возникнут проблемы с этим.
источник
Большую часть времени нет.
Endianess обычно абстрагируется в модулях высокого уровня игрового движка, и вам не нужно беспокоиться об этом ежедневно. Если это не абстракция, то движок имеет серьезную проблему и должен быть исправлен, потому что это не та деталь, о которой вам следует беспокоиться при создании игры.
Однако, если вы работаете над некоторыми низкоуровневыми частями многоплатформенного движка C / C ++, вам, возможно, придется иметь с этим дело. Все три консоли текущего поколения используют архитектуру PowerPC с прямым порядком байтов, тогда как архитектура x86, используемая на ПК, имеет младший порядок. Так что если вы работаете над кодом, который читает сырые байты откуда-то, чтобы поместить их в структуры данных (двоичная сериализация, работа в сети ...), да, вам придется иметь дело с этим.
Например, в C / C ++ часто встречается такая замена байтов в действии (не проверено, приветствуются исправления):
Еще раз, это нормально в низкоуровневом коде, но это не должно использоваться везде.
источник
Это зависит от платформ, на которые вы ориентируетесь. Например, я полагаю, что PS3 - «бестолковая», поэтому, если это одна из ваших целей, это то, о чем вам нужно знать, да.
В области домашнего компьютера «большая тройка» (Windows, Linux, Mac) в настоящее время полностью или почти исключительно принадлежит архитектуре Intel x86 / x64, поэтому проблемы с конечностью больше не актуальны.
источник