Công cụ trò chơi đa nền tảng 2D cho Android và iOS? [đóng cửa]


262

Tôi đã làm việc một thời gian với Unity3d và thấy đó là phần 2D với OnGUI () hoặc GUITextures quá vụng về. Ngoài ra, ngay cả một trò chơi nhỏ nhất được thực hiện trên Unity3d cũng có ít nhất 10 MB tải xuống, quá nhiều cho trò chơi 2D.

Vì vậy, tôi hiện đang tìm kiếm một công cụ cho 2D. Tôi đã thử Cocos2D nhưng chỉ có iOS và tôi không muốn viết lại mọi thứ sang ngôn ngữ khác cho Android (vì vậy, ví dụ cổng Java của Cocos2d cho Android không phải là một tùy chọn). Thay vào đó, tôi muốn viết mã một lần và ít gặp rắc rối nhất khi triển khai nó trên iOS, Android và có thể cả Windows Phone 7. Tôi có cả Mac và Windows.

Để chi tiết hơn, đây là những yêu cầu của tôi đối với động cơ:

  • phải đa nền tảng
  • phải hiệu quả
  • phải là C ++, Java, C # hoặc Objective C vì tôi cảm thấy thoải mái với chúng và KHÔNG phải Flash, Javascript, HTML5 vì tôi không phải là nhà phát triển web
  • phải có một cộng đồng lớn, hướng dẫn, thư viện bổ sung bao gồm hầu hết những thứ bạn có khi phát triển trực tiếp trên iOS hoặc Android (thanh toán trong ứng dụng, facebook, v.v.)
  • gói giao cuối cùng phải không quá lớn
  • động cơ có thể miễn phí, nhưng tôi cũng không ngại trả giá hợp lý

Tôi đã tìm thấy các công cụ sau:

  • Marmalade (và động cơ của IwGame trên đầu trang) - C ++, đã tìm thấy những đánh giá tổng thể rất tích cực về Marmalade nhưng không chắc chắn về IwGame. EDIT (Tháng 3 năm 2013) : Có vẻ như Marmalade SDK hiện bao gồm Cocos2Dx và một số IDE được xây dựng giúp nó tốt hơn nhiều (và chi phí 150 đô la mỗi năm cho nhà phát triển độc lập phù hợp với tôi).
  • SDK SDK - Lua (nghi ngờ hiệu quả), cũng cần kết nối internet để biên dịch mã
  • Cocos2d-x - C ++, đã nhận được rất nhiều đánh giá từ các nhà phát triển, chủ yếu là tích cực và nhiều người cho rằng nó tốt nhất cho 2D
  • Mã hạt - Java + Eclipse, không tìm thấy đánh giá hoặc nhận xét nào
  • Moai - Lua, không tìm thấy bất kỳ đánh giá / ý kiến ​​nào về nó
  • Động cơ khỉ - dường như có quá ít tính năng
  • Haxenme - đó là Flash, tôi chưa bao giờ sử dụng nó và không muốn
  • sử dụng Unity3d nhưng với các gói 2D như Bộ công cụ 2D
  • các cổng SDL sang Android (cũng ở đây ) và iOS - dường như không có nhiều hỗ trợ hoặc phát triển hiện tại (?)
  • GLBasic - Ngôn ngữ cơ bản, tôi không thích nó
  • playN - dường như được phát triển sớm (?)
  • Gamvas - HTML5, không giống như một công cụ trưởng thành đối với tôi
  • Ignifuga - Python, trông cũng không trưởng thành
  • ORX - không chắc nó vẫn được phát triển (?)
  • Xây dựng 2 - nhắc nhở GameMaker, có thể ổn đối với các nguyên mẫu nhanh nhưng chắc chắn không dành cho các trò chơi cấp ngành
  • XNA và sau đó chuyển trò chơi bằng ExEn (sẽ cần Mono Touch để chuyển sang iOS và Mono cho Android để chuyển sang Android) - C #, và có lẽ nhiều người nghĩ đến từ các sản phẩm của Microsoft như xBox (tôi đến từ Android). Ngoài ra, những công cụ Mono đó có giá tổng cộng 800 đô la cho các nhà phát triển nhỏ
  • Tác động - JavaScript, sử dụng HTML5. Tôi không biết nhiều về JavaScript (ví dụ: C # ưa thích trên Unity3d), cũng không chắc về hiệu quả vì nó chạy trong trình duyệt (?)
  • GameMaker - ngôn ngữ kịch bản riêng GML và tôi thực sự nhớ cái này như một công cụ cho những người không lập trình. Nó đã thực sự phát triển thành một động cơ thực sự, ý tôi là cho sự phát triển nghiêm túc?
  • AppGameKit - C ++, nhưng dường như vẫn còn khá mới. Không tìm thấy bất kỳ đánh giá về nó
  • sử dụng Cocos2D và Objective C để chỉ phát triển cho iOS và sau đó tạo APK cho Android bằng cách sử dụng Stella SDK . Có ai đã làm điều này? Tôi khá chắc chắn rằng sẽ có những hạn chế, còn về việc thanh toán trong ứng dụng, tích hợp AdMob và Facebook trên Android thì sao?
  • Moscrif - JavaScript, có vẻ như nhiều hơn cho các nhà phát triển web trước đây
  • Starling - Flash 11, tôi không thích Flash nhiều
  • ND2D - chưa 1.0, nó có nhiều tính năng không?

Vì vậy, tôi rất vui nếu bạn có thể nhận xét từ trải nghiệm của mình với các công cụ và đề xuất cái nào trong danh sách (hoặc bất cứ thứ gì khác mà tôi đã bỏ lỡ) là tốt nhất cho các yêu cầu được mô tả. Tôi cũng có thể sai với ấn tượng đầu tiên của tôi về một số động cơ.

Tôi hiện đang nghĩ về Marmalade + IwGame là lựa chọn tốt nhất nhưng vì tôi không có nhiều thông tin về mã Cocos2d-x và hạt, tôi không thực sự chắc chắn về nó.

Cảm ơn bạn!

EDIT (tháng 6 năm 2013): Cho đến nay tôi đã thực hiện 2 trò chơi 2D đa nền tảng và sử dụng Unity3D với plugin 2D Toolkit cho cả hai. Đối với trò chơi có GUI đơn giản, tôi đã sử dụng một hệ thống GUI tự tạo đơn giản dựa trên chính Unity. Đối với một phức tạp hơn (ví dụ: nơi các thành phần GUI có thể chồng lấp) Tôi đã sử dụng plugin NGUI. Gần đây, Bộ công cụ 2D đã bổ sung thêm một số lớp cho GUI, rất tiện dụng vì người ta phải sử dụng 2 hệ thống khác nhau để tạo kết cấu khi kết hợp NGUI với Bộ công cụ 2D. Tôi chắc chắn sẽ thử cái đó trong trò chơi 2D tiếp theo. Lý do chính để chọn Unity3D cho các trò chơi 2D là tôi đã đi sâu vào Unity3D cả về kinh nghiệm và các đoạn mã tích lũy để sử dụng lại. Ngoài ra, tôi đã mua Unity3D pro (với Android Pro và iOS Pro) cho các trò chơi 3D và nó hoàn toàn có ý nghĩa khi chỉ phải trả thêm 60 đô la cho Bộ công cụ 2D để có được các trò chơi 2D. Tôi cho đến nay không ' Tôi rất tiếc về quyết định của mình, nó dường như là tối ưu cho trường hợp của tôi. Điều duy nhất khiến tôi đau đầu là thêm các tính năng xã hội với các plugin của Prime31 (plugin xã hội Android & iOS) nhưng tôi cho rằng lỗi của họ không phải là lỗi của Prime31 mà là của Twitter / Facebook, vì vậy tôi có thể sẽ thấy các lỗi tương tự trên bất kỳ công cụ hoặc plugin khác.

EDIT (tháng 1 năm 2014) : Tôi đoán với Unity 4.3, câu trả lời cho câu hỏi của tôi hiện khá rõ ràng: hệ thống sprite mới của Unity và có lẽ 2DToolkit hoàn toàn đánh bại mọi thứ khác, đặc biệt là đối với những người (như tôi) đã ở trên Unity một thời gian và mua phiên bản Pro với các tiện ích bổ sung.


và cái nào có u chọn? những gì về libgdx hoặc andEngine, bạn thậm chí không đề cập đến chúng mà tôi nghĩ là phổ biến nhất
kosnkov

1
@kosnkov - Ông đã chỉ định các yêu cầu bao gồm viết một lần triển khai hai lần (iOS và Android với tùy chọn Windows Phone là một điểm cộng). andEngine chỉ dành cho Android và libgdx không nhắm mục tiêu iOS (cũng không phải Windows Phone), vì vậy họ không đủ điều kiện.
sprite

1
Tôi đã kết thúc một trò chơi 3d với plugin Unity3D và NGUI cho GUI. Nếu tôi phải làm một trò chơi 2D, tôi đoán tôi sẽ chỉ dùng Cocos2d-x và Marmelade
iseeall

1
Đánh giá từ trang web, tôi khá chắc chắn libgdx hỗ trợ iOS ngay bây giờ. Vẫn không có điện thoại windows mặc dù.
Ehtesh Choudhury

1
Làm thế nào mà những câu hỏi cực kỳ hữu ích như câu hỏi này luôn bị đóng là "lạc đề"? có lẽ SO nên tạo một nền tảng riêng cho "thông tin" và ý kiến
Bogdan Alexandru

Câu trả lời:


33

Tôi đã làm việc với Marmaladevà tôi thấy nó thỏa mãn. Mặc dù nó không miễn phí và cộng đồng nhà phát triển cũng không đủ lớn, nhưng bạn vẫn có thể xử lý hầu hết các tác vụ bằng cách sử dụng các hướng dẫn của nó. (Tôi sẽ viết hướng dẫn của mình một khi tôi cũng có vài lần).
IwGamelà một động cơ tốt, được phát triển bởi một trong những người dùng Marmalade. Nó tốt cho một trò chơi cơ bản, nhưng nếu bạn đang tìm kiếm một số công cụ chơi trò chơi tiên tiến nghiêm túc, bạn cũng có thể sử dụng Cocos2D-xvới Marmalade. Tôi chưa bao giờ sử dụng Cocos2D-x, nhưng có phần mở rộng trên Marmalade Github.
Một điều tốt nữa về Marmalade là nó EDK (Extension Development Kit)cho phép bạn tạo một tiện ích mở rộng cho bất kỳ chức năng nào bạn cần có sẵn trong mã gốc, nhưng không có trong Marmalade. TÔI'

Chỉnh sửa :
Marmalade hiện có công cụ RAD (Phát triển ứng dụng nhanh) của riêng nó chỉ dành cho phát triển 2D, được đặt tên là Marmalade Quick. Mặc dù mã hóa sẽ có trong Lua chứ không phải trong C ++, nhưng vì nó được xây dựng dựa trên C ++ Marmalade, bạn có thể dễ dàng bao gồm thư viện C ++ và tất cả các tiện ích mở rộng EDK khác. Ngoài ra Cocos-2Dx, Box2Dphần mở rộng và được bao gồm trong Quick. Gần đây, họ đã tung ra phiên bản Phát hành (Nó đã ở giai đoạn thử nghiệm trong 3-4 tháng). Tôi nghĩ rằng chúng tôi thực sự đang tìm kiếm sự phát triển 2D, bạn nên thử.

Cập nhật:
Unity3D gần đây đã ra mắt hỗ trợ cho các trò chơi 2D, có vẻ tốt hơn bất kỳ công cụ trò chơi 2D nào khác, do GUI và Trình chỉnh sửa. Vật lý, hỗ trợ sprite vv được xây dựng. Bạn có thể có một cái nhìn về nó.

Cập nhật 2
Marmalade sẽ sớm ngừng SDK để ủng hộ việc sản xuất trò chơi nội bộ của họ sớm. Vì vậy, nó sẽ không phải là một quyết định khôn ngoan để dựa vào đó.


Bạn cũng có thể đọc câu hỏi SO này - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob

Cảm ơn, có vẻ như Marmalade với Cocos2D-x trên đầu nó thực sự có thể là lựa chọn tốt nhất cho trường hợp của tôi.
iseeall

2
Quên [LibGDX] [1] khi loại câu hỏi này được đưa ra là không thể tha thứ !!! ;) [1]: libgdx.badlogicgames.com
Ewoks

Kiểm tra các bản cập nhật :-)
noob

Unreal Engine 4.3.0 cũng có thể là một ứng cử viên. Đó là C ++ với trình soạn thảo và tất cả.
ervinbosenbacher

43

LibGDX là một trong những công cụ tốt nhất tôi từng sử dụng, hoạt động trên hầu hết các nền tảng và hoạt động nhanh gấp đôi so với cocos2d-x trong hầu hết các thử nghiệm tôi đã thực hiện. Bạn có thể sử dụng bất kỳ ngôn ngữ JVM nào bạn thích. Đây là một hướng dẫn gồm 13 phần trong Java và đây là một bó sử dụng jruby. Có một công cụ hoạt hình khung xương tốt hoạt động với nó ở đây và nó cũng hỗ trợ cho các bản đồ TMX được lát gạch. Khung ui thật tuyệt vời và nó có một đồ thị cảnh và API kiểu diễn viên tương tự như cảnh cocos2d, các họa tiết và hành động. Cộng đồng là tuyệt vời, cập nhật thường xuyên, và tài liệu là tốt. Đừng để phần java làm bạn sợ, nó nhanh và bạn có thể sử dụng jruby hoặc scala hoặc bất cứ thứ gì bạn thích. Tôi đánh giá cao nó cho công việc 2d hoặc 3d, nó hỗ trợ cả hai.


5
Bây giờ LibGDX cũng hoạt động với iOS. Nhưng nó có giá ~ 400 đô la cho giấy phép Monotouch :)
JavaRunner

5
Kể từ phiên bản 0.9.9, nó sử dụng RoboVM cho iOS miễn phí
James McCracken

1
Tôi đã làm việc với cả LibGDX và cocos2dx một cách rộng rãi. Và sẽ nói cocos2dx tốt hơn nhiều (phát triển nhanh hơn + hiệu suất + công cụ). Nếu bạn chỉ dùng Android, bạn có thể sử dụng LibGDX một cách khôn ngoan khác không! Hỗ trợ đa nền tảng của LibGDX rất rất tệ, điều này phụ thuộc vào RoboVM hoặc Xamarin. Xamarin và RoboVM làm cho việc biên dịch và thực thi đều rất chậm trên iOS. Cuối cùng nó trở nên rất khó để duy trì.
dùng18853

13

Bạn đề cập đến Haxe / NME nhưng dường như bạn không thích nó theo bản năng. Tuy nhiên, kinh nghiệm của tôi với nó đã rất tích cực. Chắc chắn, API là sự tái hiện của Flash API, nhưng bạn không bị giới hạn trong việc nhắm mục tiêu Flash, bạn cũng có thể biên dịch sang HTML5 hoặc các ứng dụng Windows, Mac, iOS và Android gốc. Haxe là một ngôn ngữ hiện đại, dễ chịu tương tự như Java hoặc C #.

Nếu bạn quan tâm, tôi đã viết một chút về trải nghiệm của mình khi sử dụng liên kết Haxe / NME:


Cảm ơn, chỉ từ bài viết của bạn: "nếu bạn có trò chơi HTML5 / Javascript (hoặc Flash / ActionScript) và bạn muốn đưa nó lên Windows, iOS và hơn thế nữa". Tôi đoán công cụ này là chính xác cho các nhà phát triển web muốn chuyển sang nền tảng di động.
iseeall

Haxe / NME không phải là Game Engine, đây là một nền tảng tạo thành một phần của công nghệ của bạn. Nó không dành cho các nhà phát triển web muốn chuyển sang nền tảng di động. Nó dành cho các nhà phát triển trò chơi muốn đưa trò chơi của họ đến càng nhiều nền tảng càng tốt mà không phải đối phó với các ngôn ngữ kém hơn như JavaScript. HAXE / NME rất mạnh mẽ nhưng từ âm thanh của sự vật, tôi không nghĩ đó là thứ bạn đang tìm kiếm.
anber

12

V-Play (v-play.net) là một công cụ trò chơi đa nền tảng dựa trên Qt / QML với nhiều thành phần trò chơi VML hữu ích để xử lý nhiều độ phân giải màn hình và tỷ lệ khung hình, hình động, hạt, vật lý, cảm ứng đa điểm, cử chỉ, tìm đường và nhiều hơn nữa. Tham chiếu API Lõi động cơ được viết bằng C ++ gốc, kết hợp với trình kết xuất tùy chỉnh, các trò chơi đạt hiệu suất ổn định 60fps trên tất cả các thiết bị.

V-Play cũng đi kèm với các mẫu trò chơi sẵn sàng cho các thể loại trò chơi thành công nhất như phòng thủ tháp, trò chơi nền tảng hoặc trò chơi câu đố.

Nếu bạn tò mò về các trò chơi được tạo bằng V-Play, đây là một lựa chọn nhanh trong số chúng:

(Tuyên bố miễn trừ trách nhiệm: Tôi là một trong những kẻ đứng sau V-Play)


7

Đây chỉ là một câu trả lời từ Richard Pickup trên LinkedIn cho một câu hỏi tương tự của tôi:

Tôi đã sử dụng cocos 2dx marmalade và unity trên cả iOS và Android. Đối với các trò chơi 2d, cocos2dx là cách để đi mọi lúc. Unity chỉ là quá mức cần thiết cho các trò chơi 2d và như đã nêu, marmalade chỉ là một lớp trừu tượng mỏng không thực sự là một công cụ trò chơi. Bạn thậm chí có thể chạy cocos2d trên đầu mứt. Cách tiếp cận của tôi sẽ là sử dụng cocos2dx trên iOS và Android, sau đó, chạy mã cocosd2dx trong tương lai trên marmalade như một cách dễ dàng để chuyển sang bb10 và giành được điện thoại 7


7

Tôi tìm thấy một công cụ trò chơi Wave đẹp và gọn gàng vài ngày trước. Nó sử dụng C # và có bộ chuyển đổi Windows Phone và Windows Store, điều này làm cho nó trở thành một sự thay thế tuyệt vời cho XNA đối với tôi


6

LibGDX từ BadLogicGames thì sao?


1
Tôi không biết libGDX chạy trên iOS. Nó đòi hỏi phải có giấy phép MonoDroid, hiện tại (có lẽ, tôi không thấy ứng dụng này dưới 32kb MSIL) $ 999 thay vì $ 399 mỗi năm.
tro999

6

Hãy xem Loom ( http://theengine.co ) là một công cụ trò chơi 2D đa nền tảng mới có mã và tài sản hoán đổi nóng trên thiết bị. Điều này có nghĩa là bạn có thể làm việc với Photoshop trên tài sản của mình, bạn có thể cập nhật mã, sửa đổi giao diện người dùng của ứng dụng / trò chơi và sau đó xem các thay đổi trên (các) thiết bị của bạn trong khi ứng dụng đang chạy.

Nghĩ đến các công cụ trò chơi đa nền tảng khác mà tôi đã nghe hoặc thậm chí chơi cùng, Loom Game Engine cho đến nay là tốt nhất trong quan điểm của tôi với nhiều tính năng tuyệt vời. Hầu hết các công cụ trò chơi tương tự khác (SDK SDK, MOAI SDK, Gideros Mobile) đều dựa trên Lua (với một cú pháp kỳ lạ, ít nhất là đối với tôi). Công cụ trò chơi Loom sử dụng LoomScripts, ngôn ngữ kịch bản được lấy cảm hứng từ ActionScript 3, với một vài tính năng được mượn từ C #. Nếu bạn đã từng phát triển trong ActionScript 3, C # hoặc Java, LoomScript sẽ trông quen thuộc với bạn (và tôi thấy thoải mái hơn với cú pháp này hơn với cú pháp của Lua).

Giấy phép 1 năm cho Loom Game Engine có giá 500 đô la và tôi nghĩ đó là một mức giá phải chăng cho bất kỳ nhà phát triển game độc ​​lập nào. Vài tuần trước, cung cấp một giấy phép 1 năm miễn phí quá. Sau khi giấy phép hết hạn, bạn vẫn có thể sử dụng Loom để tạo và triển khai các trò chơi của riêng mình, nhưng bạn sẽ không nhận được bất kỳ cập nhật nào nữa. Những người tạo ra Loom rất tự tin và họ hứa sẽ liên tục cải thiện em bé của họ khiến việc mua một giấy phép khác trở nên đáng giá.

Không có gì khó chịu, đây là những tính năng tuyệt vời của Loom:

  1. Nền tảng chéo (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Quy trình làm việc lấy cảm hứng từ Rails cho phép bạn dành thời gian làm việc với trò chơi của mình (một lệnh để tạo dự án mới và một lệnh khác để chạy nó)

  3. Trình biên dịch nhanh

  4. Chỉnh sửa mã và tài sản trực tiếp

  5. Khả năng tích hợp thư viện của bên thứ ba

  6. Sử dụng Cocos2DX để kết xuất

  7. Hỗ trợ XML, JSON

  8. LML (ngôn ngữ đánh dấu) và CSS để tạo kiểu cho các thành phần UI

  9. Thư viện giao diện người dùng

  10. Phụ thuộc tiêm

  11. Khung kiểm tra đơn vị

  12. Vật lý chipmunk

  13. Nhìn thấy những thay đổi của bạn trực tiếp giúp cho việc phát triển đa năng trở nên dễ dàng

  14. Kích thước tải xuống nhỏ

  15. Được xây dựng cho các đội

Bạn có thể tìm thấy nhiều video hơn về Loom tại đây: http://www.youtube.com/user/LoomEngine?feature=watch

Hãy xem hướng dẫn chuyên sâu gồm 4 phần này: http://www.gamefromscratch.com/post/2013/02/11/A-closer-look-at-the-Loom-game-engine-Part-one-getting -bắt đầu.aspx


5

Tôi đã dùng thử AppGameKit, cả c ++ và Basic. Rất dễ dàng để mã hóa các trò chơi 2d trong phương sai cơ bản, với vật lý, va chạm và nhiều thứ khác. Đó cũng là sự phát triển tích cực và thực sự rẻ (65 đô la). Vấn đề chính là rất khó để biên dịch cho Android (bạn cần tải xuống hàng đống tệp và làm theo các hướng dẫn khó và những thứ tương tự) Ý kiến ​​của tôi là nó chưa đủ tốt để sử dụng cho mục đích thương mại, nhưng tốt cho các lập trình viên độc lập Nó có một cộng đồng kích thước trung bình


4

Tôi hiện đang sử dụng Corona cho các ứng dụng kinh doanh rất thành công. Theo như các trò chơi, tôi có ấn tượng rằng nó không cung cấp hiệu suất mà một số công cụ phát triển đa nền tảng khác làm được. Điều đáng chú ý là Carlos (người sáng lập Ansca Mobile / Corona SDK) đã bắt đầu một công ty khác trên một công cụ cạnh tranh; Động cơ Lanica Platino cho Appcelerator Titanium. Mặc dù tôi đã không làm việc với cá nhân này, nhưng nó có vẻ đầy hứa hẹn. Tuy nhiên, hãy nhớ rằng nó đi kèm với thẻ giá $ 999 / năm.

Tất cả những gì đã nói, tôi đã nghiên cứu Moai một thời gian rồi (vì tôi đã quen với cú pháp Lua) và nó có vẻ đầy hứa hẹn. Thực tế là nó có thể biên dịch cho nhiều nền tảng, không giới hạn trong môi trường di động, rất hấp dẫn.

Đa phương tiện Fusion 2 cũng là một ứng cử viên đáng giá, xem xét sự phức tạp của các trò chơi được sản xuất và hiệu suất nhận ra từ chúng. Vincere Totus Astrum ( http://gamesare.com ) xuất hiện trong tâm trí.


3

Gần đây tôi đã sử dụng một công cụ AS3: PushButton (hiện đã chết, nhưng nó vẫn hoạt động và bạn có thể sử dụng một cái gì đó khác) để thực hiện công việc này. Để làm cho nó hoạt động với Android và iOS, dự án đã được biên dịch trong AIR cho cả hai nền tảng và mọi thứ đều hoạt động mà không có thiệt hại về hiệu suất. Vì Flash Builder khá đắt ($ 249), bạn có thể sử dụng FlashDevelop (có một số hướng dẫn để biên dịch trong AIR với nó).

Flash có thể là một lựa chọn vì rất dễ học.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.