Müssen wir uns beim Programmieren eines Spiels um die Reihenfolge der Bytes kümmern? Verwenden Spielekonsolen unterschiedliche Bytereihenfolgen?
software-engineering
Saadtaame
quelle
quelle
Antworten:
Wenn Sie Netzwerkcode schreiben, müssen Sie sich häufig damit befassen, ja.
Es ist auch möglich, dass die Bytereihenfolge in einem Dateiformat nicht dem entspricht, was Ihre Plattform verwendet. Daher ist dies manchmal auch von Bedeutung.
quelle
Musst du dir darüber Sorgen machen? Wahrscheinlich nicht. Die überwiegende Mehrheit der Spielprogramme wird auf einer solchen Ebene sein, dass die Endianität abstrahiert wird. Selbst in Netzwerken werden Sie mit ziemlicher Sicherheit eine Bibliothek für Netzwerkprotokolle verwenden. Es ist gut, dass Sie sich dessen bewusst sind, aber ich bezweifle, dass Sie damit auf ein Problem stoßen würden.
quelle
Meistens nein.
Endianess wird normalerweise in den High-Level-Modulen einer Game-Engine entfernt, und Sie müssen sich nicht täglich darum kümmern. Wenn es nicht abstrahiert ist, hat die Engine ein ernstes Problem und sollte behoben werden, da dies nicht die Art von Details sind, über die Sie sich beim Erstellen eines Spiels Gedanken machen sollten.
Wenn Sie jedoch an Teilen einer C / C ++ - Engine mit mehreren Plattformen auf niedriger Ebene arbeiten, müssen Sie sich möglicherweise damit befassen. Alle drei Konsolen der aktuellen Generation verwenden eine PowerPC-Architektur, bei der es sich um Big-Endian handelt, während es sich bei der auf PCs verwendeten x86-Architektur um Little-Endian handelt. Wenn Sie also an Code arbeiten, der unformatierte Bytes liest, um sie in Datenstrukturen einzufügen (binäre Serialisierung, Vernetzung ...), müssen Sie sich damit befassen.
In C / C ++ ist es beispielsweise üblich, diese Art von Byte-Austausch in Aktion zu sehen (nicht getestet, Korrekturen werden begrüßt):
Wieder ist dies in Code auf niedriger Ebene in Ordnung, dies sollte jedoch nicht überall verwendet werden.
quelle
Das hängt von den Plattformen ab, auf die Sie abzielen. Ich glaube zum Beispiel, dass die PS3 ein Big-End ist. Wenn das also eines Ihrer Ziele ist, müssen Sie sich dessen bewusst sein, ja.
Im Bereich der Heimcomputer sind die "Big 3" (Windows, Linux, Mac) heutzutage ausschließlich oder fast ausschließlich auf Intel x86 / x64-Architekturen installiert, sodass Endienheitsbedenken keine Rolle mehr spielen.
quelle