Ymir: เอนจินฟิสิกส์ 2D ที่มีความเร็วสำหรับนักพัฒนาบน macOS และ iOS
Ymir ซึ่งพัฒนาโดย StrikerX3 (Tiago Rezende) เป็นเอนจินฟิสิกส์ 2D ที่มีประสิทธิภาพสูง เขียนด้วย Swift สำหรับแพลตฟอร์มของ Apple มันจำลองพลศาสตร์ของร่างกายแข็งและการตอบสนองต่อการชนเพื่อขับเคลื่อนการจำลองและเกมแบบโต้ตอบ โดยเปิดเผย API ที่สะอาดและปลอดภัยตามประเภทสำหรับนักพัฒนา เครื่องมือนี้ใช้การคำนวณการชนขั้นสูงและตัวแก้ปัญหาที่ใช้แรงกระตุ้นในขณะที่ยังคงสามารถขยายได้สำหรับรูปร่างที่กำหนดเอง Ymir มุ่งเป้าไปที่ผู้สร้าง macOS และ iOS ที่ต้องการแกนฟิสิกส์ที่เป็นนามธรรมและเบา ซึ่งรวมเข้ากับโครงการ Swift
Ymir เป็นเอนจินฟิสิกส์ประเภทใด? Ymir มุ่งเน้นไปที่การจำลองร่างกายแข็งในสองมิติ โดยใช้รูทีนการชนที่แม่นยำและตัวแก้ปัญหาเพื่อจำลองการเคลื่อนไหวและการติดต่อ เอนจินนี้ใช้ GJK และ EPA สำหรับการตรวจจับการชนและตัวแก้ปัญหาที่อิงจากแรงกระแทกเพื่อแก้ไขการชนและข้อจำกัด นอกจากนี้ยังมีการสนับสนุนสำหรับข้อต่อและข้อจำกัดทางกายภาพ รวมถึงสถาปัตยกรรมที่รองรับรูปทรงและพฤติกรรมที่กำหนดเอง เพื่อให้การจำลองสามารถสะท้อนปฏิสัมพันธ์ทางกลศาสตร์ที่ซับซ้อนแทนที่จะเป็นการทับซ้อนของสไปรท์ที่เรียบง่าย
Ymir เป็นเอนจินเกมที่สมบูรณ์หรือห้องสมุดฟิสิกส์เฉพาะทาง? Ymir เป็นห้องสมุดฟิสิกส์เฉพาะทางมากกว่าที่จะเป็นกรอบเกมแบบครบวงจร มันจัดการการเคลื่อนไหว ลอจิกการชน และการแก้ไขข้อจำกัด แต่ไม่จัดให้มีการเรนเดอร์ เสียง หรือการจัดการข้อมูลนำเข้า นั่นทำให้เอนจินเหมาะสมเป็นส่วนประกอบที่มุ่งเน้นภายในโครงการขนาดใหญ่ และหมายความว่าทีมงานต้องจัดเตรียมการเรนเดอร์และเลเยอร์ข้อมูลนำเข้าด้วยตนเองหรือจับคู่ Ymir กับกรอบการเรนเดอร์ที่มีอยู่
Ymir รวมเข้ากับโครงการ Swift และเครื่องมือของ Apple ได้อย่างไร? เอนจินนี้เขียนขึ้นทั้งหมดใน Swift ซึ่งช่วยขจัดความจำเป็นในการใช้ C++ wrappers และทำให้ API มีความปลอดภัยต่อประเภทสำหรับฐานรหัส Swift มันสามารถฝังในโครงการ SwiftUI หรือ UIKit เพื่อขับเคลื่อนการเคลื่อนไหวทางกายภาพและองค์ประกอบที่โต้ตอบได้ ฐานรหัสถูกออกแบบมาเพื่อการขยาย ดังนั้นนักพัฒนาสามารถเพิ่มรูปทรงการชนที่กำหนดเองหรือพฤติกรรมที่กำหนดเองโดยไม่ต้องแก้ไขอัลกอริธึมหลัก สนับสนุนการรวมโมดูลเข้ากับสถาปัตยกรรมแอปที่มีอยู่
คุณจะเพิ่ม Ymir ลงในโครงการได้อย่างไรและแพลตฟอร์มใดบ้างที่รองรับ? Ymir มีเป้าหมายหลักที่ macOS แต่สามารถทำงานร่วมกับแพลตฟอร์มที่รองรับ Swift รวมถึง iOS, iPadOS และ tvOS โครงการสามารถรวมเข้าด้วยกันได้โดยการโคลนที่เก็บหรือเพิ่มเป็นการพึ่งพาหากมีการจัดเตรียม Swift Package Manager manifest ความยืดหยุ่นในการติดตั้งนั้นช่วยให้ทีมสามารถนำเอนจินไปใช้ภายในกระบวนการทำงานของ Xcode แบบเนทีฟและปรับให้เข้ากับเป้าหมายของ Apple ที่แตกต่างกันได้
โดยสรุป Ymir เหมาะสำหรับนักพัฒนาที่ศึกษาและปรับแต่งโค้ดเอนจิน Ymir เป็นตัวเลือกที่แข็งแกร่งสำหรับนักพัฒนาที่ใช้ Swift ซึ่งให้ความสำคัญกับฟิสิกส์คอร์ที่สามารถตรวจสอบและปรับแต่งได้ เนื่องจากโครงการนี้เป็นโอเพนซอร์สและมีชื่อเสียงในชุมชนเฉพาะทางสำหรับการนำเสนอที่สะอาด มันให้รางวัลแก่ทีมที่ชอบอ่านและปรับเปลี่ยนภายในเอนจินเป็นส่วนหนึ่งของกระบวนการพัฒนา แทนที่จะใช้แพ็คเกจเดียวที่รวมการเรนเดอร์และบริการเกมเข้าด้วยกัน.
ข้อดี ดำเนินการ GJK และ EPA สำหรับการตรวจจับการชนที่แม่นยำ ตัวแก้ปัญหาที่ใช้แรงกระตุ้นพร้อมการสนับสนุนสำหรับข้อต่อและข้อจำกัด เขียนทั้งหมดใน Swift โดยหลีกเลี่ยง C++ wrappers รองรับกับ macOS, iOS, iPadOS, และ tvOS ข้อเสีย ไม่ใช่เอนจินเกมเต็มรูปแบบ; ไม่มีการเรนเดอร์, เสียง, หรือระบบการป้อนข้อมูล ต้องใช้ความพยายามของนักพัฒนาในการเชื่อมต่อภาพและการป้อนข้อมูลของผู้ใช้ การมุ่งเน้นไปที่ชุมชนเฉพาะกลุ่ม ไม่ได้มุ่งเป้าไปที่ทีมที่สามารถใช้งานได้ทันที