- เป็น เอนจินเกมที่เน้น 2D ซึ่งมีน้ำหนักเบาและประสิทธิภาพสูง และ รองรับความสามารถด้าน 3D ด้วย
- ควบคุมตรรกะของเกมทั้งหมดด้วย สคริปต์ Lua และช่วยเพิ่มความเร็วในการพัฒนาด้วยการบิลด์ที่รวดเร็วและ hot reload
- ให้ใช้งาน ฟรี โดยไม่มีค่าลิขสิทธิ์หรือค่า royalty
- รองรับข้ามแพลตฟอร์มได้อย่างแข็งแกร่ง ทำให้พัฒนาเพียงครั้งเดียวแล้วนำไปเผยแพร่ได้บนหลากหลายแพลตฟอร์ม
- มีเครื่องมือที่เป็นมิตรกับศิลปิน เช่น scene editor และ GUI tool ช่วยให้การสร้างงานภาพทำได้ง่ายยิ่งขึ้น
- ขยายความสามารถได้ด้วย native extension เช่น C/C++ และการเชื่อมต่อกับ SDK หลากหลายแบบ เพื่อนำไปใช้จริงได้อย่างยืดหยุ่น
ฟีเจอร์หลักของ Defold
- ไม่ต้องติดตั้ง: ใช้งานได้ทันทีโดยไม่ต้องติดตั้งหรือตั้งค่า
- ตัวแก้ไขแบบภาพและโค้ด: สร้างสรรค์งานได้ผ่านทั้ง visual editor และ code editor
- ดีบักเกอร์ Lua: มีเครื่องมือสำหรับดีบักสคริปต์ Lua
- ตัวแก้ไขฉากและพาร์ติเคิล: มี editor หลากหลายสำหรับการพัฒนาเกม 2D และ 3D
- ไม่มีค่าใช้จ่าย: ไม่มีค่าใช้จ่ายเริ่มต้น ค่าลิขสิทธิ์ ค่า royalty หรือค่า runtime
การรองรับข้ามแพลตฟอร์ม
- หลากหลายแพลตฟอร์ม: สามารถเผยแพร่เกมไปยังแพลตฟอร์มหลักอย่าง PlayStation, Nintendo Switch, Android, iOS, macOS, Linux, Windows, Steam, HTML5, Facebook และอื่น ๆ
- ไม่ต้องใช้เครื่องมือภายนอก: รองรับทุกแพลตฟอร์มด้วย code base เดียวโดยไม่ต้องใช้เครื่องมือภายนอก
เอนจินที่เน้น 2D แต่ทำ 3D ได้ด้วย
- Defold ปรับแต่งมาเพื่อการพัฒนาเกม 2D แต่ก็ มีความสามารถ 3D ในตัว
- ออกแบบแบบคอมโพเนนต์ เพื่อเสริมทั้งประสิทธิภาพและความเป็นโมดูลาร์
- คอมโพเนนต์ 2D: สไปรต์ 2D, โมเดล Spine, tilemap editor
- คอมโพเนนต์ 3D:
- โหลดโมเดลและแอนิเมชัน 3D
- สร้างและแก้ไข 3D mesh ระหว่าง runtime
- วัสดุแบบกำหนดเองและ shader ที่อิงบน GLSL
- เอฟเฟ็กต์พาร์ติเคิล
- particle editor ที่พรีวิวแบบเรียลไทม์ได้
- ปรับพารามิเตอร์ด้วย curve editor
- รองรับตัวปล่อยพาร์ติเคิลแบบ 2D/3D
ความสามารถด้านแอนิเมชัน
- มีระบบแอนิเมชันที่ทรงพลัง ใช้ได้กับสไปรต์ โมเดล GUI และอื่น ๆ
- flipbook animation: ใช้กับสไปรต์, GUI node และพาร์ติเคิล
- Spine และโมเดลแอนิเมชัน
- รองรับการ blend
- จัดการเหตุการณ์ keyframe
- ใช้ inverse kinematics และควบคุมผ่านสคริปต์ได้
- property animation
- ทำแอนิเมชันกับพร็อพเพอร์ตีทั้งหมดของสไปรต์และ GUI ได้
- ทำ property animation แบบกำหนดเองด้วยสคริปต์
- ใช้ easing function แบบกำหนดเองหรือที่มีมาให้ล่วงหน้าได้
เครื่องมือที่เป็นมิตรกับศิลปิน
- GUI editor
- จัดเลเยอร์ด้วยข้อความ รูปภาพ pie node และอื่น ๆ
- ฟังก์ชัน clipping และ mask
- รองรับ auto layout และการสลับทิศทางหน้าจอ
- texture แบบ 9-slice, bitmap/distance field font
- นำองค์ประกอบ UI กลับมาใช้ซ้ำได้ผ่าน template
- scene editor
- visual editor สำหรับประกอบและจัดวางแอสเซ็ต
- สร้าง game object แบบ prefab เป็นฐาน
- จัดกลุ่มวัตถุด้วยโครงสร้างแบบลำดับชั้น
การจำลองฟิสิกส์
- ผสานรวมเอนจินฟิสิกส์ 2D/3D ที่อิงบน Box2D และ Bullet อย่างสมบูรณ์
- วัตถุแบบ static/dynamic/kinematic
- การตรวจจับการชนแบบอิงรูปร่างและการตรวจจับ ray cast
- การตรวจจับการชนของ tilemap อย่างแม่นยำ
- รองรับ trigger, joint และ motor
ทุกอย่างทำได้ด้วยสคริปต์ Lua
- สคริปต์ Lua
- มี code editor, syntax highlighting, autocomplete และ LSP
- มี debugger ในตัวและตรวจสอบตัวแปรได้
- เขียนสคริปต์ควบคุม rendering pipeline ได้ทั้งหมด
- ระบุ type ได้ด้วยภาษา Teal
- สไตล์โค้ดแบบ reactive
- รองรับ Lua แบบ reactive style โดยยังคงประสิทธิภาพสูง
- โครงสร้างการสื่อสารแบบอะซิงโครนัสระหว่าง game object
การรองรับข้ามแพลตฟอร์ม
- ข้ามแพลตฟอร์มอย่างแท้จริง
- ใช้ code base เดียวและ deploy ได้ในคลิกเดียว
- Steam, Facebook Instant และอื่น ๆ รองรับผ่าน extension
- editor รองรับทั้ง macOS, Windows และ Linux
- เผยแพร่แอปมือถือได้โดยไม่ต้องใช้ Xcode หรือ Android Studio
- รองรับ WebGL, OpenGL, Vulkan, Metal
- เบามาก
- จัดการทรัพยากรอัตโนมัติโดยรวมเฉพาะแอสเซ็ตที่ใช้งาน
- การแพ็ก sprite atlas
- ตั้งค่าการบีบอัด texture แยกตามแพลตฟอร์มได้
- รองรับ dynamic batching ใน rendering pipeline
ประสิทธิภาพและความเสถียร
- ขนาดไบนารีเล็กกว่าเอนจินอื่นมาก
- มีขนาดไบนารีประมาณ 10% ของ Unity 6 และ Godot 4.3 (ทั้งบน Android, iOS, HTML5, Windows)
- ประสิทธิภาพยอดเยี่ยม
- เรนเดอร์วัตถุได้นับหมื่นชิ้น (ตัวอย่าง: Bunnymark)
- ทำงานได้ลื่นไหลแม้บนฮาร์ดแวร์รุ่นเก่าหรือเบราว์เซอร์มือถือ
- รุ่น Stable
- ออกรุ่นทุก 4 สัปดาห์ พร้อมช่วงเบต้า 2 สัปดาห์
- แทบไม่มีการเปลี่ยนแปลงที่ทำให้ backward compatibility พัง
- การที่เอนจินแครชนับว่าเกิดขึ้นได้น้อยมาก
เวิร์กโฟลว์ที่รวดเร็ว
- hot reload
- ใช้แอสเซ็ต/ตรรกะแบบเรียลไทม์
- รองรับ hot reload และ debugging บนอุปกรณ์แบบไร้สาย
- จัดการ reload แบบกำหนดเองได้ผ่าน Lua hook
- custom workflow
- ใช้ build pipeline แบบแยกอิสระได้
- รองรับ headless build ที่ผสานเข้ากับ CI
- แชร์ไลบรารีระหว่างโปรเจกต์ได้
- มี Asset Portal ที่รวมแอสเซ็ตทั้งจากทางการและชุมชน
- ข้อมูลทั้งหมดจัดการเป็นไฟล์ข้อความ ทำให้ merge ได้ง่าย
- การบิลด์และรีแฟกเตอร์
- ทุกบิลด์รวมถึง HTML5 เสร็จได้ภายในไม่กี่วินาที
- รองรับการโหลดแบบ asynchronous และ synchronous
- รีแฟกเตอร์แอสเซ็ตอัตโนมัติ
- การปรับแต่งประสิทธิภาพและดีบัก
- visual profiler แบบเรียลไทม์
- frame sampling ระยะไกลผ่านเว็บ
- จับภาพวิดีโอของเกมได้
- มี native crash log API
เพิ่มความสามารถด้วย native extension
- ขยายความสามารถของเอนจิน Defold ได้ด้วย C, C++, ObjectiveC, Java, JavaScript
- สร้างเอนจินแบบปรับแต่งเฉพาะผู้ใช้โดยอัตโนมัติบนคลาวด์
- ตัวอย่างการใช้งาน
- การคำนวณประสิทธิภาพสูงและการประมวลผลข้อมูล
- การเข้าถึงฮาร์ดแวร์ เช่น กล้องบนมือถือ
- การเชื่อมต่อกับ SDK ภายนอก เช่น โฆษณาและ analytics
การใช้งานจริงและการผสานรวมกับ third-party
- Defold เป็นเอนจินเกมสำหรับใช้งานจริงที่มีการผสานรวมกับ SDK ที่เชื่อถือได้
- การแจ้งเตือนแบบ push: Google, Apple
- การชำระเงินในแอป: Google, Apple, Amazon, Facebook
- บริการเกม: Facebook SDK, Google Play, Firebase
- โฆษณา: รองรับ mediation เช่น AdMob, IronSource
- เครือข่าย: WebSockets, Nakama, PlayFab, Colyseus และอื่น ๆ
- ดูส่วนขยายเพิ่มเติมได้ใน Asset Portal
ทำไมต้อง Defold?
- Defold ไม่ได้อ้างว่าเหมาะที่สุดสำหรับทุกเกม
- แต่สำหรับเกมบางประเภท มันอาจเป็นตัวเลือกที่ดีที่สุด
- มีจุดแข็งเฉพาะทางในด้านประสิทธิภาพการพัฒนา ความเบา การรองรับข้ามแพลตฟอร์ม และการทำงานแบบวนซ้ำที่รวดเร็ว
2 ความคิดเห็น
ไม่ใช่แค่ Lua ธรรมดา แต่เป็น LuaJIT เลยทำงานได้เร็วมาก
ความคิดเห็นจาก Hacker News
พวกเขาเลือกแนวทางด้านไลเซนส์ที่น่าสนใจ ชอบที่เรียกมันว่า source-available license แทนที่จะเป็นโอเพนซอร์ส
ขอชื่นชมมากที่เรียกมันว่า "source-available" และไม่ได้ใช้คำว่า "open source" แบบผิด ๆ อีกทั้งยังชี้ให้เห็นชัดเจนว่ามีข้อเพิ่มเติมจากไลเซนส์ฐาน Apache ด้วย
มีความชอบ Defold มาก มันมีความแตกต่างในวงการพัฒนาเกม เช่น ตัวแก้ไข GUI ที่ฝังมาในตัวเขียนด้วย Clojure
Defold มีมานานแล้ว ไม่รู้ว่าทำไมตอนนี้ถึงขึ้นหน้าหลัก แต่ยังไง Defold ก็ดี เพียงแต่ชุมชน เอกสาร ฯลฯ ยังเป็นรอง Godot
จำความรู้สึกตอนที่ Unity เพิ่งเปิดตัวครั้งแรกได้ ตอนนั้นรู้สึกว่านี่น่าจะไปได้ไกล
มีโพสต์ที่เกี่ยวข้องอีกอันกำลังถูกส่งเข้ามา ว่าด้วยเกมที่เขียนด้วย Lua 60k LOC โดยใช้เอนจินนี้
เพิ่งพบว่าไม่มีอยู่ใน Nixpkgs
อยากเห็นการเปรียบเทียบกับ Godot แบบเจาะลึกกว่านี้ในแง่ฟีเจอร์ อย่างน้อยในด้านความสามารถ 3D ดูเหมือนว่าฝั่งหลังจะพัฒนาไปไกลกว่ามาก
ติดตามเอนจินนี้เมื่อหลายปีก่อน มันเป็นเกมเอนจินที่ King สร้างขึ้น และปล่อยให้อิสระหลังจากที่บริษัทเลิกลงทุนกับมันเอง
เมื่อเทียบกับ Löve 2D ก็สงสัยว่าต่างกันอย่างไรนอกจากมี IDE แถมมาด้วย ดูเหมือน Defold จะรองรับแพลตฟอร์มได้มากกว่า แต่การแพ็กเกมลงคอนโซลต่าง ๆ อาจพ่วงการพึ่งพาส่วนประกอบปิดที่เป็นความลับสูงอยู่มาก