
เอ็นจิ้น FLING มีจุดมุ่งหมายที่จะเป็นเครื่องมือเล่นเกมข้ามแพลตฟอร์ม Vulkan ที่จะทำการทดสอบด้วยสิ่งต่อไปนี้:
มีขั้นตอนพื้นฐานสองสามขั้นตอนในการรวบรวม FLING บนแพลตฟอร์มของคุณ
โครงการนี้ต้องใช้ CMake 3.13 หรือสูงกว่าคุณสามารถติดตั้งได้ที่นี่
โครงการนี้ใช้ GLFW ดังนั้นคุณจะต้องติดตั้งไลบรารีเหล่านั้นลงในเครื่องของคุณ GLFW ยังขึ้นอยู่กับการมี Doxygen ดังนั้นคุณอาจต้องการที่จะมีเช่นกัน
Ubuntu:
sudo apt-get update
sudo apt-get install doxygen
sudo apt-get install -y libglm-dev libxcb-dri3-0 libxcb-present0
sudo apt-get install -y libpciaccess0 libpng-dev libxcb-keysyms1-dev
sudo apt-get install -y libxcb-dri3-dev libx11-dev libmirclient-dev
sudo apt-get install -y libwayland-dev libxrandr-dev
sudo apt-get install -y libglfw3-dev
sudo apt-get install -y xorg-dev
เห็นได้ชัดว่าโครงการนี้สร้างขึ้นโดยใช้ Vulkan ดังนั้นคุณจะต้องติดตั้งก่อนที่จะรวบรวมหรือเรียกใช้โปรแกรม
คุณสามารถดาวน์โหลด SDK จากเว็บไซต์ Lunarg ได้ที่นี่
หากคุณมีปัญหากับ Vulkan SDK ให้ตรวจสอบแหล่งข้อมูลเหล่านี้:
Init.bat และ Init.shหลังจากติดตั้ง SDK คุณสามารถเรียกใช้หนึ่งในสคริปต์ที่ให้ไว้
การรันหนึ่งในสคริปต์เหล่านี้จะได้รับ submodules และไลบรารีภายนอกทั้งหมดที่เครื่องยนต์ใช้และสร้างโฟลเดอร์ที่เรียกว่า build โฟลเดอร์ build ด์จะมีไฟล์บิลด์แพลตฟอร์มของคุณ (Visual Studio, MakeFiles ฯลฯ )
เพื่อความสะดวกในการพัฒนาและการทำซ้ำเส้นทางไฟล์ไปยังสินทรัพย์ (shaders, พื้นผิว, โมเดล ฯลฯ ) เป็นเส้นทางที่แน่นอนทั้งหมดที่สร้างขึ้นโดย CMake หากคุณต้องการมีสำเนาของการดำเนินการของคุณด้วยเส้นทางสินทรัพย์ที่สัมพันธ์กับโปรแกรมจากนั้นสร้างไฟล์โครงการของคุณด้วย CMake ด้วยธงนี้:
cmake -DDEFINE_SHIPPING=ON -B build .
สังเกตตัวเลือก -DDEFINE_SHIPPING ถูกตั้งค่าเป็น ON สิ่งนี้ตั้งค่า definiton ที่คุณสามารถใช้ใน C ++:
#ifdef FLING_SHIPPING
// Do some nice stuff
#else
// Do non-shipping code, perhaps with a lot of log messages
#endifหากคุณมีการบริจาคหรือการแก้ไขที่คุณต้องการมีส่วนร่วมอย่าลังเลที่จะเปิดปัญหาหรือคำขอดึง! ฉันยินดีที่จะพูดคุยเกี่ยวกับโครงการดังนั้นอย่าลังเลที่จะติดต่อฉันทาง Twitter หรือที่นี่ใน GitHub ในที่สุดเป้าหมายคือการมีเทมเพลต PR/มาตรฐานการเข้ารหัสที่เฉพาะเจาะจงมากขึ้น แต่ตอนนี้ไม่ได้มีความสำคัญ
เราใช้กลยุทธ์การแตกแขนงพื้นฐาน สร้างสาขาคุณสมบัติออกจาก Main สำหรับบางสิ่งเช่น "Add-Support-for-X" จากนั้นคุณสมบัตินั้นจะเสร็จสิ้นและทดสอบสร้างคำขอดึงเพื่อนำไปใช้เป็นหลัก
เราจะสร้างสาขา "รีลีส" ที่มีเสถียรภาพและติดแท็กตามลำดับของบิลด์ที่เสถียร
แหล่งข้อมูลที่ยอดเยี่ยมบางอย่างคือการสอน Vulkan และ repo ของ Saschawillems พร้อมตัวอย่าง Vulkan ที่แตกต่างกัน