Công cụ phát triển trò chơi đa nền tảng 2D [đã đóng]


84

Tôi đã làm việc một thời gian với Corona SDK và yêu thích tốc độ nhanh chóng và dễ dàng mà tôi có thể tạo các ứng dụng mạnh mẽ bằng Lua. Nhưng nó chỉ có thể biên dịch cho iOS và Android, cảm giác như hiện tại quá ít.

Mối quan tâm chính của tôi là nó có thể biên dịch sang Máy tính để bàn VÀ Di động. Ít nhất cho những điều sau:

  • Windows + Mac cho máy tính để bàn, dưới dạng các ứng dụng độc lập.
  • iOS + Android dành cho điện thoại di động.

Tôi muốn nó nghiêng nhiều hơn về kiểu kịch bản Lua thay vì ActionScript, nhưng vui lòng đăng bất kỳ thứ gì bạn đã làm việc và yêu thích.

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

  • Marmalade Quick - Sau khi xem xét kỹ hơn, Marmalade Quick chỉ có thể xây dựng cho thiết bị di động!
  • IwGame - Hoạt động trên mứt cam và cho biết nó có thể triển khai trên máy tính để bàn và thiết bị di động với Lua. Mọi thông tin đều được đánh giá cao về điều này
  • sio2 - Cho biết "SIO2 là công cụ trò chơi 2D và 3D đa nền tảng dựa trên OpenGLES cho iOS, Android, MacOS và Windows" và "Công cụ này cũng cho phép bạn chuyển trò chơi của mình trên Mac Store và trên Windows.", nhưng diễn đàn của họ và tiêu đề web là "Game Engine cho thiết bị di động". Không thể tìm thấy bất kỳ thông tin nào về việc nó có thể triển khai cho các nền tảng máy tính để bàn hay không, bất kỳ thông tin nào cũng được đánh giá rất cao.
  • Loom Engine - Loom tương tự như Haxe + OpenFL (cố gắng thu hút các nhà phát triển Flash) ở chỗ nó sử dụng AS3 giống như ECMAScript, nhưng nó không xây dựng mã gốc từ nó. Tuy nhiên, nó sử dụng Cocos2D để hiển thị nên về lý thuyết, nó phải nhanh như Cocos2D. - Cảm ơn Bojan.
  • SDL - Tôi đã đọc ở nhiều nơi rằng SDL có thể triển khai cho gần như bất kỳ nền tảng hoặc thiết bị nào và có ràng buộc Lua. Nhưng tôi không thể tìm thấy nó hoạt động như thế nào vì nó không phải là một động cơ. Bất kỳ ai có thể giải thích cách nó hoạt động và nếu nó có thể một lần nữa, rất được đánh giá cao.
  • SFML - "Windows, Linux, Mac OS X và sắp tới là Android & iOS." Không sử dụng Lua nhưng có thể sử dụng các ngôn ngữ khác như Java và Python, v.v. Có ai có thông tin gì về điều này không?
  • Torgue2D - "Torque 2D được phát triển với các thiết bị OS X, Windows và iOS và hoạt động tốt như nhau trên tất cả các nền tảng." sử dụng TorgueScript và không sử dụng Android = (
  • Sencha - Có vẻ như để biên dịch cho tất cả các nền tảng, cũng sử dụng Javascript mà tôi biết. Nhưng ngay cả với V8 JS, điều này sẽ hoạt động hiệu quả tốt so với các tùy chọn khác?
  • GameMaker - ngôn ngữ viết kịch bản riêng GML và tôi thực sự nhớ cái này như một công cụ dành cho những người không phải lập trình viên. Nó đã thực sự phát triển thành một động cơ thực sự, ý tôi là để phát triển nghiêm túc?
  • Construct2 - Câu hỏi tương tự như gamemaker
  • Corona - Lua nhưng chỉ dành cho thiết bị di động (chỉ Android và iOS)
  • Cocos2D - Có vẻ như nó có rất nhiều lựa chọn nhưng không chắc với cùng một ngôn ngữ? Có vẻ như bạn phải viết lại toàn bộ mã của mình. Mọi thông tin nếu cocos2D có thể triển khai cho máy tính để bàn + thiết bị di động với gần như cùng một mã sẽ được đánh giá rất cao.
  • Angel2D - Cho biết nó có thể triển khai cho mọi thứ ngoại trừ Android và sử dụng Lua, có ai từng sử dụng cái này trước đây không?
  • libgdx --- Tôi chỉ thấy những điều tốt đẹp về điều này. Đây là bài kiểm tra điểm chuẩn cho libgdx và là nơi tôi thấy nó đạt 40k sprites ở tốc độ 60 khung hình / giây. http://www.sparkrift.com/2012/1/love2d-vs-allegro-vs-clanlib-vs-libgdx-vs-cocos2d-x-vs-monogame-vs-xna-vs-sfml . Có vẻ như libgdx thực tế chỉ vượt quá 30k. Nhưng vẫn có vẻ tuyệt vời. Đây là mức tương tự với Qt đối với tôi, gần như hoàn hảo, ngoại trừ tôi không thực sự lo lắng về hiệu suất trên đó. libgdx có thể xây dựng cho mọi thứ khá nhiều.
  • XNA + MonoGame --- Hiệu suất của MonoGame dường như chỉ thấp hơn libgdx một chút, có thể xây dựng cho hầu hết các nền tảng. Tuy nhiên, tôi không biết nhiều về XNA và tôi nghe nói rằng nó sẽ không nhận được các bản cập nhật trong tương lai, nhưng nó khá ổn định? Thêm thông tin được chào đón.
  • Citrus --- Cũng không có nhiều thông tin về Citrus. Công cụ trò chơi AS3 có thể xây dựng cho iOS, Android, Windows, Mac và hơn thế nữa.
  • Haxe + OpenFL --- OpenFL (Haxe) xây dựng dựa trên nhiều nền tảng, không chỉ cho Flash. Windows, Mac, Linux và Android đều có triển khai gốc tùy chọn hoặc thời gian chạy OpenFL được gọi là Neko, về mặt lý thuyết nhanh hơn Flash và SDL 2.0 sẽ sớm cho phép triển khai iOS (ish). - Cảm ơn Bojan.
  • Qt-Project --- Chỉ cần liên kết dự án Qt ở đây, có thể xây dựng cho mọi thứ và có một cộng đồng khá lớn với rất nhiều thư viện của bên thứ ba để giúp bạn hơn nữa.
  • Moai --- Công cụ Lua duy nhất mà tôi biết có thể xây dựng cho Máy tính để bàn và Di động. Chỉ có nhược điểm là cộng đồng không lớn và tài liệu không phải là tốt nhất. Nhưng nếu bạn có thể vượt qua những điều đó thì đây là một giải pháp tuyệt vời và là giải pháp tôi hiện đang sử dụng.
  • Adobe --- Không thể quên thêm adobe ở đây vì nó có thể xây dựng mọi thứ hỗ trợ flash.
  • Unity3D --- Tích hợp 2D được công bố gần đây có vẻ rất hứa hẹn, sẽ được phát hành vào Q3-Q4 năm 2013.
  • Cocos2d-x --- Một công cụ mã nguồn mở. Hỗ trợ JS, Lua, C ++ và nhiều nền tảng.
  • Html5 --- Có vẻ như có nhiều điểm nhấn mạnh về ứng dụng html5 dành cho thiết bị di động, đây chỉ là một vài công cụ mà tôi tìm thấy có thể giúp chuyển dự án html5 của bạn sang một nền tảng:

    1. Chromium được nhúng

    2. Sencha

    3. Bản đồ điện thoại

    4. Appcelerator / Titanium

    5. Icenium

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 bất kỳ động cơ nào và đề xuất bạn muốn giới thiệu động cơ nào. Cảm ơn sự giúp đỡ của bạn!

CHỈNH SỬA: Vì chủ đề này đang trở nên phổ biến, tôi sẽ thêm các tùy chọn khác mà tôi đã tìm thấy theo thời gian. Tôi khuyên bạn nên chọn những gì quen thuộc nhất với bạn và tốt nhất cho nhu cầu dự án của bạn.


1
OpenFL (Haxe) xây dựng thành bản địa trên nhiều nền tảng, không chỉ cho Flash. Windows, Mac, Linux và Android đều có triển khai gốc tùy chọn hoặc thời gian chạy OpenFL được gọi là Neko, về mặt lý thuyết nhanh hơn Flash và SDL 2.0 sẽ sớm cho phép triển khai iOS (ish). Loom tương tự (cố gắng thu hút các nhà phát triển Flash) ở chỗ nó sử dụng AS3 giống như ECMAScript, nhưng nó không xây dựng mã gốc từ nó. Tuy nhiên nó sử dụng Cocos2D cho rendering vì thế nên về mặt lý thuyết được nhanh như Cocos2D
Bojan Markovic

2
Bạn thực sự nên thêm Cocos2d-X vào danh sách: cocos2d-x.org
Clay

Bạn chắc chắn nên xem UDK của Epic Games. Nó thực sự là công cụ AAA đầy đủ nhằm vào các moders và Indie Developers. Thật không may, hiện tại nó không hỗ trợ android, mặc dù họ đã cung cấp đầy đủ giấy phép UE4 có sẵn nhiều hơn hỗ trợ Android. Cần biết rằng UE4 mới được phát hành và UDK là một nền tảng khá phát triển.
Igor Čordaš

Ngoài ra, nếu bạn muốn thứ gì đó Mã nguồn mở và di động (dựa trên Java), hãy xem jMonkeyEngine.
Igor Čordaš

Câu trả lời:


9

Tôi muốn giới thiệu V-Play (v-play.net) - đó là một công cụ trò chơi đa nền tảng dựa trên Qt cho iOS, Android, Symbian, MeeGo, Blackberry10 và cũng có thể xuất cho các ứng dụng máy tính để bàn gốc cho Windows, Mac và Linux.

Nó dựa trên C ++ nhưng có hỗ trợ tập lệnh gọn gàng cho QML & JavaScript . QML không cần phải học và có thể tăng năng suất của bạn khi cần ít mã hơn - chỉ cần xem so sánh với cocos2d-x (ít Loc hơn 60%) hoặc Corona (ít hơn 15% LoC) để so sánh với các trò chơi cùng loại.

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


1
Mặc dù tôi chắc chắn V-Play là một sản phẩm tuyệt vời, nhưng bạn nên tuyên bố từ chối trách nhiệm rằng bạn là người đồng sáng lập. Xem: meta.stackexchange.com/a/59302
Nepoxx

1
Chắc chắn - Tôi vừa mới thêm vào nó
Christian Feldbacher

7

Nếu bạn đang sử dụng Python, Kivy là một giải pháp tuyệt vời hiện nay. Nó biên dịch cho tất cả các nền tảng bạn yêu cầu:

Kivy đang chạy trên Linux, Windows, MacOSX, Android và IOS. Bạn có thể chạy cùng một mã trên tất cả các nền tảng được hỗ trợ. Nó có thể sử dụng nguyên bản hầu hết các giao thức và thiết bị đầu vào như WM_Touch, WM_Pen, Mac OS X Trackpad và Magic Mouse, Mtdev, Linux Kernel HID, TUIO. Một trình mô phỏng chuột cảm ứng đa điểm được bao gồm.

Kivy sử dụng rất nhiều mã được tối ưu hóa để kết xuất đồ họa (thông qua Cython) nên nó cũng rất nhanh.

Đây là diễn đàn cung cấp cho bạn một số thông tin cơ bản và tổng quan (dành riêng cho Android).


Mặc dù kivy có thể được sử dụng cho nhà phát triển trò chơi, nhưng nó không chính xác là một công cụ trò chơi, tuy nhiên, kivyent (kivent.org) là một công cụ trò chơi dựa trên kivy, có thể phù hợp hơn, trừ khi có thể nếu trò chơi của bạn rất đơn giản và không yêu cầu sự phức tạp thêm.
Tshirtman


5

Đây là khung trò chơi Oxygine của tôi . Nó là khung 2D C ++ tăng tốc phần cứng hiện đại mã nguồn mở cho nền tảng di động và PC. Các tính năng: OpenGL (ES) 2, kết cấu nén, tô màu, hoạt ảnh phức tạp / tweens / sprites, đồ thị cảnh, phông chữ, xử lý sự kiện, công cụ xây dựng và những thứ khác. Có thể được xây dựng trên SDL2 hoặc Marmalade SDK.

Trong cơ sở của engine có một đồ thị cảnh, tương tự như Flash một. Nói ngắn gọn, Bạn có thể gọi đây là Flash cho C ++, nhưng thoải mái hơn và nhanh hơn. Ban đầu nó được phát triển cho nền tảng di động (iOS, Android), nhưng cũng có thể được sử dụng cho trò chơi PC.

nhập mô tả hình ảnh ở đây


Tôi đã thử nó (và thực sự đã phát hành một sản phẩm trò chơi hoàn chỉnh), hoạt động rất tốt!
Juster

4

Không đề cập đến Bộ ứng dụng trò chơi (AGK) ở đây, vì vậy hãy để tôi lấp đầy khoảng trống. Đó là một SDK đa nền tảng chủ yếu là 2D cho phép bạn viết mã một lần bằng C ++ hoặc ngôn ngữ "Cơ bản" của riêng nó. Phiên bản 2 vừa nhận được hơn 400% tài trợ trên Kickstarter và sẽ có hỗ trợ 3D đầy đủ, hỗ trợ Spine (cho các nhân vật hoạt hình 2D), vật lý đạn và toàn bộ các tính năng mới khác.

Nó đã có Facebook, Twitter, một loạt các lệnh cảm biến Ultrabook, Box2D và hơn thế nữa. Tôi đã sử dụng nó ngay từ đầu và yêu thích nó (bạn có thể cho biết?). Không, tôi không làm việc cho The Game Creators (công ty tạo ra nó) mặc dù tôi thừa nhận rằng tôi đã làm một số ứng dụng trong một thời gian.

Một trong những tính năng tốt nhất theo quan điểm của tôi là bạn có thể phát triển trên Windows và phát từ IDE qua Wi-Fi tới bất kỳ thiết bị được hỗ trợ nào, vì vậy trong khi viết mã, tôi có thể (trong vài giây) kiểm tra mã của mình trên iPad, Android, Windows, Mac hoặc Blackberry Playbook.


4

Nếu bạn có nền tảng C #. Hãy xem Nhị nguyên.

Duality là một khung trò chơi 2D linh hoạt được viết hoàn toàn bằng C # - và nó ở đây để giúp bạn làm mọi thứ dễ dàng hơn một chút. Nó cung cấp cả một công cụ trò chơi có thể mở rộng và một trình chỉnh sửa trực quan để phù hợp. Sẽ không cần trình chỉnh sửa cấp độ, môi trường thử nghiệm hoặc trình quản lý nội dung vì Bản thân Duality là tất cả những điều đó. Và hơn hết: Nó miễn phí.


1
Bổ sung tốt đẹp. Tôi sẽ sớm thêm nó vào danh sách, cộng với một vài thứ khác mà tôi đã tìm hiểu, cùng với việc sắp xếp nó tốt hơn. Cảm ơn bạn đã đóng góp ý kiến
Hate Name,

Nó có tương thích với nhiều nền tảng không?
JCPhlux

2
@JCPhlux, đúng vậy. Tôi không chắc về điện thoại di động, nhưng nó chạy trên mono.
Andy

Fetzenet.de/blog/?page_id=697 đó là gì? Tại sao không phải là tính hai mặt này.adamslair.net
RS

Đã sửa. Tôi nghĩ rằng họ di chuyển không lâu sau khi tôi gửi câu trả lời của tôi - github.com/AdamsLair/duality/issues/45
Andy

2

Tôi chỉ trả lời để cung cấp cho bạn một số thông tin chi tiết về cách SDL được sử dụng. Như bạn đã nói trước đây, nó không phải là một game engine (thực ra nó chỉ là một thư viện). Hơn nữa, nó hoàn toàn không phải là hướng đối tượng và bạn không có một số phương tiện hoạt hình dễ dàng (bạn phải tự viết mã chúng).

Cách hoạt động (Tôi đã sử dụng phiên bản C nhưng tôi đoán ràng buộc Lua sẽ tương tự):

Bao gồm các tiêu đề cần thiết để xây dựng dự án trên nền tảng bạn muốn.

Thiết kế vòng lặp trò chơi của riêng bạn, trong đó bạn sẽ thiết lập (ít nhất) toàn bộ hệ thống xử lý sự kiện, trình quản lý tốc độ khung hình và "trình dọn dẹp màn hình (hoặc trình cập nhật)" (Tôi nhấn mạnh rằng bạn phải làm mới màn hình của mình theo cách thủ công bằng cách sử dụng quy trình SDL_flip_screen, một thứ mà bạn không quan tâm đến Corona).

Sau đó, viết mã trò chơi của bạn bằng cách sử dụng tất cả các "cơ chế" bạn đã thực hiện trước đó.

SDL là một thư viện cấp thấp (đừng mong đợi có một khung GUI dễ sử dụng hoặc khung phân cảnh của Corona chẳng hạn).

Cuối cùng, thư viện này đã được sử dụng để chuyển Civilization III sang Linux, vì vậy có nó hoạt động nhưng nó sẽ yêu cầu bạn rất nhiều năng lượng để có một cái gì đó giống như bạn đã có với Corona;)

Tái bút: Tôi không phải là người nói tiếng Anh bản ngữ, vì vậy hãy cho tôi biết nếu tôi không rõ :)


2

Gideros là một công cụ đa nền tảng 2d dựa trên Lua tuyệt vời , hiện đang hỗ trợ cả hai nền tảng Android và IOS, nhưng sẽ có nhiều hơn thế nữa. Và nó cũng có một số tính năng tuyệt vời như kiểm tra ngay lập tức trên thiết bị, tự động điều chỉnh tỷ lệ và độ phân giải hình ảnh tự động để dễ dàng nhắm mục tiêu các kích thước màn hình khác nhau, cũng như tùy chọn mở rộng từng nền tảng thông qua các plugin gốc.


1

Bạn cũng có ShiVa3D , một đối thủ nặng ký của Unity3D. Nó sử dụng Lua và hỗ trợ nhiều nền tảng từ di động đến máy chơi game và trình duyệt web.

Rất trực quan để sử dụng và giao diện người dùng rất đẹp để làm việ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.