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.