เครื่องมือพัฒนาเกมข้ามแพลตฟอร์ม 2 มิติ [ปิด]


84

ฉันทำงานกับ Corona SDK มาระยะหนึ่งแล้วและชอบที่จะสร้างแอปที่ทรงพลังโดยใช้ Lua ได้อย่างรวดเร็วและง่ายดาย แต่มันสามารถรวบรวมได้เฉพาะสำหรับ iOS และ Android ซึ่งตอนนี้รู้สึกว่าน้อยเกินไป

ความสนใจหลักของฉันคือการสามารถรวบรวมไปยังเดสก์ท็อปและมือถือได้ อย่างน้อยสำหรับสิ่งต่อไปนี้:

  • Windows + Mac สำหรับเดสก์ท็อปเป็นแอปพลิเคชันแบบสแตนด์อโลน
  • iOS + Android สำหรับมือถือ

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

ฉันพบเครื่องยนต์ต่อไปนี้แล้ว:

  • Marmalade Quick - หลังจากตรวจสอบเพิ่มเติมแล้ว Marmalade Quick สามารถสร้างสำหรับมือถือเท่านั้น!
  • IwGame - ทำงานบนมาร์มาเลดและบอกว่าสามารถปรับใช้กับเดสก์ท็อปและมือถือด้วย Lua ข้อมูลใด ๆ ที่ได้รับการชื่นชมอย่างมากเกี่ยวกับเรื่องนี้
  • sio2 - กล่าวว่า "SIO2 เป็นเอนจิ้นเกม 2D และ 3D ข้ามแพลตฟอร์มที่ใช้ OpenGLES สำหรับ iOS, Android, MacOS และ Windows" และ "เอ็นจิ้นนี้ยังช่วยให้คุณสามารถพอร์ตเกมของคุณบน Mac Store และบน Windows ได้ด้วย" แต่ฟอรัมของพวกเขา และชื่อเว็บคือ "Game Engine for Mobile Devices" ไม่พบข้อมูลใด ๆ ว่าสามารถปรับใช้กับแพลตฟอร์มเดสก์ท็อปได้หรือไม่ข้อมูลใด ๆ จะได้รับการชื่นชมอย่างมากอีกครั้ง
  • Loom Engine - Loom นั้นคล้ายกับ Haxe + OpenFL (พยายามดึงดูดนักพัฒนา Flash) ตรงที่ใช้ ECMAScript เหมือน AS3 แต่ไม่ได้สร้างโค้ดเนทีฟจากมัน อย่างไรก็ตามมันใช้ Cocos2D ในการเรนเดอร์ดังนั้นในทางทฤษฎีควรจะเร็วเท่ากับ Cocos2D - ขอบคุณ Bojan
  • SDL - ฉันได้อ่านในหลาย ๆ ที่ SDL สามารถปรับใช้กับเกือบทุกแพลตฟอร์มหรืออุปกรณ์และมีการผูก Lua แต่ฉันไม่พบว่ามันทำงานอย่างไรเพราะมันไม่ใช่เครื่องยนต์ ใครที่สามารถอธิบายวิธีการทำงานและถ้าเป็นไปได้ก็ขอชื่นชมอีกครั้ง
  • SFML - "Windows, Linux, Mac OS X และ Android และ iOS ในเร็ว ๆ นี้" ไม่ได้ใช้ Lua แต่สามารถใช้ภาษาอื่นเช่น Java และ Python เป็นต้นใครมีข้อมูลเกี่ยวกับเรื่องนี้
  • Torgue2D - "Torque 2D ได้รับการพัฒนาโดยคำนึงถึง OS X, Windows และอุปกรณ์ iOS และทำงานได้ดีเท่าเทียมกันบนทุกแพลตฟอร์ม" ใช้ TorgueScript และไม่มี Android = (
  • Sencha - ดูเหมือนจะรวบรวมไปยังทุกแพลตฟอร์มใช้ Javascript ด้วยซึ่งฉันรู้จัก แต่ถึงแม้ V8 JS จะทำงานได้ดีเมื่อเทียบกับตัวเลือกอื่น ๆ หรือไม่?
  • GameMaker - ภาษาสคริปต์ของตัวเอง GML และฉันจำได้ว่าเป็นเครื่องมือสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ มันเติบโตเป็นเครื่องยนต์จริงหรือเปล่าฉันหมายถึงการพัฒนาอย่างจริงจัง
  • Construct2 - คำถามเดียวกับ gamemaker
  • Corona - Lua แต่มือถือเท่านั้น (Android และ iOS เท่านั้นเช่นกัน)
  • Cocos2D - ดูเหมือนว่าจะมีตัวเลือกมากมาย แต่ไม่แน่ใจว่าเป็นภาษาเดียวกันหรือไม่? ดูเหมือนว่าคุณจะต้องเขียนโค้ดใหม่ทั้งหมด ข้อมูลใด ๆ หาก cocos2D สามารถปรับใช้กับเดสก์ท็อป + มือถือที่มีรหัสเกือบเดียวกันได้จะได้รับการชื่นชมอย่างมาก
  • Angel2D - บอกว่ามันสามารถปรับใช้กับทุกอย่างยกเว้น Android และใช้ Lua ใครเคยใช้อันนี้มาก่อน?
  • libgdx --- ฉันเคยเห็น แต่สิ่งดีๆเกี่ยวกับเรื่องนี้ นี่คือการทดสอบเกณฑ์มาตรฐานสำหรับ libgdx และเป็นที่ที่ฉันเห็นว่ามันถึง 40k สไปรต์ที่ 60fps http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml ดูเหมือนว่า libgdx แทบจะไม่เกิน 30k เลยจริงๆ แต่ก็ยังดูน่าทึ่ง นี่อยู่ในระดับเดียวกับ Qt สำหรับฉันเกือบจะสมบูรณ์แบบยกเว้นฉันไม่ค่อยกังวลเกี่ยวกับประสิทธิภาพของมัน libgdx สามารถสร้างทุกอย่างได้สวยมาก
  • XNA + MonoGame - ประสิทธิภาพของ MonoGame ดูเหมือนจะต่ำกว่า libgdx เล็กน้อยเท่านั้นสามารถสร้างไปยังแพลตฟอร์มส่วนใหญ่ได้ อย่างไรก็ตามฉันไม่รู้มากเกี่ยวกับ XNA และฉันได้ยินมาว่ามันจะไม่ได้รับการอัปเดตในอนาคต แต่ค่อนข้างเสถียร? ยินดีต้อนรับข้อมูลเพิ่มเติม
  • Citrus --- ไม่มีข้อมูลเกี่ยวกับ Citrus มากนัก AS3 game engine ที่สามารถสร้างสำหรับ iOS, Android, Windows, Mac และอื่น ๆ
  • Haxe + OpenFL - OpenFL (Haxe) สร้างขึ้นเป็นแบบเนทีฟในหลาย ๆ แพลตฟอร์มไม่ใช่เฉพาะกับ Flash Windows, Mac, Linux และ Android ทั้งหมดได้รับการปรับใช้แบบเนทีฟหรือ OpenFL runtime ที่เรียกว่า Neko ซึ่งตามทฤษฎีแล้วเร็วกว่า Flash และ SDL 2.0 จะเปิดใช้งานการปรับใช้ iOS ในไม่ช้า (ish) - ขอบคุณ Bojan
  • Qt-Project - เพียงเชื่อมโยงโครงการ Qt ที่นี่ก็สามารถสร้างได้ทุกอย่างและมีชุมชนขนาดใหญ่ที่มีไลบรารีของบุคคลที่สามมากมายที่จะช่วยคุณได้มากขึ้น
  • Moai --- เอ็นจิ้น Lua ตัวเดียวที่ฉันรู้ว่าสามารถสร้างสำหรับเดสก์ท็อปและมือถือ ข้อเสียเพียงอย่างเดียวคือชุมชนไม่ใหญ่และเอกสารไม่ดีที่สุด แต่ถ้าคุณผ่านได้นี่เป็นทางออกที่ดีและเป็นวิธีที่ฉันกำลังใช้อยู่
  • Adobe --- อย่าลืมเพิ่ม adobe ที่นี่เพราะสามารถสร้างได้ทุกอย่างที่รองรับ flash
  • Unity3D - การรวม 2D ที่ประกาศเมื่อเร็ว ๆ นี้มีแนวโน้มที่ดีมากควรเปิดตัวในไตรมาสที่ 3 ถึงไตรมาสที่ 4 ของปี 2556
  • Cocos2d-x - เอ็นจิ้นโอเพนซอร์ส รองรับ JS, Lua, C ++ และหลายแพลตฟอร์ม
  • Html5 --- ดูเหมือนจะมีการให้ความสำคัญกับแอพมือถือ html5 มากนี่เป็นเพียงเครื่องมือบางอย่างที่ฉันพบว่าสามารถช่วยพอร์ตโครงการ html5 ของคุณไปยังแพลตฟอร์มได้:

    1. ฝังโครเมียม

    2. เซนฉะ

    3. Phonegap

    4. Appcelerator / ไทเทเนียม

    5. ไอซีเนียม

ดังนั้นฉันยินดีเป็นอย่างยิ่งหากคุณสามารถแสดงความคิดเห็นจากประสบการณ์ของคุณเกี่ยวกับเครื่องยนต์ใด ๆ และแนะนำว่าคุณจะแนะนำตัวใด ขอขอบคุณสำหรับความช่วยเหลือของคุณ!

แก้ไข: เนื่องจากหัวข้อนี้ได้รับความนิยมฉันจะเพิ่มตัวเลือกอื่น ๆ ที่ฉันพบเมื่อเวลาผ่านไป ฉันขอแนะนำให้คุณเลือกสิ่งที่คุณคุ้นเคยและเหมาะกับความต้องการของโครงการมากที่สุด


1
OpenFL (Haxe) สร้างขึ้นมาเป็นแบบเนทีฟในหลาย ๆ แพลตฟอร์มไม่ใช่เฉพาะกับ Flash Windows, Mac, Linux และ Android ทั้งหมดได้รับการปรับใช้แบบเนทีฟหรือ OpenFL runtime ที่เรียกว่า Neko ซึ่งตามทฤษฎีแล้วเร็วกว่า Flash และ SDL 2.0 จะเปิดใช้งานการปรับใช้ iOS ในไม่ช้า (ish) Loom มีลักษณะคล้ายกัน (พยายามดึงดูดนักพัฒนา Flash) ตรงที่ใช้ ECMAScript เหมือน AS3 แต่ไม่ได้สร้างโค้ดเนทีฟจากมัน อย่างไรก็ตามมันใช้ Cocos2D ในการเรนเดอร์ดังนั้นในทางทฤษฎีควรจะเร็วเท่ากับ Cocos2D
Bojan Markovic

2
คุณควรเพิ่ม Cocos2d-X ในรายการ: cocos2d-x.org
Clay

คุณควรตรวจสอบ UDK โดย Epic Games อย่างชัดเจน มันเป็นเอนจิ้น AAA เต็มรูปแบบที่มุ่งเป้าไปที่ moders และ Indie Developers น่าเสียดายที่ตอนนี้ไม่รองรับ Android แม้ว่าพวกเขาจะให้สิทธิ์ใช้งาน UE4 เต็มรูปแบบมากขึ้นซึ่งรองรับ Android โปรดทราบว่า UE4 เพิ่งเปิดตัวและ UDK ค่อนข้างเป็นแพลตฟอร์มที่พัฒนาแล้ว
Igor Čordaš

นอกจากนี้หากคุณต้องการบางสิ่งบางอย่าง Open Source และแบบพกพา (อิงตาม Java) โปรดดู jMonkeyEngine
Igor Čordaš

คำตอบ:


9

ฉันอยากจะแนะนำV-Play (v-play.net) ซึ่งเป็นเอนจิ้นเกมข้ามแพลตฟอร์มที่ใช้ Qt สำหรับ iOS, Android, Symbian, MeeGo, Blackberry10 และยังสามารถส่งออกสำหรับแอปพลิเคชันเดสก์ท็อปดั้งเดิมสำหรับ Windows, Mac และ Linux

ก็ขึ้นอยู่กับ C ++ แต่มีการสนับสนุนการเขียนสคริปต์เรียบร้อยสำหรับQML และ JavaScript QML เป็นเกมง่ายๆในการเรียนรู้และสามารถเพิ่มประสิทธิภาพการทำงานของคุณได้เนื่องจากจำเป็นต้องใช้โค้ดน้อยลงเพียงดูการเปรียบเทียบกับcocos2d-x (Loc น้อยกว่า 60%) หรือCorona ( LoCน้อยกว่า15%) เพื่อเปรียบเทียบกับเกมเดียวกัน

(Disclaimer: ฉันเป็นหนึ่งในคนที่อยู่เบื้องหลัง V-Play)


1
ในขณะที่ฉันแน่ใจว่า V-Play เป็นผลิตภัณฑ์ที่ยอดเยี่ยม แต่คุณควรระบุข้อจำกัดความรับผิดชอบว่าคุณเป็นผู้ร่วมก่อตั้ง ดู: meta.stackexchange.com/a/59302
Nepoxx

1
แน่นอน - ฉันเพิ่งเพิ่ม
Christian Feldbacher

7

หากคุณกำลังใช้ Python Kivyเป็นทางออกที่ยอดเยี่ยมในทุกวันนี้ มันรวบรวมไปยังแพลตฟอร์มทั้งหมดที่คุณต้องการ:

Kivy ทำงานบน Linux, Windows, MacOSX, Android และ IOS คุณสามารถเรียกใช้รหัสเดียวกันบนแพลตฟอร์มที่รองรับทั้งหมด สามารถใช้โปรโตคอลและอุปกรณ์อินพุตเกือบทั้งหมดเช่น WM_Touch, WM_Pen, MacOS X Trackpad และ Magic Mouse, Mtdev, Linux Kernel HID, TUIO มีโปรแกรมจำลองเมาส์แบบมัลติทัช

Kivy ใช้โค้ดที่ปรับให้เหมาะสมจำนวนมากสำหรับการแสดงผลกราฟิก (ผ่าน Cython) ดังนั้นจึงรวดเร็วเช่นกัน

นี่คือSpeakerdeckที่ให้ความเป็นมาและภาพรวม (เฉพาะ Android)


ในขณะที่ kivy สามารถใช้สำหรับนักพัฒนาเกมได้ แต่ก็ไม่ได้เป็นเอนจินเกมที่แน่นอน แต่ kivyent (kivent.org) เป็นเอนจินเกมที่ใช้ kivy ซึ่งอาจจะเหมาะสมกว่าเว้นแต่ว่าเกมของคุณจะเรียบง่ายมากและไม่ ต้องการความซับซ้อนเพิ่มเติม
Tshirtman

6

แล้วHaxeFlixelล่ะ? เรามีการสาธิตให้เลือกมากมายและแน่นอนว่ารองรับการพัฒนาข้ามแพลตฟอร์มผ่าน Haxe + OpenFL นี้เป็นโครงการที่มาเปิดโฮสต์บนGitHub เรารองรับแพลตฟอร์มหลัก ๆ ทั้งหมด (รวมถึง iOS)


5

นี่คือของฉันเกมกรอบOxygine เป็นเฟรมเวิร์ก 2D C ++ ที่เร่งด้วยฮาร์ดแวร์สมัยใหม่แบบโอเพนซอร์สสำหรับแพลตฟอร์มมือถือและพีซี คุณสมบัติ: OpenGL (ES) 2, พื้นผิวที่บีบอัด, แผนที่, ภาพเคลื่อนไหวที่ซับซ้อน / tweens / สไปรต์, กราฟฉาก, แบบอักษร, การจัดการเหตุการณ์, เครื่องมือสร้างและอื่น ๆ สามารถสร้างขึ้นจาก SDL2 หรือ Marmalade SDK

ในพื้นฐานของเครื่องยนต์มีกราฟฉากซึ่งคล้ายกับแฟลช พูดสั้น ๆ คุณสามารถเรียกสิ่งนี้ว่า Flash สำหรับ C ++ ได้ แต่สะดวกสบายกว่าและเร็วกว่า ในขั้นต้นได้รับการพัฒนาสำหรับแพลตฟอร์มมือถือ (iOS, Android) แต่ยังสามารถใช้กับเกมพีซีได้

ใส่คำอธิบายภาพที่นี่


ฉันได้ลองใช้แล้ว (และออกผลิตภัณฑ์เกมสำเร็จรูป) ทำงานได้ดีมาก!
จัสเตอร์

4

ไม่มีการพูดถึงApp Game Kit (AGK)ที่นี่ดังนั้นให้ฉันเติมช่องว่าง เป็น SDK ข้ามแพลตฟอร์ม 2D ส่วนใหญ่ที่ให้คุณเขียนโค้ดได้ครั้งเดียวในภาษา C ++ หรือเป็นภาษา "พื้นฐาน" เวอร์ชัน 2 เพิ่งได้รับเงินทุนมากกว่า 400% ใน Kickstarter และจะมีการรองรับ 3 มิติเต็มรูปแบบรองรับ Spine (สำหรับตัวละครที่เคลื่อนไหว 2 มิติ) ฟิสิกส์กระสุนและคุณสมบัติใหม่อื่น ๆ ทั้งหมด

มี Facebook, Twitter, คำสั่งเซ็นเซอร์ Ultrabook, Box2D และอื่น ๆ อยู่แล้ว ฉันใช้มาตั้งแต่แรกและชอบมาก (บอกได้ไหม) ไม่ฉันไม่ได้ทำงานให้กับThe Game Creators (บริษัท ที่สร้างมันขึ้นมา) แม้ว่าฉันจะยอมรับว่าฉันทำบางแอปไปสักพักแล้ว

หนึ่งในคุณสมบัติที่ดีที่สุดจากมุมมองของฉันคือคุณสามารถพัฒนาบน Windows และถ่ายทอดจาก IDE ผ่าน Wi-Fi ไปยังอุปกรณ์ที่รองรับดังนั้นในขณะที่ฉันกำลังเขียนโค้ดฉันสามารถทดสอบโค้ดของฉันบน iPad, Android ได้ (ภายในไม่กี่วินาที) Windows, Mac หรือ Blackberry Playbook


4

หากคุณมีพื้นหลัง C # ดูที่ Duality

Dualityคือเฟรมเวิร์กเกม 2 มิติที่ยืดหยุ่นซึ่งเขียนด้วยภาษา C # ทั้งหมดและที่นี่เพื่อทำให้สิ่งต่างๆง่ายขึ้นสำหรับคุณ มีทั้งเอนจิ้นเกมที่ขยายได้และโปรแกรมแก้ไขภาพเพื่อให้เข้ากัน ไม่จำเป็นต้องมีตัวแก้ไขระดับสภาพแวดล้อมการทดสอบหรือตัวจัดการเนื้อหาเพราะความเป็นคู่คือทั้งหมดนั้นด้วยตัวมันเอง และที่ดีที่สุดคือฟรี


1
นอกจากนี้ยังดี ฉันจะเพิ่มลงในรายการในเร็ว ๆ นี้และอีกสองสามอย่างที่ฉันได้ค้นพบพร้อมกับการจัดระเบียบให้ดีขึ้น ขอบคุณสำหรับข้อมูลของคุณ
Hate Names

สามารถใช้งานข้ามแพลตฟอร์มได้หรือไม่?
JCPhlux

2
@JCPhlux ใช่แล้ว ฉันไม่แน่ใจเกี่ยวกับมือถือ แต่มันทำงานบนโมโน
Andy

นั่นคือสิ่งที่fetzenet.de/blog/?page_id=697 ? ทำไมไม่เป็นduality.adamslair.net
RS

แก้ไขแล้ว. ฉันคิดว่าพวกเขาย้ายไปไม่นานหลังจากที่ฉันโพสต์คำตอบ - github.com/AdamsLair/duality/issues/45
Andy

2

ฉันแค่ตอบคำถามเพื่อให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการใช้ SDL อย่างที่คุณเคยพูดไว้ก่อนหน้านี้ว่ามันไม่ใช่เกมเอนจิ้น (มันเป็นแค่ไลบรารีจริงๆ) นอกจากนี้มันไม่ได้มุ่งเน้นไปที่วัตถุเลยและคุณไม่มีสิ่งอำนวยความสะดวกในการเคลื่อนไหวง่ายๆ (คุณต้องเขียนโค้ดด้วยตัวเอง)

มันทำงานอย่างไร (ฉันใช้เวอร์ชัน C แต่ฉันเดาว่าการผูก Lua น่าจะคล้ายกัน):

รวมส่วนหัวที่จำเป็นในการสร้างโครงการบนแพลตฟอร์มที่คุณต้องการ

ออกแบบลูปเกมของคุณเองซึ่งคุณจะตั้งค่า (อย่างน้อย) ระบบประมวลผลเหตุการณ์ทั้งหมดผู้จัดการอัตราเฟรมและ "ตัวล้างหน้าจอ (หรือตัวอัปเดต)" (ฉันยืนยันในความจริงที่ว่าคุณต้องรีเฟรชหน้าจอด้วยตนเอง โดยใช้รูทีน SDL_flip_screen ซึ่งเป็นสิ่งที่คุณไม่กังวลเลยกับ Corona)

จากนั้นเขียนโค้ดเกมของคุณโดยใช้ "กลไก" ทั้งหมดที่คุณสร้างไว้ก่อนหน้านี้

SDL เป็นไลบรารีระดับต่ำ (อย่าคาดหวังว่าจะมีกรอบ GUI ที่ใช้งานง่ายหรือเช่นกรอบโครงเรื่องของ Corona)

ในที่สุดไลบรารีนี้ถูกใช้เพื่อพอร์ต Civilization III ไปยัง Linux ดังนั้นใช่มันใช้งานได้ แต่จะขอให้คุณมีพลังงานมากพอที่จะมีบางอย่างเหมือนที่คุณมีกับ Corona;)

PS: ฉันไม่ใช่เจ้าของภาษาอังกฤษโปรดแจ้งให้เราทราบหากฉันไม่ชัดเจน :)


2

Gideros เป็นเอนจิ้นข้ามแพลตฟอร์ม 2d บน Lua ที่ยอดเยี่ยมซึ่งปัจจุบันรองรับทั้งแพลตฟอร์ม Android และ IOS แต่จะมีอีกมากมายที่จะตามมา และยังมีคุณสมบัติที่ยอดเยี่ยมเช่นการทดสอบอุปกรณ์การปรับขนาดอัตโนมัติและความละเอียดของภาพอัตโนมัติเพื่อกำหนดเป้าหมายขนาดหน้าจอต่างๆได้อย่างง่ายดายรวมถึงตัวเลือกในการขยายแต่ละแพลตฟอร์มผ่านปลั๊กอินเนทีฟ


1

คุณยังมีShiVa3Dซึ่งเป็นคู่แข่งที่สำคัญของ Unity3D มันใช้ Lua และรองรับหลายแพลตฟอร์มตั้งแต่มือถือไปจนถึงเกมคอนโซลและเว็บเบราว์เซอร์

ใช้งานง่ายมากและ UI ที่ดีมากในการทำงานด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.