2D Gaming Libraries / Frameworks / Engines สำหรับ Android [ปิด]


คำตอบ:


62

แก้ไข: PSA: โปรดจำไว้ว่าคำตอบนี้เขียนขึ้นในปี 2012 และ 3 ปีต่อมามีเครื่องยนต์จำนวนมากและมีจำนวนมากที่ทำขึ้นเพื่ออุปกรณ์มือถือโดยเฉพาะ อย่าใช้คำตอบนี้เพื่อรับสิทธิ์และค้นหา google สำหรับเครื่องมือล่าสุด


ฉันพอร์ต Irrlicht บน Android และใช้สำหรับเกม 2D มันไม่ใช่ทางออกที่ดีที่สุด แต่ฉันมีผลงานที่แข็งแกร่ง ฉันลองใช้ Java Frameworks มากมาย แต่ Garbage Collector สามารถทำให้เกมของคุณช้าลงในช่วง 0.2s บนโทรศัพท์ G1 ... ดังนั้นเฟรมเวิร์กควรทำการจัดสรรอย่างระมัดระวัง

เฟรมเวิร์ก C ++ เชิงพาณิชย์:

  • unity3D : ดีมาก (มีให้ใน Android, iOS, เว็บ, Windows, OS X) [เกม: Rocket Bunnies]
  • Unreal Engine (เชิงพาณิชย์): เอ็นจิ้นที่ดีที่สุด แต่ไม่ใช่สำหรับผู้เริ่มต้น [เกม: Dungeon Defenders]

กรอบ C ++ ของโอเพ่นซอร์ส:

  • SDL : ห้องสมุด C ที่ดีที่สุดสำหรับเกม dev, โอเพ่นซอร์สและข้ามแพลตฟอร์ม (รวมอุปกรณ์พกพา)
  • Ogre3D : เอ็นจิ้นโอเพ่นซอร์ส 3d ที่ดีที่สุด แต่เป็นกรอบขนาดใหญ่
  • Irrlicht : ประสิทธิภาพที่ดี, กรอบแสง [เกม: Moblox]
  • Linderdaum Engine : โอเพ่นซอร์สสำหรับ Windows และ Android
  • Cocos2d-x : โอเพ่นซอร์สข้ามแพลตฟอร์ม

Java Open Source Frameworks:

  • LibGDX : โอเพ่นซอร์ส, เป็นที่นิยมมาก, รองรับหลายแพลตฟอร์ม, รองรับ Tiled, Box2D และอื่น ๆ , เอกสารที่ดี
  • AndEngine (โอเพ่นซอร์ส): ประสิทธิภาพที่ดี สำหรับเอกสารให้ดูตัวอย่างและอ่านซอร์สโค้ด แต่มันเป็นห้องสมุดฟรีเพื่อเริ่มโครงการเกม [Game: Drop Block]
  • cocos2dสำหรับ Android: ปัญหาตัวเก็บรวบรวมขยะ
  • rokon : ประสิทธิภาพที่ดีและออกแบบมาสำหรับมือถือ แต่โครงการดูเหมือนจะตายแล้ว

เครื่องยนต์ฟิสิกส์:

  • box2d (OpenSource): ง่ายและรวดเร็ว
  • jbox2d (OpenSource): ดังนั้นช้าบน Java ที่ฉันทำ JNI wrapper กับ SWIG เพื่อใช้ native box2d (AndEngine ทำเช่นเดียวกัน)
  • chipmunk (OpenSource): เร็ว แต่ฉันชอบ box2d
  • bullet (OpenSource): เอ็นจิ้น 3 มิติที่ยอดเยี่ยม

คำเตือนด้วย Froyo และ JIT ไลบรารี Java จะทำงานได้ดีขึ้นมาก แต่ปัญหาของตัวเก็บรวบรวมขยะนั้นใช้ได้เสมอ เมื่อใช้ Gingerbread ตัวรวบรวมขยะจะต่อเนื่องดังนั้นจึงไม่มีปัญหา


1
ฉันต้องการเพิ่ม cocos2d-x มันเป็นสิทธิ์การใช้งานของ MIT และทำงานได้ทั้งกับ Android, iOS และ Windows Phone ฉันเชื่อว่านี่แตกต่างจากที่กล่าวไว้ข้างต้นเนื่องจากนี่เป็นเฉพาะใน C ++ ไม่ใช่ Java
Jamornh

AndEngine ยืม wrapper ของ box2d จาก libgdx
Matsemann

6
Unity3d ไม่ใช่ C ++ รองรับ C #, ภาษาจาวาสคริปต์และ boo
lhk

แน่นอนคุณสามารถทำมันผ่านพื้นเมืองถ้าคุณต้องการเช่นกัน คนที่ทำคำจิ๋วทำjmoses.co/2014/10/23/…
จอห์นโมเสส

1
SDL ไม่ใช่ Java; มันคือ C Java ที่คุณอาจเคยเจอคือเสื้อคลุม / การผูกที่โทรเข้ามาในรหัส C ไม่มีฟังก์ชั่นการทำงานของเอ็นจินเกิดขึ้นใน Java
Slipp D. Thompson

24

ฉันประหลาดใจที่ไม่มีใครพูดถึง libgdx http://code.google.com/p/libgdx/


libgdx และ AndEngine นั้นดีที่สุดสำหรับ 2d คุณสามารถหาลิงค์
michael

@michael กวดวิชาฟอรั่ม AndEngine เหนียว: เพียงใช้ทางแยกของ AndEngine ... ปัญหามากข้อบกพร่อง ฉันไม่แนะนำให้เรียนรู้จากที่นั่น
matheszabi

11

AndEngineนั้นค่อนข้างใหม่ แต่ก็เป็นโอเพ่นซอร์สและดูมีแนวโน้ม

Self-คำอธิบาย:

ฟรีเอ็นจิ้นเกม OpenGL สำหรับ Android 2D AndEngine พัฒนาโดย Nicolas Gramlich


1
ฉันได้ทำการทดลองเล็กน้อยในเรื่องนี้มาจาก Cocos2d บน iPhone และมันก็ดูดีทีเดียวสำหรับเกม 2D ที่มีผีสาง โครงการดูเหมือนจะเปิดใช้งานและมีชุมชนฟอรัมที่เหมาะสม
แขกที่แมตต์

เกี่ยวกับ AndEngine ... ฉันเริ่มสร้างเกมขั้นพื้นฐานและหลังจากนั้นฉันก็เริ่มค้นหาคำวิจารณ์เชิงลบเกี่ยวกับ AndEngine โดยเฉพาะประสิทธิภาพของเกมที่มีสไปรต์มากมาย ดังนั้นฉันจึงทำการทดสอบและเพิ่ม 20 sprite ลงในเกมของฉันในขณะที่ยังอยู่ในช่วงต้น dev ฉันทำทุกอย่าง "ตามหนังสือ" และมันเกือบจะฆ่า HTC ปรารถนา Z ของฉันค่อนข้างผิดหวังและเปลี่ยนไปใช้ LibGDX

@AscensionSystems ฉันไม่รู้ว่าคุณทำอะไรที่นั่น แต่ฉันรู้ว่าคุณทำผิด ด้วย Desire Z คุณสามารถมี Sprites ที่เคลื่อนไหวได้หลายร้อยบนหน้าจอ เพียงเรียกใช้การวัดประสิทธิภาพในตัวอย่างและคุณจะเห็นวิธีการทำอย่างถูกต้อง
Nicolas Gramlich

ขอบคุณ Nicolas ฉันซาบซึ้งกับความจริงที่ว่าคุณ "ติดอยู่" กับเครื่องยนต์ของคุณ แต่จริงๆแล้วฉันไม่ได้ทำอะไรผิด มันมีบางอย่างเกี่ยวกับ android และบั๊กที่มีกับการโทรของ VBO ก็ทำให้เกิด GC ฉันสามารถทำให้ andengine ทำงานได้ดีโดยการปิดการใช้งาน VBO แต่นั่นก็ทำให้โทรศัพท์ของฉันร้อนมากมันจะผิดพลาดหลังจากเล่นไปประมาณ 5 นาที ฉันมีปัญหาเดียวกันกับ libGDX ดังนั้นฉันจึงเขียนโปรแกรมของตัวเองใน C ++ นอกจากนี้คุณไม่สามารถรับ "หลายร้อย" บนหน้าจอโดยใช้แอปตัวอย่าง ฉันจะได้รับประมาณ 90 128x128, สไปรต์ทางกายภาพ 2 เฟรม "" ก่อนที่มันจะทำให้เครื่องยนต์ของคุณช้า

(ต่อเนื่อง) ... ในเครื่องมือของฉันฉันจะได้รับสไปรต์ทางกายภาพเคลื่อนไหว 170, 512x512, 16 "เฟรม" บนหน้าจอก่อนที่ฉันจะเห็นเฟรมของฉันเริ่มที่จะลดลงต่ำกว่า 60 เฟรมต่อวินาที

8

ฉันคิดว่าคุณสามารถใช้เกมReplica IslandจากChris Pruettเป็นตัวอย่างของเกม 2d ฉันคิดว่ามันควรจะเป็นพื้นฐานสำหรับเกมอื่น ๆ ตามที่ได้อธิบายไว้ในนี้วิดีโอจาก Google I / O 2010 คุณจะได้ดูเกมที่นี่


ใช่นั่นเป็นวิดีโอที่ดีคุ้มค่ากับการดูโดยเฉพาะอย่างยิ่งเมื่อเขาพูดถึงประสิทธิภาพ
Spidey

7

Unity3D (ซึ่งในทางเทคนิคสามารถนำมาใช้เพื่อสร้างเกม 2D) คือ "เร็ว ๆ นี้" สำหรับ Android: http://unity3d.com/


ใช่ฉันเห็นด้วยทั้งหมด ประการที่สองถ้าคุณจ่ายค่าลิขสิทธิ์ Unity3D คุณสามารถเผยแพร่งานเดียวกันสำหรับหลายแพลตฟอร์มได้ ดังนั้นคุณเริ่มต้นด้วยลิขสิทธิ์ WINDOWS / MAC ฟรี เรียนรู้โปรแกรม จากนั้นอัปเกรดสิทธิ์ใช้งานเป็นแพลตฟอร์มที่คุณเห็นว่าเหมาะสมก่อน แม้ว่า Android ในปัจจุบันเป็นรุ่น PRO เท่านั้นซึ่งหมายความว่าคุณต้องการ Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK

หลังจากทำเกม 2D 2D 10-15 เรื่องโดยใช้ Cocos2D สำหรับ iOS ฉันทำเกมหนึ่งโดยใช้ Unity 4.6 และมันก็เป็นประสบการณ์ที่แย่มากช้าและบั๊กกี้ - สำหรับ iOS - ไม่สามารถพูดอะไรเกี่ยวกับประสิทธิภาพของแพลตฟอร์มอื่น ๆ ได้ในขณะที่ 4.6 ดีขึ้นมาก ทำงานร่วมกับสิ่งต่าง ๆ 2 มิติตั้งแต่ก่อนหน้านี้มันไม่มีที่ใดใกล้กับเครื่องมือการแสดงผล 2D เฉพาะเช่น Cocos2D หรืออาจเป็นอย่างอื่น ประสิทธิภาพแย่มากและพวกเขายังคงต่อสู้ด้วย iOS 64 บิตที่รองรับ แน่นอนว่าความแข็งแกร่งของหลายแพลตฟอร์มนั้นแข็งแกร่งที่สุด ...
จอนนี่




4

ปัจจุบันมีพอร์ต Android ของSDL ที่กำลังดำเนินการอยู่และ SDL น่าจะเป็นเฟรมเวิร์กกราฟิก 2D ที่ดีที่สุด มันถูกออกแบบโดยหนึ่งในผู้นำของ Blizzard ดังนั้นคุณจึงรู้ว่าความเชี่ยวชาญที่แท้จริงในการสร้างเกมได้เข้ามา


3

SIO2 Game Engine เพิ่งเปิดตัวเวอร์ชั่นใหม่พร้อมการรองรับ Android เต็มรูปแบบ คุณสามารถสร้างเกม 2D และ 3D โดยใช้มันและพอร์ตระหว่างแพลตฟอร์มที่แตกต่างกัน http://sio2interactive.com


3

+1 สำหรับ Slick2D - ฉันทำไปเล็กน้อยแล้วและดูเหมือนว่าจะค่อนข้างแข็งแกร่ง นักพัฒนาซอฟต์แวร์ได้เปิดตัวเกม Android สองเกมซึ่งมีพื้นฐานมาจากมัน
mrohlf

2

ฉันกำลังทำงานกับเอ็นจิ้นเกมโอเพนซอร์ซ 2d ชื่อYoghurtGumซึ่งควรจะเป็นสำหรับ Windows Mobile และ Android อย่างไรก็ตามการย้ายทุกสิ่งไปยัง Android C ++ ได้พิสูจน์แล้วว่ายากมาก

นี่เป็นคำตอบที่ไม่ช่วยเหลือมากที่สุดเท่าที่ฉันเคยรู้


2

หากคุณชอบพัฒนา AIR สำหรับ Android คุณสามารถใช้ Flash ได้ Flash เองไม่มีคุณสมบัติเฉพาะของเกมจริงๆ แต่ด้วยความสำเร็จของ Flash บนเว็บทำให้มีห้องสมุดบุคคลที่สามจำนวนมากที่ออกแบบมาสำหรับเกมโดยเฉพาะ

เฟรมเวิร์กของบุคคลที่สามที่เป็นที่นิยมมากขึ้นสำหรับเกมใน Flash ได้แก่ Flixel (http://flixel.org/) และ PushButtonEngine (http://pushbuttonengine.com/) ซึ่งได้รับการออกแบบมาเพื่อการพัฒนาเกมอย่างสมบูรณ์ Flash ยังมี Box2D รุ่นหนึ่ง (เครื่องยนต์ฟิสิกส์ที่กล่าวถึงข้างต้น - http://box2dflash.sourceforge.net/ ) และมีไลบรารี 3 มิติต่าง ๆ เช่น Papervision (http://code.google.com/p/papervision3d/) ถ้าคุณต้องการที่จะลงไปที่ถนนในอนาคต

อย่างไรก็ตามข้อเสียเปรียบหลักของการพัฒนาใน AIR ก็คือฉันค่อนข้างแน่ใจว่าคุณจะต้องกำหนดเป้าหมาย Froyo 2.2 หรือใหม่กว่าดังนั้นโทรศัพท์มือถือรุ่นเก่าจะถูกทิ้งไว้


นอกจาก AndEngine ฉันได้เล่นกับ AIR สำหรับ Android Betas และพวกเขาก็ค่อนข้างดีถ้าช้าหน่อย ฉันคิดว่ามันจะทำงานได้ดีสำหรับเกมกลยุทธ์หรือเกมแอ็คชั่นที่ไม่มีองค์ประกอบมากเกินไป ฉันทำงานกับเบต้าใน 2.1 อยู่แล้วดังนั้นการออกรุ่นสุดท้ายในวันที่ 2.2 อาจเร็วมากฉันยังไม่แน่ใจ มีอะไรให้ดูอย่างแน่นอน
ผู้เยี่ยมชมแมตต์

1

Cocos2D-xเป็นพอร์ตของCocos2D สำหรับ iPhone ที่เขียนด้วย C ++ ซึ่งมีเป้าหมายเป็นAndroid NDKและได้รับการพัฒนาอย่างแข็งขันเพื่อให้ได้คุณสมบัติที่เท่าเทียมกับเวอร์ชั่น iPhone มันจะไม่มีปัญหาในการรวบรวมขยะและคุณจะได้รับพอร์ตที่ค่อนข้างง่ายสำหรับ iOS, Win32 และอาจเป็น OSX ในที่สุดในอนาคตอันใกล้


0

PlayNเป็นเฟรมเวิร์กเกม 2D หลากหลายแพลตฟอร์มที่กำหนดเป้าหมาย Android นอกเหนือจาก HTML5, Flash และ JVM มันค่อนข้างใหม่ แต่ถูกใช้เพื่อเขียนการใช้ HTML5 ของ Angry Birds และมีชุมชนที่ใช้งานได้ดีพอสมควร

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