Saat ini saya sedang menulis mesin game 2D berbasis lintas platform kecil OpenGL untuk studio kami. Ketika saya meneliti kelas vektor 2D mana yang akan digunakan, saya menemukan tiga paradigma desain yang berbeda:
Float & Call-by-value, seperti dalam artikel Gamasutra ini . Tampaknya cepat tetapi menawarkan sedikit presisi (lihat juga Thread ini ). Pro: Cepat, portabel, dan kompatibel dengan sebagian besar perpustakaan.
Referensi ganda & Panggil-oleh-. Jika saya memahami artikel di atas dengan benar, saya juga bisa menggunakan 2 variabel presisi ganda daripada 4 angka float. Menurut utas di atas, dobel masih lebih lambat daripada mengambang.
Templat untuk dobel dan mengapung: Buku yang sangat populer " Arsitektur Mesin Game " menggunakan templat untuk memungkinkan untuk menggunakan float dan dobel sesuai kebutuhan. Kelemahan yang jelas adalah kode mengasapi. Juga, saya ragu bahwa kode dapat dioptimalkan tanpa pada dasarnya menulis dua kelas.
Saya akan sangat menghargai untuk mengetahui solusi apa yang Anda gunakan di mesin in-house Anda dan seberapa tepat misalnya mesin game yang populer, sehingga saya dapat memutuskan solusi apa yang akan saya terapkan di mesin kami. Saat ini saya sedang berpikir tentang hanya menggunakan presisi float dan hidup dengannya.