
เอ็นจิ้นนี้ทำขึ้นเป็นส่วนหนึ่งของซีรีส์เอ็นจิ้นเกม Kohi บน YouTube (ตอนนี้ถ่ายทอดสดบน Twitch) ซึ่งเราสร้างเครื่องยนต์เกมจากพื้นดินโดยใช้ C และ Vulkan
ชื่อ Kohi (コーヒー, ออกเสียงว่า "Koh-hee") เป็นการทำให้เข้าใจง่ายของคำญี่ปุ่นสำหรับ "กาแฟ" ซึ่งทำให้รู้สึกว่าฉันรักสิ่งของมากแค่ไหน
ซีรี่ส์ YouTube ดั้งเดิมตั้งอยู่ที่นี่: https://www.youtube.com/watch?v=DHPUU-DJOBM&LIST=PLV8DDW9K0JPG1BEO-RS-0MYS423CVLVTJ
สตรีม Twitch เกิดขึ้นที่นี่: https://twitch.tv/travisvroman






Kohi เป็นเครื่องยนต์ 3 มิติตั้งแต่เริ่มต้นโดยส่วนใหญ่สร้างขึ้นตั้งแต่เริ่มต้น จะมีคำอธิบายและการสำรวจมากมายระหว่างทาง ซีรีส์เริ่มต้นจากการสอนมากขึ้นเพื่อให้ลุกขึ้นและทำงานพร้อมกับคำอธิบายกลายเป็นระดับที่สูงขึ้นเมื่อสิ่งต่าง ๆ คืบหน้าเพื่อให้การเว้นวรรค ในที่สุดเราก็เปลี่ยนไปใช้การสตรีมสดบน Twitch โดยมีการเข้ารหัสส่วนใหญ่ทำบนสตรีมด้วยงานออฟไลน์บางอย่างที่น่าสนใจน้อยกว่าที่ทำแบบออฟไลน์
Windows, Linux และ MacOS ทั้งหมดได้รับการสนับสนุนอย่างเป็นทางการ การสนับสนุน Runtime Android และ iOS อาจถูกเพิ่มลงบนถนน
ในขณะที่มีความพยายามสูงสุดเพื่อลดการพึ่งพาแต่ละแพลตฟอร์มมีสิ่งที่ ต้อง ติดตั้งเพื่อให้สิ่งนี้ทำงานได้
ติดตั้งเหล่านี้ผ่านแพ็คเกจ Manager:
gitmakelibx11-devlibxkbcommon-x11-devlibx11-xcb-devติดตั้งเหล่านี้ผ่าน Homebrew หรือผู้จัดการแพ็คเกจอื่น ๆ :
gitmakeคุณจะต้องติดตั้ง Clang 13+ และ Vulkan SDK ที่ติดตั้ง:
ปลั๊กอินเสียงต้องมีการติดตั้งโอเพนัล
sudo apt install openal สำหรับ Ubuntu หรือ sudo pacman -S openal บน Arch)brew install openal-soft หมายเหตุเกี่ยวกับ M1 Macs นี้ติดตั้ง /opt/homebrew/opt/openal-soft/ โดยที่ include lib และ 'bin directories สามารถพบได้ บัญชีสคริปต์ build-all.sh สำหรับการติดตั้งเวอร์ชันนี้ ในการเริ่มต้นใช้ข้อกำหนดเบื้องต้นทั้งหมดสำหรับแพลตฟอร์มปัจจุบันของคุณ (ดูด้านบน) หลังจากนี้โคลนที่เก็บ: git clone https://github.com/travisvroman/kohi
โปรดทราบว่าคุณมีอิสระที่จะใช้คอมไพเลอร์อื่น ๆ (เช่น GCC) แต่พวกเขาไม่ได้รับการสนับสนุนอย่างเป็นทางการในเวลานี้ (แม้ว่าจะไม่ควรทำงานมากนักเพื่อให้พวกเขาตั้งค่า)
ดูวิดีโอการตั้งค่าในซีรีส์สำหรับ Windows หรือ Linux สำหรับรายละเอียด การตั้งค่า MacOS เกิดขึ้นอย่างมากในซีรีส์ที่ Video 76 เมื่อมีการเพิ่มการสนับสนุนอย่างเป็นทางการสำหรับแพลตฟอร์มนั้น
มีการสร้าง 2 ประเภทมีการดีบักและการเปิดตัว Debug รวมถึงสัญลักษณ์การดีบักและเหมาะสมที่สุดสำหรับการพัฒนาและการสำรวจในขณะที่การเปิดตัวเหมาะสำหรับประสิทธิภาพ นอกจากนี้ยังมี "ทำความสะอาด" เพื่อทำความสะอาดไฟล์ที่สร้างขึ้นซึ่งมีประโยชน์เมื่อสลับระหว่างการดีบัก/รีลีสหรือเมื่อเกิดข้อผิดพลาดการเชื่อมโยงแปลก ๆ เกิดขึ้นเนื่องจากไฟล์ที่หายไป (เช่นการสลับสาขา)
เปิดอินสแตนซ์ของคำสั่งหรือ PowerShell และเรียกใช้ไฟล์ build-debug.bat สำหรับบิลด์ดีบั๊กหรือ build-release.bat สำหรับการสร้างรุ่น นอกจากนี้ยังมี Bat clean.bat
เปิดเทอร์มินัลและเรียกใช้ไฟล์ build-debug.sh สำหรับบิลด์ดีบั๊กหรือ build-release.sh สำหรับการสร้างรุ่น นอกจากนี้ยังมี clean.sh
ในขณะนี้ "testbed" เป็นปฏิบัติการที่ใช้ Kohi มันควรจะทำงานด้วยไดเรกทอรีการทำงานของ /bin ในคำสั่งพร้อมท์/PowerShell ใน Windows หรือเทอร์มินัลใน Linux/MacOS, cd bin เพื่อเข้าสู่โฟลเดอร์ Bin จากนั้นเรียกใช้ testbed.exe บน Windows หรือเพียงแค่ testbed Linux/MacOS
การแยกโครงสร้างนี้ขึ้นอยู่กับโฟลเดอร์รูทของที่เก็บ ไฟล์/โฟลเดอร์บางส่วนถูกตัดออกจากคำอธิบายนี้เนื่องจากไม่สำคัญกับภาพรวม
kohi.core - Library ที่ใช้ร่วมกัน/.dll มีประเภท, คอนเทนเนอร์, lib สตริง, lib คณิตศาสตร์, utils, ฯลฯ รวมถึงเลเยอร์แพลตฟอร์ม (win32, linux, macOS)kohi.core.tests - ชุดการทดสอบหน่วยเล็ก ๆ สำหรับห้องสมุดหลัก จำเป็นต้องขยายkohi.runtime - Library ที่ใช้ร่วมกัน/.dll มีตรรกะของเครื่องยนต์หลักเช่นเดียวกับระบบเครื่องยนต์หลักหลายระบบkohi.plugin.audio.openal - ห้องสมุดที่ใช้ร่วมกัน/.dll มีปลั๊กอินเสียงซึ่งใช้ Openal เป็นแบ็กเอนด์เสียงkohi.plugin.renderer.vulkan - Library ที่ใช้ร่วมกัน/.dll มีปลั๊กอิน Vulkan Renderer ซึ่งทำหน้าที่เป็นแบ็กเอนด์เรนเดอร์ไปยังเครื่องยนต์สำหรับ Vulkankohi.plugin.ui.standard - ห้องสมุดที่ใช้ร่วมกัน/.dll มี UI มาตรฐาน Kohi ซึ่งมีคอลเลกชันการใช้งานทั่วไปของการควบคุมเช่นปุ่ม, ฉลาก, กล่องข้อความ ฯลฯ นี่คือ UI โหมดที่เก็บรักษาไว้testbed.assets - มีสินทรัพย์ทั้งหมดที่จะโหลดโดยแอปพลิเคชันทดสอบtestbed.kapp - แอปพลิเคชัน/.exe แอปพลิเคชันที่ใช้งานได้มากขึ้นโหลด testbed.klib กำหนดค่า/ใช้ปลั๊กอินและไลบรารี Kohi อื่น ๆtestbed.klib = Library ที่ใช้ร่วมกัน/.dll มีรหัสแอปพลิเคชัน (หรือ "รหัสเกม") เฉพาะกับแอปพลิเคชัน ร้อนแรงkohi.tools.versiongen - แอปพลิเคชัน/.exe ยูทิลิตี้ขนาดเล็กที่สร้างเวอร์ชันโดยใช้หมายเลขรุ่นเมเจอร์และรุ่นรองผ่านและหมายเลขบิลด์และการแก้ไขที่สร้างขึ้นอัตโนมัติตามวันที่และเวลา ใช้ในการสร้างเวอร์ชันของ Kohi และปลั๊กอินkohi.tools - ชุดเครื่องมือบรรทัดคำสั่ง ส่วนใหญ่ว่างเปล่าในขณะนี้ แต่จะถูกใช้เมื่อการพัฒนาบรรณาธิการเริ่มต้นขึ้น.vscode โฟลเดอร์ที่มีการตั้งค่าโครงการเฉพาะรหัส VS ดูที่นี่
เป้าหมายที่นี่เป็นเรื่องง่ายเพื่อจัดหาทรัพยากรที่ฉันต้องการเมื่อเรียนรู้การพัฒนาเกม คู่มือที่สมบูรณ์เกี่ยวกับการสร้างเอ็นจิ้นเกมตั้งแต่เริ่มต้นรวมถึงการตัดสินใจออกแบบไม่เพียง แต่ ทำไม การตัดสินใจเหล่านั้นจึงเกิดขึ้น ควรสังเกตว่าในขณะที่นี่เป็น วิธี การสร้างเครื่องยนต์เกมมันไม่ใช่วิธี เดียว ที่จะสร้างได้
แน่นอนว่ายังมีเป้าหมายในการมีเอ็นจิ้นเกมที่สามารถสร้างเกมได้ เมื่อโครงการอยู่ไกลพอการทำเกมจะทำเป็นซีรีส์ในช่อง YouTube ของฉันเช่นกัน
เป็นสิ่งสำคัญที่จะต้องทราบว่าเอ็นจิ้นนี้ไม่ได้และจะไม่เป็นเวลาสักพักพร้อมการผลิต มันเป็นเครื่องมือการเรียนรู้และยังไม่ได้รับการปรับให้เหมาะสมสำหรับการใช้งานในผลิตภัณฑ์คุณภาพการผลิต สิ่งนี้จะเปลี่ยนไปในที่สุด แต่ตอนนี้มันยัง ไม่ พร้อมการผลิต
ในขณะที่โครงการดำเนินไปยินดีต้อนรับการมีส่วนร่วมของชุมชนผ่านการร้องขอการดึงใน GitHub
คุณสมบัติควรได้รับการสนับสนุนผ่านชื่อสาขาในรูปแบบของ feature/<feature name> โดยที่ <feature name> ถูกแทนที่ด้วยชื่อของคุณสมบัติหรือตามหลักการของปัญหาคุณสมบัติที่รายงาน (เช่น feature/80 หรือ feature/terrain )
การแก้ไขข้อผิดพลาด จะต้อง ได้รับการสนับสนุนผ่านชื่อสาขาในรูปแบบของ bugfix/<issue#> โดยที่ <issue#> ถูกแทนที่ด้วยจำนวนปัญหาคุณสมบัติที่รายงาน (เช่น: bugfix/80 ) การแก้ไขข้อผิดพลาดจึง ต้อง มีปัญหาที่เกี่ยวข้องที่สร้างขึ้นบน GitHub
รหัสควรตรงกับรูปแบบทั่วไปของรหัสใน repo คู่มือสไตล์รหัสจะเผยแพร่ที่นี่ในบางจุดในอนาคตอันใกล้
การมีส่วนร่วมทั้งหมดอาจมีการตรวจสอบและอาจได้รับการยอมรับหรืออาจไม่ได้รับการยอมรับหรือมีการร้องขอการเปลี่ยนแปลงก่อนที่จะได้รับการยอมรับ
ฉันกำลังพัฒนาโคฮิในเวลาว่าง ตอนนี้ฉันไม่มีสปอนเซอร์ ถ้าคุณชอบงานของฉันโปรดช่วยฉันในสถานที่เหล่านี้:
ฉันขอขอบคุณอย่างมากต่อไปนี้/การสมัครสมาชิกบน YouTube และ Twitch กรุณากระจายคำ!
การสนับสนุนของคุณได้รับการชื่นชมอย่างมากและจะได้รับการลงทุนใหม่ในโครงการ