Seperti apa bentuk mesin Frostbite pada tahap awal awal? [Tutup]

15

Saya telah bersenang-senang bermain Battlefield, dan saya terpesona oleh bagaimana semuanya terlihat dan terdengar. Saya hanya ingin tahu seperti apa mesin game itu. Pada titik penulisan kode apakah akhirnya melakukan sesuatu, dan apa yang dilakukannya sebelum mulai memberikan semua tekstur, cahaya dan partikel, dengan sempurna?

Adakah artikel bagus, online, atau contoh yang dilihat orang?

Djave
sumber
1
bukan jawaban langsung, tetapi menonton semua 5 bagian dari video ini dapat memberi Anda wawasan tentang tech youtube.com/watch?v=EN549g0GNgc#t=9m22
Stowelly

Jawaban:

25

Jika Anda berbicara tentang dari sangat awal, dan catatan yang sangat sedikit mesin game besar dikodekan dari awal lagi, dan catatan bahwa ini adalah contoh dan belum tentu bagaimana itu selalu berhasil. . .

Rendering:

Mulailah dengan merender kubus berbayang datar. Tambahkan efek pencahayaan dasar untuk itu. Tambahkan cara untuk memindahkan kamera. Sekarang Anda dapat terbang di sekitar kubus yang membosankan, ditangguhkan dalam kekosongan hitam tak terbatas. Yay.

Selanjutnya, Anda mungkin ingin mengimpor model. Paling tidak, artis Anda dapat menyiapkan model demo (teko sangat tradisional), tetapi mereka mungkin memiliki model permainan aktual yang dapat mereka berikan kepada Anda. Sekali lagi, kami bertahan dengan naungan datar untuk saat ini, sehingga akan terlihat seperti terbuat dari apa. . . baik, tidak ada zat realistis, tetapi semacam persilangan antara plastik matte dan porselen. Ini , tetapi tanpa pencahayaan yang baik. Dan kita masih pada titik di mana itu benar-benar tidak bergerak.

Tiga langkah utama berikutnya dapat dilakukan dalam urutan apa pun.

  • Pertama, Anda akan menginginkan medan. Sebagian besar permainan modern membagi rendering menjadi "geometri statis" dan "aktor", di mana geometri statis mencakup hal-hal yang tidak berubah (dinding, tanah, tiang lampu) dan aktor mencakup hal-hal yang berubah (pemain, kendaraan, tiang lampu yang dapat dirusak). konsep rendering dasar adalah sama untuk keduanya, ada optimasi yang dapat Anda lakukan untuk geometri statis yang tidak dapat Anda lakukan untuk aktor. Anda akan membutuhkan medan agar para insinyur gameplay dapat benar-benar maju, jadi jika mereka menunggu Anda, saatnya untuk menyesuaikan paling tidak rendering medan dasar.

  • Kedua, Anda ingin tekstur. Ini adalah subjek yang sangat besar dan kemungkinan Anda akan mencapai tonggak sejarah, akan melakukan sesuatu yang lebih kritis, kemudian kembali lagi, berulang kali. Lulus pertama Anda mungkin hanya menambahkan tekstur ke model. Lintasan kedua Anda dapat menambah pencahayaan yang lebih baik dan perilaku permukaan. Lulus ketiga Anda dapat menambahkan bayangan (saya bisa mengisi seluruh tanggapan berbicara tentang bayangan). Bergantung pada jenis permainan apa yang Anda lakukan, ini bisa menjadi rumit secara sewenang-wenang. Di suatu tempat di sini Anda juga dapat mengganti seluruh mesin gim Anda dengan rendering yang ditangguhkan.

  • Ketiga, Anda akan menginginkan animasi. Animator Anda (dengan asumsi Anda tidak hidup pada tahun 1995) akan membuat rig animasi untuk model mereka, yang terdiri dari tulang yang berjalan melalui model dan informasi tentang bagaimana tulang bergerak selama animasi tertentu. Anda mungkin akan mulai dengan kemampuan untuk memainkan animasi sesuai permintaan, kemudian menambahkan kemampuan untuk menggabungkan animasi bersama.

Setelah semua itu selesai, saatnya untuk bekerja pada kompatibilitas. Jika Anda bekerja pada game AAA maka Anda memiliki beberapa cara untuk menguji kode Anda pada berbagai jenis perangkat keras - mungkin itu internal, mungkin Anda membuat kontrak dengan perusahaan pengujian, apa pun. Banyak kode Anda akan rusak pada kartu grafis tertentu atau versi driver tertentu, dan Anda bisa memperbaikinya sebanyak mungkin.

Ini juga saatnya untuk mempertimbangkan optimasi. Rendering adalah masalah besar, kecepatan besar, jadi sekarang Anda harus mencari cara untuk mengeksploitasi perangkat keras pada level terdalam agar dapat berjalan secepat mungkin. Jika Anda merasa ini dapat bertentangan dengan "kompatibilitas", Anda benar! Benar-benar melakukannya! Optimalisasi terbaik, Anda akan menemukan, hanya akan gagal pada beberapa kartu. Anda bisa menyeimbangkan semua faktor ini.

Pada titik ini, artis Anda akan menuntut alat tekstur baru atau fitur animasi baru, dan desainer level Anda akan menginginkan teknik render medan baru. Kembali ke "tiga langkah utama berikutnya dapat dilakukan dalam urutan apa pun" dan ulangi sampai permainan selesai.

Gameplay:

Saya akan melewati bagian yang tidak terlalu terlihat secara visual. Pertama, Anda agak harus menunggu sampai rendering medan masuk, meskipun ada banyak hal backend yang dapat Anda lakukan sampai saat itu.

Setelah Anda mendapatkannya, Anda akan mengatur beberapa tabrakan dasar. Ini kemungkinan akan mengambil bentuk terbang ke lokasi dalam game kemudian menekan tombol yang menjatuhkan kubus. Kubus jatuh dan mengenai tanah. Setelah kubus mendarat di tanah secara konsisten, Anda dapat mulai mengatur pergerakan pemain, sehingga Anda dapat berlari di seluruh dunia dengan cara yang sama seperti yang dilakukan pemain.

Setelah fisika gerakan dasar berfungsi, Anda berada di salah satu segmen "ini dapat dilakukan secara bersamaan" lagi:

  • Memerangi perlu diimplementasikan. Anda membutuhkan hal-hal yang dapat menembak hal-hal, dan semua hal itu perlu berperilaku dengan tepat.

  • Fisika perlu diimplementasikan. Anda memiliki tabrakan yang berfungsi, tetapi tabrakan hanyalah sebagian kecil dari fisika. Ketika seseorang merampas sebuah jip dari sebuah tank, semuanya perlu berperilaku kasar sebagaimana dimaksud.

  • Mekanika game perlu diterapkan. Bagaimana Anda tahu kapan Anda menang atau kalah? Seberapa sering hal-hal muncul, dan apa yang mengendalikannya? Jika Komunis menaklukkan titik pemijahan, mengapa ia terus menelurkan kendaraan Anarkis? Hal semacam itu.

Semua ini dapat mengambil, sekali lagi, waktu yang sewenang-wenang, berdasarkan pada berapa banyak hal yang diinginkan oleh desainer Anda. Anda juga akan menghabiskan banyak waktu melacak bug ("hei, lihat apa yang terjadi ketika saya mengendarai tank ke sayap jet tempur ini"). Perhatikan bahwa banyak dari ini akan terjadi dengan dunia yang tidak bertekstur, atau dengan model berlarian di posisi rig karakter , atau dengan tank yang hanya kotak besar dengan kata "TANK" sembari disemprotkan dengan canggung.

UI:

UI sebenarnya dapat memulai sebelum kode rendering utama masuk, karena UI dan rendering dunia game cenderung menggunakan codepath yang sama sekali berbeda. Alih-alih memulai dengan sebuah kubus, Anda akan mulai dengan sebuah kotak, lalu menambahkan tekstur ke kotak, lalu menambahkan teks ke kotak.

Pada titik ini, hidup Anda dihabiskan untuk mencoba mendapatkan cukup waktu untuk menulis widget untuk keperluan umum, sambil tetap menggunakan waktu UI yang cukup sehingga para desainer dan pengembang mekanik game dapat menguji permainan dalam kemiripan realisme yang samar. Pada titik tertentu artis UI Anda akan tampil dengan rasa yang konsisten untuk UI, dan kemudian Anda akan mulai bekerja pada elemen UI yang diselesaikan, sambil menguji elemen-elemen UI pada pemain yang sebenarnya untuk memastikan bahwa mereka dapat dimengerti dan dapat digunakan.

Saya dapat berbicara lebih banyak tentang ini sesuai kebutuhan, tetapi itu akan berubah menjadi megaresponse jika saya melakukannya, jadi untuk sekarang, saya tidak akan :)

ZorbaTHut
sumber
4
Luar biasa .. terima kasih atas waktu dan wawasan yang menarik!
Djave
If the Communists conquer a spawn point, why does it keep spawning Anarchist vehicles?Mengerjakan game tentang Perang Saudara Spanyol?
Peter Taylor
1
Tidak buruk, tetapi posting Anda hanya berlaku untuk game dasar, bukan game AAA. Sekarang suatu hari teknis hanya setengah pertempuran, alat adalah yang lain. Cukup melihat-lihat UDK dan Anda akan melihat berapa banyak fungsi yang berbeda dimasukkan ke dalamnya.
Peter Ølsted
1
Juga, konsep sederhana tekstur dan shader jauh lebih rapuh sekarang hari dengan penggunaan difus, specular, lingkungan & emisi (antara lain). Lihat saja bagaimana bahan dibuat sekarang menjadi beberapa hari. udk.com/elements/img/galleries/features-shaders-hero.jpg
Peter Ølsted
1
Ini adalah respons yang luar biasa.
jcora