Apakah kita harus khawatir tentang pesanan byte dalam proses pemrograman game? Apakah konsol game menggunakan perintah byte yang berbeda?
Apakah kita harus khawatir tentang pesanan byte dalam proses pemrograman game? Apakah konsol game menggunakan perintah byte yang berbeda?
Jawaban:
Apakah Anda harus mengkhawatirkannya? Mungkin tidak. Sebagian besar pemrograman game akan berada pada tingkat tertentu sehingga endianness disarikan. Bahkan di jaringan, Anda hampir pasti akan menggunakan perpustakaan untuk protokol jaringan. Bagus bahwa Anda menyadarinya, tetapi saya ragu Anda akan mengalami masalah dengannya.
Sebagian besar waktu, tidak.
Endianess biasanya diabstraksi dalam modul tingkat tinggi dari mesin permainan, dan Anda tidak perlu khawatir tentang hal itu setiap hari. Jika tidak diabstraksikan, maka mesin memiliki masalah serius dan harus diperbaiki, karena ini bukan jenis detail yang harus Anda khawatirkan saat membuat game.
Namun jika Anda bekerja pada beberapa bagian tingkat rendah dari mesin multi-platform C / C ++, Anda mungkin harus menghadapinya. Ketiga konsol generasi saat ini menggunakan arsitektur PowerPC, yang merupakan big-endian, sedangkan arsitektur x86 yang digunakan pada PC adalah little-endian. Jadi jika Anda bekerja pada beberapa kode yang membaca byte mentah dari suatu tempat untuk menempatkannya dalam struktur data (serialisasi biner, jaringan ...), ya Anda harus menghadapinya.
Sebagai contoh, di C / C ++, itu biasa untuk melihat byte ini bertukar dalam aksi (tidak diuji, menyambut koreksi):
// Assume bytes comes ordered as big-endian
u16 u16FromBytes(void* data)
{
#if BIG_ENDIAN
return (u16(data[0]) << 8) + u16(data[1]);
#else // LITTLE_ENDIAN
return (u16(data[1]) << 8) + u16(data[0]);
#endif
}
Sekali lagi, ini tidak apa-apa dalam kode tingkat rendah, tetapi ini seharusnya tidak menjadi sesuatu yang digunakan di mana-mana.
Itu tergantung pada platform yang Anda targetkan. Sebagai contoh, saya percaya bahwa PS3 adalah big-endien jadi jika itu salah satu target Anda maka itu adalah sesuatu yang perlu Anda waspadai, ya.
Di ruang komputer di rumah "Big 3" (Windows, Linux, Mac) semuanya eksklusif, atau semuanya kecuali arsitektur Intel x86 / x64 akhir-akhir ini, sehingga kekhawatiran tentang daya tahan tidak lagi relevan.