
Saya sudah lama ingin membuat daftar keterampilan dan alat yang, menurut pendapat saya, harus dimasukkan dalam "set pria" dari setiap programmer di bawah
Unreal Engine 4 . Beberapa hari yang lalu, dalam
obrolan UE4, saya melihat ini:
> cetak biru, pengembang animasi, seni teknologi, ai, multipemain, ekstensi editor. hal pertama yang terlintas dalam pikiran
> Apa yang terlintas dalam pikiran: cetak biru, animasi, AI, editor materi, widget, slate, ekstensi editor, plugin ue4, fisika, pencahayaan, render, c ++
+ Berapa banyak waktu bekerja dengan mesin dan negara, itu saja :)
Dalam formulasi seperti itu, semua yang dikatakan hanyalah kumpulan kata-kata. Oleh karena itu, saya berkumpul dan menyusun
kuesioner untuk mereka yang ingin menjadi programmer UE4, dan yang dapat mengevaluasi level mereka kepada mereka yang sudah menganggap diri mereka sebagai programmer canggih untuk UE4.
Jangan gunakan kata-kata umum
Semua istilah yang tercantum dalam kutipan adalah keseluruhan kompleks keterampilan, prinsip, dan teknologi. Mengekspresikan mereka dalam satu kata, Anda sama sekali tidak menyampaikan apa yang sebenarnya perlu diterapkan dan seberapa "dalam" itu perlu dipelajari.
Saya akan pergi melalui kategori utama, mengajukan pertanyaan yang Anda harus tahu jawaban untuk mengatakan: "Saya mengerti ini."
Dasar-dasar arsitektur mesin
- Apa perbedaan antara kelas
UObject
dan AActor
? Apa perbedaan mendasarnya ? Apakah mungkin untuk membuat UObject
melakukan fungsi yang sama? Mengapa AGameState
dan APlayerState
? Pertanyaan serupa tentang AGameMode
dan AHUD
. - Apa perbedaan
UGameInstance
dari UGameInstance
? Untuk apa mereka berdua digunakan? Mengapa APlayerController
diperlukan dan mengapa itu adalah sebuah ector? - Untuk apa
UPROPERTY
digunakan? Bisakah saya menggantinya dengan SharedRef ? Bagaimana mengatasi Ketergantungan Sirkular dalam vektor (orang tua memiliki pointer ke anak, anak ke orang tua)? Kapan UObject
akan dihapus? Bagaimana cara melindungi suatu entitas dari penghapusan oleh Pengumpul Sampah ? Bagaimana cara menghapus aktor ? - Apa itu CDO ? Bagaimana saya bisa memutus rantai kelas Reference'ov satu sama lain, dan mengapa?
- Bagaimana urutan inisialisasi entitas utama mesin (setidaknya di tingkat controller / pavna / state)? Bagaimana urutan bibit AActor?
- Komponen dalam komponen - baik atau buruk?
- Apa itu
WorldContextObject
? Apakah mungkin untuk membawanya ke UObject
, dan jika demikian, dari mana? - Apa perbedaan mendasar antara Slate dan UMG ?
Cetak Biru
- Apa perbedaan makro dari fungsi?
- Menggunakan apa sebenarnya yang mengarah pada pembentukan Referenc antar kelas? Aset? Bagaimana cara menghindarinya?
- Apa itu nativization tumpul dan apa gunanya? Apa kerugian dari asliisasi yang disertakan?
Jaringan
- Di mana menyimpan data permainan pengguna (mis. Inventaris atau poin) selama sesi permainan? Apakah
APlayerController
tepat? - Bagaimana
PlayerState
direplikasi ke klien? Apa siklus hidup PlayerController
dan PlayerState
saat menghubungkan kembali pemain? - Bagaimana membedakan replikasi data berdasarkan peran? Apa peran jaringan ? Oleh siapa dan dengan aturan apa mereka ditunjuk?
- Di kelas apa saya dapat memanggil
RPC
dan mengapa? Apakah mungkin untuk memperluas fitur ini ke kelas / entitas lain? Berapa overhead panggilan RPC? - Bagaimana komponen ector direplikasi? Bagaimana memahami bahwa ector direplikasi "seluruhnya"? Apa yang terjadi jika Anda ingin mereplikasi, katakanlah, 3 MB data dalam sebuah ector: bagaimana perilaku ector ini? game secara umum?
- Bagaimana array direplikasi? Dan bagaimana properti terlampir direplikasi (bidang yang direplikasi adalah struktur)?
- Apa batasan jaringan yang ada? ( Angka! ) Bagaimana cara membuat profil beban di jaringan? Metode optimasi jaringan apa yang digunakan? Untuk apa
ForceNetUpdate
?
Fisika dan algoritma dasar
- Bagaimana cara kerja redaman? Apa itu subteping ? Untuk apa ini digunakan? Bagaimana cara fisika disinkronkan melalui jaringan?
- Apa angka empat dan masalah apa yang dipecahkan oleh aplikasi mereka ?
- Apa itu saluran fitur dan jejak? Apakah mungkin untuk mengkonfigurasi perilaku yang berbeda dalam aset fisika yang sama? Jika tidak, lalu mengapa, dan bagaimana menyiasatinya?
- Seberapa mahal penelusuran? Apa itu tergantung?
Streaming
- Apa utas utama di UE4? Tugas mana yang dilakukan secara paralel dan mana yang tidak? Bagaimana pengaturan kelompok centang?
- Tindakan apa yang dapat dilakukan dalam aliran paralelnya sendiri? (Atau tindakan apa yang pasti tidak dapat dilakukan?) Bagaimana cara menyinkronkan hasil dengan utas utama?
Kode
Saya tidak menyentuh banyak aspek bekerja dengan UE4, tetapi menyarankan pertanyaan tentang topik utama yang, menurut pendapat saya, adalah
dasar ketika bekerja dengan mesin .
Adalah normal bagi seorang junior untuk tidak tahu banyak tentang mesin, tetapi untuk memiliki kepala yang cerah dan memahami beberapa hal. Setidaknya programmer "rata-rata" hanya berkewajiban untuk mengetahui jawaban (atau setidaknya memiliki pendapatnya sendiri) untuk pertanyaan dari blok tentang arsitektur. Terutama pada topik yang
dijelaskan pada halaman pertama dokumentasi tentang Kerangka Gameplay .
Jika komunitas memiliki minat, kuesioner serupa dapat dikompilasi pada animasi, debugging, shader dan bahan, pencahayaan, pengemasan proyek, membuat AI, bekerja dengan Pawn'ami dan lainnya. Tulis :) Saya selalu hanya
untuk diskusi aktif.