เอ็นจิ้นเกมที่มีการสร้าง / จัดการเอนทิตี Lua ที่ดี [ปิด]


11

ฉันกำลังมองหาเอ็นจิ้นที่สร้างเอนทิตี้ของมันโดยใช้ Lua หรือภาษาสคริปต์อื่น ๆ นี่คือเพื่อหาแรงบันดาลใจและทำในเครื่องยนต์ของฉันเองเช่นกัน

ฉันรู้ว่า CryEngine ใช้ Lua เพื่อสร้างเอนทิตี้ของพวกเขา แต่ฉันอยากรู้ว่ามีทางเลือกอื่นที่ฉันสามารถค้นหาได้หรือไม่

ขอบคุณ!

คำตอบ:


7

ผมขอแนะนำการดูที่ความรัก "ซึ่งเป็นที่น่ากลัวกรอบที่คุณสามารถใช้เพื่อให้ 2D เกมใน Lua. ได้ฟรีเปิดแหล่งที่มาและการทำงานบน Windows, Mac OS X และ Linux." มันเห็นได้ชัดไม่ได้เป็นทางเลือกที่จะ CryEngine แต่ก็ควรจะแสดงให้เห็นถึงวิธีการได้อย่างมีประสิทธิภาพใช้ศักยภาพของ Lua สำหรับการสร้างนิติบุคคลและตรรกะเกม รวมความรู้นั้นเข้ากับวิธีที่ Cryengine / เครื่องมือ AAA อื่น ๆ ใช้แบ็กเอนด์สคริปต์และคุณควรมีแรงบันดาลใจทั้งหมดที่คุณต้องการในการสร้างเครื่องมือของคุณเองด้วยความสามารถด้านสคริปต์ที่แข็งแกร่ง :)


4

เพื่อความรู้ที่ดีที่สุดของฉัน Essence Engine Series ของ Relic (ตามที่ใช้ในCompany of HeroesและDawn of War II ) ใช้ Lua หรือภาษาถิ่นของมันสำหรับสถิติหน่วยและการเขียนสคริปต์ภารกิจ ไม่มีแหล่งที่มาทางเว็บที่แท้จริงสำหรับมัน แต่คุณสามารถตรวจสอบ mods บางอย่างได้ที่RelicNews.comเพื่อถามวิธีแก้ไขหากคุณสนใจ

The Spark Engineโดย Unknown Worlds ที่ใช้ในเกมที่กำลังจะมาถึงNatural Selection 2ทำให้โค้ดเกมส่วนใหญ่อยู่ใน Lua เท่าที่ฉันรู้ SDK มาพร้อมกับการสั่งซื้อเกมล่วงหน้าและขณะนี้อยู่ในช่วงเบต้าเช่นเดียวกับเกม

อีกเกมที่ครั้งหนึ่งเคยได้รับการเลื่อนตำแหน่งอย่างหนักโดยอาศัย Lua จะเป็นEufloria (ก่อนหน้านี้Dyson ) มีการอ้างอิง Lua modding ในฟอรัมของพวกเขาเช่นกัน

Alien Swarmเกมฟรีของ Valve ใช้ภาษาสคริปต์ที่เรียกว่า "Squirrel" ซึ่งได้รับอิทธิพลมาจาก Lua เป็นอย่างมาก Alien Swarm SDK ควรพร้อมให้ดาวน์โหลดบน Steam ( Dev wiki )

แก้ไข: ฉันจะลืมเกี่ยวกับโลกในความขัดแย้งได้อย่างไร ! เกมดังกล่าวทำสิ่งต่างๆมากมายใน Python อย่างเห็นได้ชัดเมื่อมองไปที่ mod เช่น Modern Warfare Mod ที่ใช้กลไกใหม่ทั้งหมด


เพิ่มลิงก์ของคุณในสำหรับคุณ
The Duck Communist

ขอขอบคุณ! // ลบความคิดเห็นที่มีการเชื่อมโยงที่ยังไม่ฟอร์แมต ...
Koarl

คำตอบที่ดีฉันหวังว่าผู้คนจำนวนมากสามารถเพิ่มคำถามนี้ได้เนื่องจากในอนาคตฉันมั่นใจอย่างยิ่งว่าจะมีคำตอบเพิ่มเติม ขอบคุณมาก Koarl (ฉันเป็นแฟน
ตัวยง

2

นี่คือตัวอย่างของเกม (โอเพ่นซอร์ส) ที่ใช้การเขียนสคริปต์เพื่อนำไปใช้กับพฤติกรรมเอนทิตี:

Frogatoใช้หน่วยงานที่ใช้ภาษาสคริปต์ที่กำหนดเอง Battle for Wesnothใช้หน่วยงานที่ใช้ภาษาคำอธิบายที่กำหนดเองซึ่งสคริปต์ Lua สามารถฝังได้ KQใช้พฤติกรรมเอนทิตีโดยใช้สคริปต์ Lua

แก้ไข: โพสต์ลิงก์ตอนนี้ฉันได้รับอนุญาตให้ ...


Frogato ดูใกล้เคียงกับสิ่งที่ฉันกำลังมองหามันค่อนข้างละเอียด แต่ก็ยังน่าสนใจมาก ตัวอย่างที่เทียบเท่าใน Lua จะ
สั่นสะเทือน

2

ฉันทำสิ่งนั้นในเอ็นจินของฉัน ( มีแหล่งที่มาแต่อาจไม่คุ้มกับการถอดรหัส)

ในกรณีของฉัน "เอนทิตี" เป็นแนวคิดที่มีอยู่ทั้งหมดภายในลัวะ ไม่มีการสำรอง C ++ สำหรับ "เอนทิตี" ด้วยเหตุนี้ "เอนทิตี" จึงเป็นสิ่งที่เกมต้องการโดยเฉพาะ บางครั้งมันเป็นเพียงตารางที่มีข้อมูลเล็กน้อยติดอยู่บางครั้งก็เป็นองค์ประกอบเฟรม 2 มิติ (โปรดทราบว่าเฟรมเป็นโครงสร้าง Lua ทั้งหมดเช่นกันฉันเพิ่งมีไลบรารี UI มาตรฐาน) บางครั้งมันเป็นสิ่งที่ซับซ้อนกับ AI และการเรนเดอร์ ยังเป็นเพียงสิ่งที่สร้างขึ้นในลัวะ

หลายคนใช้ Lua กับระบบวัตถุสคริปต์ที่มีการสำรอง C ++ เช่นเอนทิตี "ชีวิต" ใน C ++ และเรียก Lua สำหรับการเขียนสคริปต์ ฉันเคยทำเช่นนั้น แต่ฉันพบว่าตัวเองมีความสุขและมีความสุขมากขึ้นเมื่อฉันย้ายโค้ดออกจาก C ++ และไปที่ Lua ณ จุดนี้ฉันใช้ C ++ แต่เพียงผู้เดียวในการจัดการการเรียกใช้ OS API และตรรกะรูปแบบ / การแสดงผล / AI / เกมทั้งหมดอยู่ใน Lua บริสุทธิ์ 100%

แนะนำ

อย่าลังเลที่จะถามคำถามฉันยินดีตอบ :)


Glorp เปรียบเทียบกับ love2d อย่างไร
deft_code

ดังที่ฉันเข้าใจแล้ว love2d มีเส้นทางการเรนเดอร์หิน glorp ไม่มี - มันมีการเชื่อมโยง OpenGL และคุณเพียงแสดงสิ่งที่คุณต้องการ (แม้ว่ามันจะมีฟังก์ชั่นผู้ช่วยสำหรับเนื้อหามาตรฐาน) glorp มีระบบ "เมนูหลัก / หยุดชั่วคราว / กลับสู่เมนู" ในตัว การรายงานข้อผิดพลาดเกี่ยวกับการขัดข้องและจะสร้างตัวติดตั้งโดยอัตโนมัติสำหรับระบบปฏิบัติการใดก็ตามที่คุณกำลังสร้าง glorp ไม่ได้ถูกออกแบบมาให้เป็น API จริง ๆ แต่เป็นกรอบที่ปรับเปลี่ยนได้ตลอดเวลาสำหรับสิ่งที่ฉันต้องการ ไม่เข้ากันได้กับการย้อนกลับเลย :)
ZorbaTHut
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.