Buku ini menggunakan garis waktu pengembangan proyek aktual untuk sepenuhnya memperkenalkan semua modul mesin game, dari konstruksi lingkungan openGL paling dasar hingga animasi kerangka, rendering multi-threaded, implementasi bayangan, dll., Dan akhirnya menyadari mesin permainan yang lengkap.

Bab 1 memperkenalkan kerangka kerja mesin game, dan mengambil Unity sebagai contoh untuk memperkenalkan komposisi mesin game.
Bab 2 memperkenalkan konstruksi lingkungan pengembangan OpenGL dan menciptakan jendela kosong OpenGL untuk masuk ke dalam perangkap.
Bab 3 memperkenalkan menggunakan OpenGL untuk menggambar segitiga, kotak, dan kubus untuk menjadi terbiasa dengan elemen paling dasar dari rendering game.
Bab 4 memperkenalkan konsep shader, tautan kompilasi, serta format shader dan kata kunci.
Bab 5 memperkenalkan format tekstur, membaca langsung rendering PNG dan JPG, dan kemudian memperkenalkan tekstur terkompresi yang digunakan oleh GPU.
Bab 6 memperkenalkan objek indeks dan buffer. Buffer menyimpan data simpul dalam memori video, dan tidak perlu lagi mengunggah setiap bingkai dari memori ke GPU.
Bab 7 memperkenalkan format file mesh yang disesuaikan dan komposisi material. Simpan data Vertex yang awalnya ditulis dalam kode ke dalam file mesh, dan simpan parameter shader yang awalnya ditulis dalam kode ke dalam materi.
Bab 8 memperkenalkan menggunakan Blender untuk membuat model dan menulis kode Python untuk mengekspornya sebagai file mesh.
Bab 9 memperkenalkan cara mengimplementasikan mode komponen GameObject.
Bab 10 memperkenalkan apa itu kamera dan bagaimana membuat beberapa kamera.
Bab 11 memperkenalkan mendapatkan input mouse dan keyboard.
Bab 12 memperkenalkan cara membagi kode demo menjadi kode sumber mesin dan kode sumber proyek.
Bab 13 memperkenalkan penggunaan freetype untuk menghasilkan dan membuat tekstur saluran alfa tunggal untuk karakter tertentu, dan penggunaan warna titik untuk mengimplementasikan teks berwarna.
Bab 14 memperkenalkan implementasi kontrol GUI dasar, termasuk UIImage, Uimask, UITEXT, dan UIBUTTON. Dengan dasar -dasar ini, kontrol kompleks lainnya dapat diimplementasikan.
Bab 15 memperkenalkan menggunakan FMOD untuk memutar musik MP3 dan WAV, dan menggunakan FMOD Professional Audio Editor untuk membuat efek suara dan menganalisis pemutaran.
Bab 16 memperkenalkan Easy_Profiler, Perpustakaan Analisis Kinerja C ++.
Bab 17 memperkenalkan penggunaan Sol2, perpustakaan open source, mengintegrasikan LUA ke dalam mesin, dan kemudian menggunakan mesin pengembangan C ++, dan menggunakan LUA untuk menulis kode uji.
Bab 18 memperkenalkan prinsip -prinsip animasi kerangka, dan memperkenalkan penggunaan blender untuk membuat animasi kerangka, ekspor ke file skeleton_anim, dan menguraikannya di mesin.
Bab 19 memperkenalkan animasi kulit kerangka, menyegarkan bobot dalam blender, mengekspor ke file berat, mem -parsingnya di mesin, dan membuatnya.
Bab 20 memperkenalkan cara mengekspor mesh, animasi kerangka, dan bobot dari file FBX, dan mengekspor gadis -gadis gaya kuno dan menjadikannya dalam contoh.
Bab 21 memperkenalkan rendering multi-threaded, menempatkan OpenGL API pada utas rendering terpisah, mengeluarkan perintah dari utas utama ke utas rendering, dan membagi pengaruh drawcall untuk mengurangi beban pada utas utama.
Bab 22 Pengantar Pembaruan Dari Waktu ke Waktu.
Tujuan menulis buku ini adalah untuk mempopulerkan pengetahuan dasar mesin game, dan kepada pembaca yang memiliki pengalaman persatuan tertentu dan tertarik pada titik -titik tertentu dari mesin.
Poin -poin pengetahuan yang diperkenalkan di setiap bab adalah untuk pemahaman pengantar, dan tidak menggali secara mendalam.
Sederhana untuk memulai, tujuan jangka pendek, dan tidak membosankan.
Setiap artikel ditulis dari perspektif pengantar. Misalnya, saya membandingkan kompilasi Shader dengan tautan, menggunakan kompilasi bahasa C.
| Bahasa C. | Shader | |
|---|---|---|
| Perangkat keras target | CPU | GPU |
| Proses kompilasi | Buat proyek | Buat program GPU |
| Buat dan tulis beberapa file kode C | Buat dan Tulis Shader (Vertex Shader dan Fragment Shader) | |
| Kirim kode C ke kompiler | Kirim kode shader ke kompiler | |
| Mengkompilasi kode C. | Kode Kode Shader | |
| Tambahkan ke Daftar Tautan | Tambahkan ke Daftar Tautan | |
| Link | Link |
Alamat proyek dari bagian ini diposting di awal setiap bagian, dan seret folder ke Clion untuk debug segera. 
Cuplikan kode dimulai dengan file dan jumlah baris di mana kode berada. 
Dari gambar segitiga paling sederhana hingga rendering animasi kerangka, pencahayaan dan bayangan, multi-threading, fisika, AI Pathfinding, dan analisis audio akan diperkenalkan.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
Ini harus menjadi pertama kalinya kami mengajarkan cara memodelkan dan mengedit audio dalam buku mesin.
Saya merekam video untuk pemodelan blender, FMOD, produksi audio Wwise.
Substansi lain, pengembangan plug-in toolbag, analisis RenderDoc DrawCall diperkenalkan secara singkat.
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
Animasi model yang diberikan menggunakan keindahan, pria tampan, dan benda -benda berwarna -warni, yang membuatnya lebih memuaskan.
Setelah memiliki fungsi tertentu, permainan kecil akan dikembangkan berdasarkan fungsi yang ada, sehingga pencapaian bertahap dapat bertahan untuk waktu yang lama.
![]() | ![]() | ![]() |
|---|
Baca Online: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Konstruksi Lokal: https://github.com/ThisisGame/thisisgame-web-openresty
Saat ini diadaptasi dengan Windows dan MacOS.
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 Contoh buku dikembangkan menggunakan Clion, yang mendukung Windows dan Mac, dan lintas platform tidak memerlukan biaya belajar tambahan.
VisualStudio mendukung proyek CMake sejak 2019, sehingga Anda juga dapat menggunakan VisualStudio 2019 dan di atas untuk membuka proyek Clion dengan instance buku di Windows.
Untuk detailnya, silakan merujuk ke 2.3 pengembangan menggunakan VisualStudio
Mesin dikembangkan menggunakan C ++, sesuai dengan spesifikasi Google C ++, dan ketika berkontribusi kode, Anda harus terbiasa dengan gaya kode terlebih dahulu. 
Saat menyumbangkan kode, silakan garpu pertama proyek ini ke nama Anda, lalu ubah kode, dan kirimkan dengan menggabungkan permintaan.
Saat ini diadaptasi dengan Windows dan Mac, Anda dapat mengembangkan di kedua sistem. Sebelum mengirimkan kode, pastikan fungsionalitasnya normal dan konsisten pada kedua sistem.
Anda dapat langsung membukanya secara online untuk dibaca: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
Buku ini adalah open source, Anda dapat membayar proyek ini, kemudian memodifikasi kode, dan kemudian mengirimkan permintaan gabungan.
Semua orang dipersilakan untuk menyebutkan masalah dan umpan balik tentang masalah yang dihadapi. Anda dapat menghubungi saya langsung di intranet. Anda juga dapat bergabung dengan Grup Q (879187705) untuk membahas.
![]() |
|---|
Proyek ini menggunakan Clion IDE dan menggunakan PVS-Studio sebagai alat analisis pemindaian kode, berkat lisensi open source-nya.
![]() | ![]() |
|---|---|
| PVS-Studio | JetBrains |