Apakah saya benar-benar harus menulis format model saya sendiri yang dioptimalkan?

8

Jadi saya adalah noob baru untuk dunia game dev dan saya memulai dengan mencoba menulis game saya sendiri menggunakan C ++ dan openGL. Saya masuk ke pemuatan model dll dan sambil mencari-cari "format terbaik" Saya menemukan bahwa sebagian besar format umum dimaksudkan untuk porting antara aplikasi pemodelan dan tidak harus untuk representasi akhir data saat memuat ke dalam lingkungan permainan. Saya diberitahu melalui berbagai sumber yang pada akhirnya Anda ingin menggunakan format seperti collada dll dan mengonversinya menjadi format biner khusus yang dioptimalkan untuk gim Anda. Apakah ini mutlak diperlukan? Saya mengerti idenya, bahwa mem-parsing XML besar atau format ASCII lainnya akan lebih lambat daripada membaca jenis file biner tetapi apakah itu benar-benar akan menjadi besar yang menjadi hit kinerja jika saya tidak? Saya tidak bisa melihatnya,


sumber
2
Apa yang salah dengan format yang ada? Mereka baik-baik saja untuk 99,9% orang.
Bebek Komunis

Jawaban:

5

Apa yang saya percaya orang-orang katakan adalah bahwa Anda ingin memuat file COLLADA Anda ke dalam struktur dalam gim Anda. Anda kemudian dapat menyimpan konten struktur ini ke file biner yang siap untuk memuat saat runtime.

Ini dapat memiliki kelebihan seperti yang Anda katakan, tetapi juga memiliki kelemahan, biasanya selama tahap pengembangan.

Apakah peningkatan kinerja waktu beban yang Anda peroleh penting untuk permainan Anda, apakah Anda yang memutuskan. Jika Anda memiliki beberapa model yang tidak rumit, perbedaannya mungkin dapat diabaikan, dan tergantung pada Anda untuk memutuskan apa yang harus dilakukan.

Jika untuk tujuan pengembangan Anda lebih suka menggunakan COLLADA dan mem-parsing XML pada waktu buka kemudian pergi dengan itu! Saya akan merekomendasikan Anda memastikan bahwa kode memuat Anda cukup abstrak sehingga Anda dapat dengan mudah menggantinya dengan file biner jika memuatnya terlalu lama.

Jonathan Connell
sumber
1
Jadi pada dasarnya lakukan saja apa yang saya lakukan dan jika saya merasa perlu saya dapat menggunakan SDK untuk format ini untuk mengubahnya menjadi format final untuk permainan saya. Terima kasih atas klarifikasi, terkadang sulit untuk memisahkan pendapat. Saya telah membaca banyak kritik menggunakan format ini (terutama ascii) pada dasarnya membantingnya sebagai sesuatu yang tidak akan pernah digunakan dalam permainan "profesional" tetapi terakhir saya memeriksa perangkat lunak ID telah menggunakan model teks biasa selama 10-15 tahun terakhir .
Bagaimana dengan memutuskan tata letak simpul dan kemudian menyimpan informasi ini dalam file? Setelah Anda berhasil, Anda dapat mengetahui persamaan lain yang dimiliki mesh Anda. Masalah yang saya pikir akan Anda hadapi pada awalnya adalah banyaknya perbedaan kecil yang dimiliki masing-masing jerat Anda dalam persyaratannya di dunia game. Namun beberapa informasi ini dapat dihasilkan pada model load dan mungkin tidak layak disimpan dalam file 'data' mesh.
Jay