ฟีเจอร์ที่สำคัญที่สุดของ Numivo นั้นมองไม่เห็น: เกมที่คุณปล่อยออกไปไม่มีมันอยู่เลยแม้แต่ นิดเดียว ทุกเครื่องมือในกล่อง (scatter, mesh blending, grid) สร้างเพียงแอสเซ็ตเอนจิน ธรรมดา และไม่มีอะไรมากกว่านั้น บทความนี้อธิบายว่ามันหมายความว่าอย่างไรในเชิงเทคนิค และเหตุใด เราจึงถือว่ามันต่อรองไม่ได้
“เนทีฟ” หมายความว่าอย่างไรอย่างเป็นรูปธรรม
เมื่อคุณเบคการ scatter ใน Unreal, Numivo จะเขียน คอมโพเนนต์ Hierarchical Instanced Static Mesh หรือ อินสแตนซ์ foliage โครงสร้างเดียวกับที่คุณจะได้จากการวางด้วยมือ ใน Unity มัน คืออินสแตนซ์ prefab มาตรฐานหรือรายละเอียดของเทอร์เรน แมททีเรียลจาก mesh blending จะถูก คอมไพล์เป็นแมททีเรียลเอนจินปกติ พร้อมการเปลี่ยนผ่านของ normal ที่แม่นยำระดับพิกเซล ไม่มีเชเดอร์ พาสแบบกำหนดเอง ไม่มีงานปลั๊กอินต่อเฟรม ไม่มีโมดูล “Numivo runtime” ใน Build.cs หรือ manifest ของแพ็กเกจของคุณ
ตัวเลขที่ตามมาจากสิ่งนี้:
- โค้ด Numivo ในบิลด์ของคุณ 0 บรรทัด
- เวลาเฟรมที่เพิ่มขึ้น 0 ms ไม่มีอะไรต้องประมวลผล
- RAM ของเอดิเตอร์ในฉากทั่วไป < 150 MB เพราะเครื่องมือของเอดิเตอร์คือรอยเท้าทั้งหมด
- แกนกลางร่วมระหว่าง Unreal และ Unity 1 ตัว ดังนั้นพรีเซ็ตจึงย้ายข้ามเอนจินได้
เหตุใดเราจึงปฏิเสธการพึ่งพาตอนรันไทม์
การพึ่งพาตอนรันไทม์คือหนี้ที่คนอื่นต้องมาจ่าย:
- การรับรอง (certification) ทีมรับรองของคอนโซลจะถามว่าโมดูลของบุคคลที่สามแต่ละตัวทำอะไร “ไม่มีสักตัว” คือคำตอบที่สั้นที่สุดเท่าที่จะเป็นไปได้
- อายุการใช้งาน เกมอยู่ได้นานกว่าการสมัครสมาชิกเครื่องมือ เพราะผลลัพธ์ที่เบคแล้วเป็น แอสเซ็ตธรรมดา ฉากที่สร้างด้วย Numivo จึงเปิดและปล่อยได้ในอีกสิบปีข้างหน้า ไม่ว่าจะมีเราหรือ ไม่ หากคุณยกเลิก คุณยังเก็บทุกสิ่งที่คุณสร้างไว้ นี่ไม่ใช่คำสัญญาในเงื่อนไขของเรา แต่เป็น คุณสมบัติของสถาปัตยกรรม
- ความเป็นเจ้าของด้านประสิทธิภาพ โปรไฟเลอร์ของคุณแสดงพรีมิทีฟของเอนจินที่คุณรู้วิธี ปรับแต่งอยู่แล้ว (ระยะ cull, LOD, การตั้งค่า Nanite) ไม่ใช่กล่องดำ
มันหมายความว่าอย่างไรต่อรีโปของคุณ
ผลลัพธ์ที่เบคแล้วทำเวอร์ชันได้เหมือนแอสเซ็ตอื่น ๆ ทำ diff ได้ merge ได้ รีวิวได้ พรีเซ็ตของ สปีชีส์และกริดของ Numivo เป็นไฟล์เล็ก ๆ เรียบง่ายที่คุณ commit และแบ่งปันกับทีมได้ สิ่งเดียวที่ ไม่ ควรเข้าสู่ระบบควบคุมเวอร์ชันคือแคชดัชนีคอนเทนต์ในเครื่อง (มันสร้างตัวเองใหม่) กฎ ignore หนึ่งข้อก็เสร็จ
การแลกเปลี่ยน พูดอย่างตรงไปตรงมา
การแก้ไขเชิงกระบวนการแบบไม่ทำลายต้องใช้ปลั๊กอิน: เมื่อเบคแล้ว เนินเขาหนึ่งลูกคือข้อมูลของ เอนจิน และการแก้ไขมันใหม่เชิงกระบวนการหมายถึงการเปิดมันขึ้นมาใหม่ด้วย Numivo เราคิดว่านี่คือ การแลกเปลี่ยนที่ถูกต้อง ทางเลือกอีกทาง (การทำให้ฉากพึ่งพาเลเยอร์รันไทม์) จับโปรเจกต์ของคุณ เป็นตัวประกันอย่างเงียบ ๆ เลเวลของคุณควรเป็นของเกมของคุณ ไม่ใช่ของเครื่องมือของคุณ
หากปรัชญานี้เข้ากับวิธีที่ทีมของคุณทำงาน ระดับใช้งานฟรี คือวิธีที่ง่ายที่สุดในการ ทดสอบ: scatter อะไรบางอย่าง เบคมัน ลบปลั๊กอิน แล้วดูว่าฉากไม่แยแสเลย