Bagaimana model 3D dalam game dirancang dan ditampilkan? Apakah ini semua kode? Digambar di atas kertas, lalu pada perangkat lunak grafik 3D, lalu ... apa?
Tentu saja, pemrogram game tidak akan mendefinisikan setiap simpul dari setiap bentuk (/ objek,) yang ingin mereka gambar, semua dalam kode (apakah dalam Direct3D atau OpenGL.) Jadi, apakah para desainer game memiliki alat untuk digunakan, seperti Maya atau sesuatu seperti itu dari perangkat lunak grafik 3D berpemilik di luar sana; mereka "menggambar" model dalam perangkat lunak itu, mengekspornya dalam format apa pun, kemudian programmer mem-parsingnya melalui kode dan secara otomatis memasukkan simpul mentah yang di-decode / di-parsing dari objek / model?
Saya sudah banyak mencari di Google tetapi saya tidak dapat menemukan sesuatu yang solid untuk menjelaskan bagaimana aspek permainan video profesional ini bekerja.
Jawaban:
Di semua game yang saya garap, Asset Creation Pipeline berlangsung seperti ini:
Adalah tugas Desainer Tingkat untuk mengumpulkan aset untuk "membangun" tingkat itu sendiri.
Ini tidak biasa untuk seluruh level dibangun sebagai sepotong geometri. Sebagian besar level dibangun dari potongan, atau bagian. (misalnya: terkenal menggunakan seperangkat "ubin" segi enam http://www.gamasutra.com/php-bin/news_index.php?story=118581 dan skyrim (dan banyak lainnya) menggunakan pendekatan gaya lego untuk mengumpulkan tingkat http. : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )
Biasanya ada editor level dari beberapa deskripsi yang terlibat dalam proses ini, meskipun banyak game telah menggunakan pemodel 3d sebagai "editor level" untuk memasang aset yang sebelumnya dibuat.
Setelah semua ini selesai, aset biasanya diproses oleh Toolchain yang mengubah file ramah Pemodel 3D menjadi data siap pakai game yang dapat dimuat langsung ke Runtime.
Toolchains (bit yang mengambil aset mentah dan mengubahnya menjadi data siap permainan) seringkali merupakan bagian teknik paling rumit dalam pengembangan game. Mereka perlu berbicara dengan banyak aplikasi yang berbeda, memahami banyak format file yang berbeda, dan juga memahami bagaimana mengubah data menjadi format yang lebih efisien dan langsung dapat digunakan. Toolchain biasanya juga melakukan pra-lintasan penerangan, pengelasan verteks, pembuatan LOD dan sebagainya. Seringkali membangun seluruh set data untuk game AAA besar akan memakan waktu yang sangat lama, seringkali lebih dari 8 jam untuk membangun kembali sepenuhnya. Jadi Toolchains biasanya juga berisi pemrosesan terdistribusi untuk menyebarkan beban ke semua PC di seluruh studio.
The Runtime adalah game itu sendiri. Eksekusi yang berjalan pada PC Anda, atau Konsol. Di dalam Runtime akan ada sistem yang disebut Resource Manager. Adalah tugas Manajer Sumber Daya untuk memuat aset yang diminta oleh sistem lain dalam game.
Misalnya: Ketika Anda memberi tahu game memuat ke Level, metadata Level akan memberikan Manajer Sumber Daya daftar yang asetnya harus dimuat untuk menampilkan level. Demikian juga, setiap Aset akan berisi daftar Tekstur, Bahan, atau Sub Aset yang harus dimuat.
Setelah semuanya benar-benar dimuat ke dalam memori. Gim ini akan mengirimkan hal-hal yang terlihat oleh Renderer yang kemudian akan berinteraksi dengan API yang digunakan untuk benar-benar menggambar sesuatu di layar.
Pemrogram dapat (dan melakukan) menghasilkan informasi titik dengan tangan. Ini biasanya disebut "Imendate Mode Rendering". Ini tidak terlalu efisien, dan hanya digunakan untuk situasi di mana tidak mungkin untuk menggunakan data vertex yang dimanipulasi sebelumnya, atau shader. Misalnya: Rendering UI, Quads Layar Penuh.
Biasanya 99% objek pada layar akan menjadi informasi titik awal yang dibuat dalam mode "Retained", Dengan shader melakukan manipulasi apa pun yang diperlukan. Misalnya: Animasi Berkulit
sumber
Berikut ini jawaban sederhana: Mereka melakukan semuanya dalam aplikasi grafik 3D seperti Maya atau 3DS Max. Pertama-tama mereka membuat konsep seni (di atas kertas), menurut mereka mereka membuat model, tekstur (dalam Photoshop atau semacamnya). Animasi sederhana dilakukan seluruhnya dalam perangkat lunak juga, animasi yang lebih kompleks dilakukan melalui Motion Capture dan kemudian dipetakan ke model Anda. Untuk animasi Anda biasanya menggunakan animasi Skeleton.
Semua data ini disimpan dalam file.
Saat gim Anda mulai, ia mem-parsing semua file ini dan memuat model, tekstur, animasi. Dan ketika dibutuhkan, itu akan menampilkannya.
sumber
Pemrogram benar - benar dapat menentukan setiap simpul secara individual jika mereka mau. Ini, tentu saja, tidak pernah terjadi kecuali mereka membuat semacam demo kubus dasar. Biasanya, apa yang disimpan dalam file model adalah sesuatu di sepanjang garis daftar simpul yang mudah diprogram oleh pemrogram dengan mudah ke dalam kode model gambar mereka. Jelas ada lebih dari itu, tetapi pada dasarnya format model memberikan "instruksi" tidak langsung tentang cara menggambar model tertentu.
Dalam banyak kasus, dan untuk banyak format file model, sisi pengkodean telah dilakukan untuk Anda. Bahkan ada beberapa format model berbasis teks, dengan kode gambar yang menyertainya, yang membuatnya cukup mudah bagi seorang pembuat kode amature untuk mengikuti bagaimana model tersebut diterjemahkan ke dalam kode.
Saya belum pernah menjadi orang yang benar-benar menulis kode ini, jadi mungkin saja beberapa detail penjelasan saya tidak aktif.
sumber
Saya telah berusaha sendiri untuk mencoba menyatukan permainan. Saya dapat memberi Anda daftar sederhana dari program yang saya gunakan.
Pemodelan: Mantel 3D, modo
Tali-temali: modo
Tekstur: GIMP, Inkscape
Mesin Game: Unity
Jelas ini adalah daftar kecil aplikasi, tetapi bagi saya mereka bekerja dan terjangkau untuk pengembang hobi dan indie.
sumber