Thư viện trò chơi 2D / Khung / Động cơ cho Android [đã đóng]


89

Có những thứ như vậy có sẵn để giúp tôi xây dựng trò chơi Android của mình không?

Câu trả lời:


62

EDIT: PSA: Hãy nhớ rằng câu trả lời này đã được viết vào năm 2012 và 3 năm sau, có rất nhiều động cơ tồn tại và rất nhiều trong số chúng được làm hoàn toàn cho các thiết bị di động. Đừng lấy câu trả lời này để được cấp và tìm kiếm google cho các công cụ gần đây hơn.


Tôi port Irrlicht trên Android và sử dụng nó cho các trò chơi 2D. Nó không phải là giải pháp tốt nhất nhưng tôi có màn trình diễn mạnh mẽ. Tôi đã thử nhiều Khung công tác Java nhưng Trình thu gom rác có thể làm chậm các trò chơi của bạn trong 0,2 giây trên điện thoại G1 ... Vì vậy, khung nên phân bổ rất cẩn thận.

Khung C ++ thương mại:

  • unity3D : rất tốt (có sẵn trên Android, iOS, Web, Windows, OS X) [Trò chơi: Rocket Bunnies]
  • Unreal Engine (thương mại): công cụ tốt nhất nhưng không dành cho người mới bắt đầu [Game: Dungeon Defender]

Các khung công tác mã nguồn mở C ++:

  • SDL : có lẽ là thư viện C tốt nhất cho nhà phát triển trò chơi, mã nguồn mở và đa nền tảng (bao gồm cả điện thoại di động)
  • Ogre3D : công cụ 3d mã nguồn mở tốt nhất nhưng nó là một khung lớn
  • Irrlicht : hiệu suất tốt, khung ánh sáng [Trò chơi: Moblox]
  • Linderdaum Engine : mã nguồn mở cho Windows và Android
  • Cocos2d-x : nền tảng chéo nguồn mở

Các khung mã nguồn mở Java:

  • LibGDX : Nguồn mở, Rất phổ biến, Hỗ trợ nhiều nền tảng, Hỗ trợ cho Tiled, Box2D và khác, Tài liệu tốt
  • AndEngine (Nguồn mở): hiệu suất tốt. Đối với tài liệu, xem ví dụ và đọc mã nguồn; nhưng đó là thư viện miễn phí để bắt đầu một dự án trò chơi [Game: Drop Block]
  • cocos2d cho Android: Vấn đề thu gom rác
  • rokon : hiệu suất tốt và được thiết kế cho thiết bị di động nhưng dự án dường như đã chết.

Động cơ vật lý:

  • box2d (OpenSource): nhanh chóng và dễ dàng
  • jbox2d (OpenSource): chậm trên Java đến nỗi tôi đã tạo một trình bao bọc JNI với SWIG để sử dụng box2d riêng (AndEngine cũng làm như vậy)
  • chipmunk (OpenSource): nhanh nhưng tôi thích box2d
  • đạn (OpenSource): công cụ 3D tuyệt vời

Cảnh báo, với Froyo và JIT, các thư viện Java hoạt động tốt hơn nhiều. Nhưng các vấn đề của Garbage Collector luôn có giá trị. Với Gingerbread, trình thu gom rác liên tục nên không có vấn đề gì.


1
Tôi cũng muốn thêm cocos2d-x, nó có trên giấy phép MIT và hoạt động trên cả Android, iOS và Windows Phone. Tôi tin rằng điều này khác với những gì đã được đề cập ở trên vì điều này đặc biệt trong C ++ chứ không phải Java.
Jamornh

AndEngine mượn trình bao bọc box2d từ libgdx.
Matsemann

6
Unity3d không phải là C ++. Nó hỗ trợ C #, một phương ngữ Javascript và boo
lhk

Bạn chắc chắn có thể làm điều đó thông qua bản địa nếu bạn muốn. Những kẻ đã tạo ra Tiny Words đã làm jmoses.co/2014/10/23/ Lời
John Moses

1
SDL không phải là Java; đó là C. Java mà bạn có thể đã trải nghiệm là một trình bao bọc / liên kết gọi vào mã C. Không có chức năng nào của động cơ xảy ra trong Java.
Slipp D. Thompson

24

Tôi ngạc nhiên khi không ai nhắc đến libgdx. http://code.google.com.vn/p/libgdx/


libgdx và AndEngine là tốt nhất cho 2ngày, ở đây bạn có thể tìm thấy một số liên kết khác
michael

@michael AndEngine diễn đàn hướng dẫn dính: chỉ cần sử dụng một ngã ba của AndEngine ... rất nhiều rắc rối, lỗi. Tôi không khuyên bạn nên học nó từ đó.
matheszabi

11

AndEngine khá mới, nhưng nó là nguồn mở và có vẻ đầy hứa hẹn.

Tự mô tả:

Công cụ trò chơi OpenGL Android 2D miễn phí. AndEngine được phát triển bởi Nicolas Gramlich.


1
Tôi đã thực hiện một thử nghiệm nhỏ trong việc này, đến từ Cocos2d trên iPhone và cho đến nay nó có vẻ khá đẹp cho các trò chơi 2d dựa trên sprite. Dự án có vẻ hoạt động và có một cộng đồng diễn đàn phong nha xung quanh nó.
Matt Khách

Về AndEngine ... Tôi bắt đầu tạo ra một trò chơi khá cơ bản và sau một thời gian, tôi bắt đầu tìm thấy đánh giá tiêu cực về AndEngine, đặc biệt là hiệu năng của nó với rất nhiều họa tiết. Vì vậy, tôi đã làm một bài kiểm tra và thêm 20 họa tiết vào trò chơi của mình khi còn ở giai đoạn đầu. Tôi đã làm mọi thứ "bằng cuốn sách" và nó gần như đã giết chết khao khát HTC của tôi Z. Khá thất vọng và chuyển sang LibGDX.

@AscensionSystems Tôi không biết bạn đã làm gì ở đó, nhưng tôi biết bạn đã làm sai. Với Desire Z, bạn có thể dễ dàng có hàng trăm Sprites di chuyển trên màn hình. Chỉ cần chạy điểm chuẩn trong các ví dụ và bạn sẽ thấy cách thực hiện đúng.
Nicolas Gramlich

Cảm ơn Nicolas Tôi đánh giá cao sự thật rằng bạn đang "gắn bó" với động cơ của mình nhưng thật lòng mà nói tôi không làm gì sai cả. Nó có liên quan đến Android và một lỗi với các cuộc gọi của VBO cũng kích hoạt GC. Tôi có thể giúp andengine hoạt động tốt bằng cách vô hiệu hóa VBO nhưng điều đó cũng khiến điện thoại của tôi trở nên nóng đến mức nó sẽ bị trục trặc sau khoảng 5 phút chơi. Tôi gặp vấn đề tương tự với libGDX, vì vậy tôi đã viết công cụ của riêng mình trong C ++. Ngoài ra, bạn không thể nhận được "hàng trăm" trên màn hình bằng ứng dụng ví dụ. Tôi có thể nhận được khoảng 90 128x128, 2 "khung hình" hoạt hình vật lý trước khi nó bị lag với động cơ của bạn.

.

8

Tôi nghĩ rằng bạn có thể sử dụng trò chơi Đảo bản sao từ Chris Pruett như một ví dụ về trò chơi 2d. Tôi nghĩ rằng nó được coi là một cơ sở cho các trò chơi khác vì nó được giải thích trong video này từ Google I / O 2010. Bạn có thể xem trò chơi ở đây .


Vâng, đó là một video tốt, chắc chắn đáng xem, đặc biệt là khi anh ấy nói về hiệu quả.
Spidey

7

Unity3D (về mặt kỹ thuật có thể được sử dụng để tạo trò chơi 2D) sẽ "sớm ra mắt" cho Android: http://unity3d.com/


Yup tôi hoàn toàn đồng ý. Thứ hai, nếu bạn trả tiền cho giấy phép Unity3D, bạn có thể xuất bản cùng một tác phẩm cho nhiều nền tảng. Vì vậy, bạn bắt đầu với giấy phép WINDOWS / MAC MIỄN PHÍ. Tìm hiểu chương trình. Sau đó nâng cấp giấy phép lên nền tảng bao giờ bạn thấy phù hợp trước tiên. Tuy nhiên, hiện tại Android chỉ là phiên bản PRO, có nghĩa là bạn cần Unity3D PRO + Android PRO = $ 3000 ...
BerggreenDK

Đã tạo ra 10-15 trò chơi 2D bằng Cocos2D cho iOS, tôi đã tạo một trò chơi bằng Unity 4.6 và đó là một trải nghiệm khủng khiếp, chậm và có lỗi - đối với iOS - không thể nói gì về hiệu suất cho các nền tảng khác .. Trong khi 4.6 cải thiện khá nhiều làm việc với các công cụ 2D từ trước đó, nó không ở đâu gần một công cụ kết xuất 2D chuyên dụng như Cocos2D hoặc có lẽ là hầu hết khác. Hiệu suất là khủng khiếp và họ vẫn đang chiến đấu với hỗ trợ iOS 64 bit. Điều đó nói rằng, tất nhiên sức mạnh đa nền tảng là ... sức mạnh lớn nhất.
Jonny




4

Hiện tại đang có một cổng Android của SDL và SDL có lẽ là khung đồ họa 2D tốt nhất hiện có. Nó được thiết kế bởi một trong những người dẫn đầu tại Blizzard, vì vậy bạn biết một số chuyên môn thực sự trong việc xây dựng trò chơi đã đi sâu vào nó.


3

Công cụ trò chơi SIO2. Vừa phát hành phiên bản mới với Hỗ trợ Android đầy đủ. Bạn có thể xây dựng các trò chơi 2D và 3D bằng cách sử dụng nó và cổng giữa các nền tảng khác nhau. http://sio2interactive.com



2

Tôi đang làm việc trên một công cụ trò chơi 2d mã nguồn mở có tên YoghurtGum , được cho là dành cho cả Windows Mobile và Android. Tuy nhiên, việc chuyển toàn bộ sang Android C ++ đã được chứng minh là vô cùng khó khăn.

Đây là câu trả lời không có ích nhất từ ​​trước đến nay, tôi nhận thức rõ.


2

Nếu bạn thích phát triển AIR cho Android thì bạn có thể sử dụng Flash. Bản thân Flash không có bất kỳ tính năng cụ thể nào của trò chơi, nhưng nhờ thành công của Flash trên web, có một lượng lớn thư viện của bên thứ 3 dành cho nó được thiết kế đặc biệt cho các trò chơi.

Một số khung bên thứ 3 phổ biến hơn cho các trò chơi trong Flash bao gồm Flixel (http://flixel.org/) và PushButtonEngine (http://pushbuttonengine.com/), được thiết kế hoàn chỉnh để phát triển trò chơi. Flash cũng có phiên bản Box2D (công cụ vật lý được đề cập ở trên - http://box2dflash.sourceforge.net/ ) và có nhiều thư viện 3D khác nhau, chẳng hạn như Papervision (http://code.google.com.vn/p/papervision3d/) nếu bạn muốn đi vào con đường đó trong tương lai.

Tuy nhiên, nhược điểm chính của việc phát triển trong AIR là tôi khá chắc chắn rằng bạn sẽ cần nhắm mục tiêu Froyo 2.2 trở lên, vì vậy, các thiết bị cầm tay cũ hơn sẽ bị loại bỏ.


Ngoài AndEngine, tôi đã chơi với AIR cho Android Betas và chúng khá đẹp, nếu chậm một chút. Tôi nghĩ rằng nó sẽ hoạt động tốt cho các trò chơi chiến lược hoặc trò chơi hành động mà không có quá nhiều yếu tố. Tôi đã làm việc với bản beta trên 2.1, vì vậy bản phát hành cuối cùng trên 2.2 có thể nhanh đáng kể, tôi chưa chắc chắn. Chắc chắn một cái gì đó để xem.
Matt Khách

1

Cocos2D-x là một cổng của Cocos2D cho iPhone được viết bằng C ++ nhắm vào NDK của Android và đang được tích cực phát triển để đạt được tính năng tương đương với phiên bản iPhone. Nó sẽ không có vấn đề về thu gom rác và bạn sẽ có một cổng tương đối dễ dàng đến iOS, Win32 và cuối cùng có thể là OSX trong tương lai gần.


0

PlayN là một khung trò chơi 2D đa nền tảng nhắm mục tiêu đến Android ngoài HTML5, Flash và JVM. Nó hơi mới, nhưng đã được sử dụng để viết triển khai HTML5 của Angry Birds và có một cộng đồng hoạt động hợp lý.

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.