Saya telah bergumul dengan keputusan tentang apakah akan menerapkan grafik adegan dalam permainan saya atau tidak. Saya memiliki beberapa kasus penggunaan yang memerlukan alat seperti itu, tetapi saya belum dapat melewati beberapa detail implementasi.
Beberapa latar belakang: Saya sedang menulis game jenis penembak ruang yang ditargetkan pada platform seluler (Android, terutama) dan kode saya hampir seluruhnya C ++. Saya tidak menggunakan middleware apa pun; mesin rendering dan fisika khususnya adalah kreasi saya sendiri. Mesin fisika saya memperbarui lokasi objek berdasarkan kekuatan dan impuls. Saya belum memiliki sistem animasi tetapi dapat mengunjungi ini di beberapa titik (yang mungkin atau mungkin tidak ada hubungannya dengan diskusi ini).
Pertama, saya akan menjelaskan kasus penggunaan yang baik. Saya ingin memiliki bos yang terdiri dari beberapa bagian terpisah, yang masing-masing dapat rusak / dihancurkan secara mandiri. Sebagai contoh, saya mungkin memiliki bos yang memiliki lengan yang dapat menerima kerusakan secara independen dari entitas bos lainnya. Ketika lengan dihancurkan, efek partikel api yang terletak di bahu bos bisa menunjukkan bahwa lengan itu sekarang hancur.
Karena itu, saya telah memutuskan untuk mencoba memecahkan masalah seperti itu dengan kendala pada mesin fisika saya untuk menyatukan benda-benda majemuk tersebut. Salah satu kendala tersebut memberikan 0 derajat kebebasan dan pada dasarnya adalah matriks transformasi. Ini benar-benar upaya untuk menghindari masalah yang pada akhirnya membuat saya mematikan grafik adegan, yang dijelaskan di bawah ini.
Alasan utama saya berpaling dari penggunaan grafik adegan adalah karena saya tidak bisa menemukan cara yang efisien untuk menjaga objek bersarang (objek yang mewarisi transformasi dari orang tua mereka) di dunia fisika dan adegan rendering. Dunia fisika membutuhkan objek untuk berada di ruang-dunia (atau setidaknya ruang yang sama) sedangkan adegan rendering membutuhkan objek di ruang-induk. Melacak lokasi di kedua ruang mungkin membantu (dan tidak terhindarkan) tetapi menimbulkan kekhawatirannya sendiri, tidak sedikit yang terkait dengan kinerja.
Namun, mengingat kasus penggunaan seperti yang dijelaskan di atas, saya pikir bisa 'bekerja' di ruang induk akan menjadi sangat penting, dan mencoba untuk memaksa mesin fisika saya untuk mempertahankan hubungan ini melalui penggunaan kendala akan menjadi masalah.
Mengingat use case dan kesulitan yang dijelaskan di atas, haruskah saya menggunakan struktur grafik untuk meneruskan transformasi dari satu objek ke objek lainnya? Jika demikian, bagaimana seharusnya mesin fisika saya menghitung lokasi baru dan melakukan tes persimpangan untuk objek di ruang yang berbeda?