หนังสือเล่มนี้ใช้ไทม์ไลน์การพัฒนาโครงการที่แท้จริงเพื่อแนะนำโมดูลทั้งหมดของเอ็นจิ้นเกมตั้งแต่การก่อสร้างสภาพแวดล้อม OpenGL ขั้นพื้นฐานที่สุดไปจนถึงภาพเคลื่อนไหวโครงกระดูกการแสดงผลแบบหลายเธรดการใช้งานเงา ฯลฯ และในที่สุดก็ตระหนักถึงเครื่องมือเกมที่สมบูรณ์

บทที่ 1 แนะนำเฟรมเวิร์กเกมของเกมและใช้ความสามัคคีเป็นตัวอย่างในการแนะนำองค์ประกอบของเอ็นจิ้นเกม
บทที่ 2 แนะนำการสร้างสภาพแวดล้อมการพัฒนา OpenGL และสร้างหน้าต่างว่างเปล่า OpenGL เพื่อเข้าไปในกับดัก
บทที่ 3 แนะนำการใช้ OpenGL เพื่อวาดรูปสามเหลี่ยมสี่เหลี่ยมและก้อนเพื่อทำความคุ้นเคยกับองค์ประกอบพื้นฐานที่สุดของการแสดงเกม
บทที่ 4 แนะนำแนวคิดของ Shader, Compile Links รวมถึงรูปแบบ shader และคำหลัก
บทที่ 5 แนะนำรูปแบบพื้นผิวอ่านการแสดงผล PNG และ JPG โดยตรงจากนั้นแนะนำพื้นผิวที่บีบอัดที่ใช้โดย GPU
บทที่ 6 แนะนำดัชนีและวัตถุบัฟเฟอร์ บัฟเฟอร์เก็บข้อมูลจุดสุดยอดในหน่วยความจำวิดีโอและไม่จำเป็นต้องอัปโหลดทุกเฟรมจากหน่วยความจำไปยัง GPU อีกต่อไป
บทที่ 7 แนะนำรูปแบบไฟล์ตาข่ายที่กำหนดเองและองค์ประกอบวัสดุ จัดเก็บข้อมูลจุดสุดยอดที่เขียนไว้ในรหัสลงในไฟล์ตาข่ายและจัดเก็บพารามิเตอร์ shader ที่เขียนไว้ในรหัสลงในวัสดุ
บทที่ 8 แนะนำการใช้เครื่องปั่นเพื่อสร้างโมเดลและเขียนรหัส Python เพื่อส่งออกเป็นไฟล์ตาข่าย
บทที่ 9 แนะนำวิธีการใช้โหมด GameObject-Component
บทที่ 10 แนะนำว่ากล้องคืออะไรและจะแสดงกล้องหลายตัวได้อย่างไร
บทที่ 11 แนะนำการรับเมาส์และแป้นพิมพ์อินพุต
บทที่ 12 แนะนำวิธีแยกรหัสสาธิตออกเป็นซอร์สโค้ดเครื่องยนต์และซอร์สโค้ดโครงการ
บทที่ 13 แนะนำการใช้ Freetype เพื่อสร้างและแสดงพื้นผิวของช่องอัลฟ่าเดี่ยวสำหรับอักขระที่ระบุและการใช้สีจุดสุดยอดเพื่อใช้ข้อความสี
บทที่ 14 แนะนำการใช้งานการควบคุม GUI ขั้นพื้นฐานรวมถึง UIIMage, UIMASK, UITEXT และ UIBUTONTON ด้วยพื้นฐานเหล่านี้สามารถใช้การควบคุมที่ซับซ้อนอื่น ๆ ได้
บทที่ 15 แนะนำการใช้ FMOD เพื่อเล่นเพลง MP3 และ WAV และการใช้โปรแกรมแก้ไขเสียงมืออาชีพ FMOD เพื่อสร้างเอฟเฟกต์เสียงและวิเคราะห์การเล่น
บทที่ 16 แนะนำ Easy_profiler, ห้องสมุดการวิเคราะห์ประสิทธิภาพ C ++
บทที่ 17 แนะนำการใช้ SOL2, ห้องสมุดโอเพนซอร์สรวม LUA เข้ากับเครื่องยนต์และต่อมาใช้เครื่องมือพัฒนา C ++ และใช้ LUA เพื่อเขียนรหัสทดสอบ
บทที่ 18 แนะนำหลักการของอนิเมชั่นโครงกระดูกและแนะนำการใช้เครื่องปั่นเพื่อสร้างภาพเคลื่อนไหวโครงกระดูกส่งออกไปยังไฟล์ Skeleton_anim และแยกวิเคราะห์ในเครื่องยนต์
บทที่ 19 แนะนำภาพเคลื่อนไหวผิวหนังโครงกระดูกรีเฟรชน้ำหนักในเครื่องปั่นส่งออกไปยังไฟล์น้ำหนักวิเคราะห์ในเครื่องยนต์และแสดงผล
บทที่ 20 แนะนำวิธีการส่งออกตาข่ายภาพเคลื่อนไหวโครงกระดูกและน้ำหนักจากไฟล์ FBX และส่งออกสาวสไตล์โบราณและแสดงผลในตัวอย่าง
บทที่ 21 แนะนำการเรนเดอร์แบบมัลติเธรดวาง OpenGL API ลงในเธรดการเรนเดอร์แยกต่างหากออกคำสั่งจากหัวข้อหลักไปยังเธรดการเรนเดอร์และแบ่งอิทธิพลของการดึงเพื่อลดภาระในหัวข้อหลัก
บทที่ 22 บทนำเกี่ยวกับการอัปเดตเป็นครั้งคราว
จุดประสงค์ในการเขียนหนังสือเล่มนี้คือการทำให้ความรู้พื้นฐานของเครื่องยนต์เกมเป็นที่นิยมและสำหรับผู้อ่านที่มีประสบการณ์ความสามัคคีและสนใจในบางจุดของเครื่องยนต์
จุดความรู้ที่แนะนำในแต่ละบทมีไว้สำหรับความเข้าใจเบื้องต้นและไม่ได้ขุดในเชิงลึก
ง่ายต่อการเริ่มต้นเป้าหมายระยะสั้นและไม่น่าเบื่อ
แต่ละบทความเขียนจากมุมมองเบื้องต้น ตัวอย่างเช่นฉันเปรียบเทียบการรวบรวมของ Shader กับลิงก์โดยใช้การรวบรวมภาษา C
| ภาษา C | คนขี้เกียจ | |
|---|---|---|
| เป้าหมายฮาร์ดแวร์ | ซีพียู | GPU |
| กระบวนการรวบรวม | สร้างโครงการ | สร้างโปรแกรม GPU |
| สร้างและเขียนไฟล์รหัส C หลายไฟล์ | สร้างและเขียน Shader (จุดสุดยอด Shader และ Fragment Shader) | |
| ส่งรหัส C ไปยังคอมไพเลอร์ | ส่งรหัส Shader ไปยังคอมไพเลอร์ | |
| รวบรวมรหัส C | รวบรวมรหัส Shader | |
| เพิ่มไปยังรายการลิงค์ | เพิ่มไปยังรายการลิงค์ | |
| การเชื่อมโยง | การเชื่อมโยง |
ที่อยู่โครงการของส่วนนี้จะโพสต์ที่จุดเริ่มต้นของแต่ละส่วนและลากโฟลเดอร์ไปยัง Clion เพื่อแก้ไขข้อบกพร่องทันที 
ตัวอย่างโค้ดเริ่มต้นด้วยไฟล์และจำนวนบรรทัดที่รหัสอยู่ 
จากการวาดรูปสามเหลี่ยมที่ง่ายที่สุดไปจนถึงการแสดงภาพแอนิเมชั่นโครงกระดูกการให้แสงสว่างและเงาการทำมัลติเธรดฟิสิกส์การค้นหา AI และการวิเคราะห์เสียงจะได้รับการแนะนำ
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
นี่ควรเป็นครั้งแรกที่เราสอนวิธีการจำลองและการแก้ไขเสียงในสมุดเครื่องยนต์
ฉันบันทึกวิดีโอสำหรับการสร้างแบบจำลองเครื่องปั่น, FMOD, การผลิตเสียงแบบ wwise
สารอื่น ๆ การพัฒนาปลั๊กอินถุงเครื่องมือการวิเคราะห์ RenderDoc DrawCall จะถูกนำมาใช้สั้น ๆ
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
แอนิเมชั่นโมเดลที่แสดงผลใช้ความงามชายหล่อและวัตถุที่มีสีสันซึ่งทำให้การตอบสนองมากขึ้น
หลังจากมีฟังก์ชั่นบางอย่างเกมขนาดเล็กจะได้รับการพัฒนาตามฟังก์ชั่นที่มีอยู่เพื่อให้ความสำเร็จที่เป็นระยะสามารถคงอยู่ได้เป็นเวลานาน
![]() | ![]() | ![]() |
|---|
อ่านออนไลน์: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
การก่อสร้างในท้องถิ่น: https://github.com/ThisisGame/thisisgame-web-openresty
ปัจจุบันปรับให้เข้ากับ Windows และ MacOS
- 由于Arm版Mac只支持OpenGL Core,所以《6.3 OpenGL Core Profile》之前的章节实例无法在Arm版Mac运行。 อินสแตนซ์หนังสือได้รับการพัฒนาโดยใช้ Clion ซึ่งรองรับ Windows และ Mac และ Cross-Platform ไม่ต้องการค่าใช้จ่ายในการเรียนรู้เพิ่มเติม
VisualStudio รองรับโครงการ CMAKE ตั้งแต่ปี 2562 ดังนั้นคุณสามารถใช้ VisualStudio 2019 และสูงกว่าเพื่อเปิดโครงการ Clion ด้วยอินสแตนซ์หนังสือบน Windows
สำหรับรายละเอียดโปรดดู 2.3 การพัฒนาโดยใช้ VisualStudio
เครื่องยนต์ได้รับการพัฒนาโดยใช้ C ++ สอดคล้องกับข้อมูลจำเพาะของ Google C ++ และเมื่อมีการสนับสนุนรหัสคุณต้องคุ้นเคยกับรูปแบบรหัสก่อน 
เมื่อมีส่วนร่วมในรหัสโปรดแยกโครงการนี้ไปยังชื่อของคุณจากนั้นแก้ไขรหัสและส่งโดยรวมการร้องขอ
ขณะนี้ปรับให้เข้ากับ Windows และ Mac คุณสามารถพัฒนาทั้งสองระบบได้ ก่อนที่จะส่งรหัสตรวจสอบให้แน่ใจว่าฟังก์ชันการทำงานเป็นเรื่องปกติและสอดคล้องกับทั้งสองระบบ
คุณสามารถเปิดออนไลน์ได้โดยตรงเพื่ออ่าน: http://www.thisisgame.com.cn/tutorial?book=cpp-game-engine-book&lang=zh&md=Introduction.md
หนังสือเล่มนี้เป็นโอเพ่นซอร์สคุณสามารถแยกโครงการนี้จากนั้นแก้ไขรหัสแล้วส่งคำขอผสาน
ทุกคนยินดีที่จะพูดถึงปัญหาและข้อเสนอแนะเกี่ยวกับปัญหาใด ๆ ที่พบ คุณสามารถติดต่อฉันได้โดยตรงบนอินทราเน็ต นอกจากนี้คุณยังสามารถเข้าร่วมกลุ่ม Q (879187705) เพื่อพูดคุย
![]() |
|---|
โครงการใช้ Clion IDE และใช้ PVS-Studio เป็นเครื่องมือวิเคราะห์การสแกนรหัสด้วยใบอนุญาตโอเพ่นซอร์ส
![]() | ![]() |
|---|---|
| PVS-Studio | เจ็ทครีนส์ |