Android ve iOS için 2D çapraz platform oyun motoru? [kapalı]


262

Unity3d ile bir süre çalıştım ve 2D parçası OnGUI () veya GUITextures ile çok beceriksiz buldum. Ayrıca, Unity3d'de yapılan en küçük oyun bile en az 10MB indirmedir ve bu da bir 2D oyun için çok fazladır.

Şu anda 2D için bir motor arıyorum. Cocos2D'yi denedim ama sadece iOS ve Android için başka bir dile her şeyi yeniden yazmak istemiyorum (yani Android için Cocos2d Java portu bir seçenek değil). Bunun yerine, kodu bir kez yazmak istiyorum ve en az güçlükle iOS, Android ve muhtemelen Windows Phone 7'de dağıtın. Hem Mac hem de Windows'um var.

Daha ayrıntılı olmak gerekirse, işte motora olan gereksinimlerim:

  • çapraz platform olmalı
  • verimli olmalı
  • Onlarla rahat olduğum için C ++, Java, C # veya Objective C olmalı ve bir web geliştiricisi olmadığımdan beri Flash, Javascript, HTML5 DEĞİL
  • doğrudan iOS veya Android'de geliştirirken sahip olacağınız şeylerin çoğunu kapsayan geniş bir topluluğa, öğreticilere, ek kitaplıklara sahip olmalıdır (uygulama içi faturalandırma, facebook vb.)
  • son teslim edilen paket çok büyük olmamalıdır
  • motor ücretsiz olabilir, ama aynı zamanda makul bir fiyat ödemeyi de umursamıyorum

Aşağıdaki motorları buldum:

  • Marmalade (ve üstünde IwGame motoru ) - C ++, Marmalade hakkında genel olarak çok olumlu eleştiriler buldu, ancak IwGame hakkında emin değilim. EDIT (Mart 2013) : Görünüşe göre Marmalade SDK şimdi Cocos2Dx ve bazı daha iyi hale getiren bazı dahili IDE içeriyor (ve benimle iyi indie dev için yılda 150 $ maliyeti).
  • Corona SDK - Lua (verimlilik şüphesi), ayrıca kod derlemek için internet bağlantısına ihtiyaç duyuyor
  • Cocos2d-x - C ++, geliştiricilerden çok sayıda yorum aldı, çoğunlukla olumlu ve çoğu 2D için en iyisi olduğunu düşünüyor
  • Parçacık kodu - Java + Eclipse, herhangi bir inceleme veya yorum bulunamadı
  • Moai - Lua, coud için herhangi bir yorum / görüş bulamadı
  • Maymun motoru - çok az özelliğe sahip gibi görünüyor
  • Haxenme - bu Flash, hiç kullanmadım ve istemiyorum
  • Unity3d kullanın ancak 2D Araç Seti gibi 2D paketlerle
  • Android ( ve burada ) ve iOS için SDL bağlantı noktaları - çok fazla destek veya mevcut gelişime sahip görünmüyor (?)
  • GLBasic - Temel dil, hoşuma gitmedi
  • playN - geliştirme aşamasında gibi görünüyor (?)
  • Gamvas - HTML5, bana olgun bir motor gibi görünmüyor
  • Ignifuga - Python, olgun görünmüyor
  • ORX - hala geliştirilip geliştirilmediğinden emin değilim (?)
  • Construct 2 - GameMaker'ı hatırlatır, hızlı prototipler için uygun olabilir, ancak kesinlikle endüstri düzeyindeki oyunlar için uygun olmayabilir
  • XNA ve sonra ExEn kullanarak oyunu liman ( Android için port için iOS ve Mono için Android için Mono Touch gerekir ) - C #, ve muhtemelen xBox (Microsoft'tan geliyorum) gibi Microsoft ürünlerinden gelen insanlar için daha fazla düşünülmektedir. Ayrıca, bu Mono araçlarının küçük geliştiriciler için toplam 800 $ maliyeti
  • Etki - JavaScript, HTML5 kullanır. JavaScript (örneğin Unity3d üzerinde tercih edilen C #) içine değilim, ayrıca tarayıcıda çalıştığı için verimlilik konusunda emin değilim (?)
  • GameMaker - kendi betik dili GML ve ben aslında bunu programcı olmayanlar için bir araç olarak hatırlıyorum. Aslında gerçek bir motora mı dönüştü, yani ciddi gelişme için mi?
  • AppGameKit - C ++, yine de oldukça yeni görünüyor. Üzerinde herhangi bir yorum bulunamadı
  • Kullanım Cocos2D ve Objective C yalnızca iOS için geliştirmek ve daha sonra kullanarak bunu Android için bir APK çıkarmak Stella SDK . Bunu yapan var mı? Sınırlamalar olacağından eminim ve Google'ın Android'deki uygulama içi faturalandırması, AdMob ve Facebook entegrasyonu hakkında ne dersiniz?
  • Moscrif - JavaScript, eski web geliştiricileri için daha çok görünüyor
  • Starling - Flash 11, Flash'a pek dahil değilim
  • ND2D - henüz 1.0 değil, birçok özelliği var mı?

Bu nedenle, motorlarla olan deneyimlerinizden yorum yapabilir ve listede hangisinin (veya özlediğim başka bir şeyin) açıklanan gereksinimler için en iyisi olduğunu önerebilirseniz mutlu olurum. Bazı motorlar hakkında ilk izlenimlerimde yanılıyor olabilirim.

Şu anda Marmalade + IwGame'i en iyi seçenek olarak düşünüyorum ama Cocos2d-x ve Parçacık kodu hakkında fazla bilgi sahibi olmadığımdan, gerçekten emin değilim.

Teşekkür ederim!

EDIT (Haziran 2013): Şimdiye kadar 2 çapraz platform 2D oyunu yaptım ve her ikisi için de 2D Toolkit eklentisi ile Unity3D kullandım. Basit GUI ile oyun için Unity'nin kendi basit bir GUI sistemi kullandım. Daha karmaşık olan için (örneğin GUI öğelerinin üst üste gelebileceği yerlerde) NGUI eklentisini kullandım. Son zamanlarda 2D Toolkit, GUI için birkaç sınıf daha ekledi, çünkü NGUI'yi 2D Toolkit ile birleştirirken doku atlasları için 2 farklı sistem kullanmak zorunda kaldı. Bunu bir sonraki 2D oyunda kesinlikle deneyeceğim. 2D oyunlar için Unity3D'yi seçmenin temel nedeni, hem deneyim hem de yeniden kullanım için birikmiş kod parçacıkları açısından zaten Unity3D'nin içinde olduğumdu. Ayrıca, 3D oyunlar için Unity3D pro (Android Pro ve iOS Pro ile) satın aldım ve 2D araçların da kapsanması için 2D Araç Seti için sadece 60 $ ödemeniz mantıklı. Şimdiye kadar yapmıyorum Kararımdan pişman değilim, durumum için en uygun gibi görünüyor. Bana baş ağrısı veren tek şey, Prime31'in eklentileri (Android ve iOS sosyal eklentileri) ile sosyal özellikler eklemekti, ancak hatalarının Prime31'in değil Twitter / Facebook'un hatası olduğunu varsayıyorum, bu yüzden muhtemelen aynı hataları görecektim başka herhangi bir motor veya eklenti.

EDIT (Oca 2014) : Sanırım Unity 4.3 ile sorumun cevabı şimdi oldukça açık: Birliğin yeni sprite sistemi ve belki de 2DToolkit, özellikle bir süredir (benim gibi) Birlik'te olan insanlar için başka bir şeyi tamamen yendi ve Pro sürümünü eklentilerle satın aldım.


ve hangisini seçtin? ya libgdx ya da andEngine hakkında, en popülerler olduğunu düşündüğüm onlar hakkında bile bahsetmedim
kosnkov

1
@kosnkov - İki kez dağıtılacak bir yazma içeren gereksinimleri belirledi (Windows Phone plus seçeneğiyle iOS ve Android). andEngine yalnızca Android'dir ve libgdx iOS'u (veya Windows Phone'u) hedeflemez, bu nedenle uygun değildir.
sprite

1
GUI için Unity3D ve NGUI eklentisi ile bir 3d oyun yaptım. Eğer bir 2D oyun yapmak zorunda
kalırsam

1
Web sitesinden bakarsak, libgdx'in şimdi iOS'u desteklediğinden eminim . Hala hiçbir windows telefon olsa.
Ehtesh Choudhury

1
bunun gibi son derece yararlı sorular her zaman "konu dışı" olarak nasıl kapatılır? belki SO "bilgi" ve görüşler için ayrı bir platform oluşturmalıdır
Bogdan Alexandru

Yanıtlar:


33

Birlikte çalıştım Marmaladeve tatmin edici buldum. Ücretsiz olmasa da ve geliştirici topluluğu da yeterince büyük olmasa da, öğreticilerini kullanarak görevin çoğunu halledebilirsiniz. (Birkaç kez dersim geldiğinde derslerimi yazacağım).
IwGameMarmalade kullanıcılarından biri tarafından geliştirilen iyi bir motordur. Temel bir oyun için iyidir, ancak bazı ciddi gelişmiş oyun malzemeleri arıyorsanız Cocos2D-x, Marmalade ile de kullanabilirsiniz . Cocos2D-x'i hiç kullanmadım, ama Marmalade's'de bir eklenti var Github.
Marmalade ile ilgili bir başka iyi şey EDK (Extension Development Kit)de, yerel kodda mevcut olan, ancak Marmalade'de olmayan, ihtiyacınız olan herhangi bir işlevsellik için bir uzantı oluşturmanıza izin vermesidir. BEN'

Düzenleme :
Marmalade artık sadece 2D geliştirme için kendi RAD (Hızlı Uygulama Geliştirme) aracı olarak adlandırılır Marmalade Quick. Kodlama Lua'da C ++ içinde olmasa da, C ++ Marmelat'ın üzerine kurulduğundan, bir C ++ kütüphanesini ve diğer tüm EDK uzantılarını kolayca ekleyebilirsiniz. Ayrıca Cocos-2Dxve Box2Duzantıları Hızlı'da yer alır. Kısa süre önce Sürüm sürümünü başlattılar (3-4 ay beta sürümündeydi). Gerçekten sadece 2D geliştirme aradığımızı düşünüyorum, denemelisiniz.

Güncelleme:
Unity3D geçtiğimiz günlerde GUI ve Editör sayesinde diğer 2D oyun motorlarından daha iyi görünen 2D oyunlar için destek başlattı. Fizik, hareketli grafik vb. Destek dahili. Buna bir göz atabilirsiniz.

Güncelleme 2
Marmalade, SDK'larını yakında oyun içi üretimleri lehine durduracak. Bu yüzden buna güvenmek akıllıca bir karar olmayacak.


Bu SO sorusunu da okuyabilirsiniz - stackoverflow.com/questions/12059539/cocos2d-or-iwgame
noob

Teşekkürler, üstüne Cocos2D-x ile Marmelat gibi görünüyor gerçekten benim durumum için en iyi seçenek olabilir.
iseeall

2
Bu tür bir soru ortaya çıktığında unutmak [LibGDX] [1] affedilemez !!! ;) [1]: libgdx.badlogicgames.com
Ewoks

Güncellemeleri Kontrol Et :-)
noob

Unreal Engine 4.3.0 da yarışmacı olabilir. Editör ve hepsi ile C ++.
ervinbosenbacher

43

LibGDX şimdiye kadar kullandığım en iyi motorlardan biri, neredeyse tüm platformlarda çalışıyor ve yaptığım çoğu testte cocos2d-x'den iki kat daha hızlı performans gösteriyor. İstediğiniz herhangi bir JVM dilini kullanabilirsiniz. İşte Java'da 13 bölümden oluşan bir eğitim ve burada jruby kullanan bir grup var. Burada onunla çalışan iyi bir iskelet animasyon aracı var ve kiremitli TMX desteği pişmiş olan yanı eşler. UI çerçevesi harika ve cocos2d sahneleri, sprite ve eylemlere benzer bir sahne grafiği ve aktör tarzı API'sine sahip. Topluluk harika, güncellemeler sık ​​ve belge iyi. Java parçasının sizi korkutmasına izin vermeyin, hızlıdır ve jruby veya scala veya istediğinizi kullanabilirsiniz. 2d veya 3d çalışma için tavsiye ederim, her ikisini de destekler.


5
Şimdi LibGDX iOS ile de çalışıyor. Ancak Monotouch lisansı için ~ 400 $ maliyeti :)
JavaRunner

5
0.9.9 sürümünden itibaren iOS için RoboVM'yi ücretsiz olarak kullanıyor
James McCracken

1
Hem LibGDX hem de cocos2dx ile yoğun bir şekilde çalıştım. Ve cocos2dx'in çok daha iyi olduğunu söyleyebiliriz (daha hızlı geliştirme + performans + takım). Sadece android gidiyorsanız, akıllıca değil LibGDX kullanmak için ok! LibGDX'in çapraz platform desteği RoboVM veya Xamarin'e bağlı olarak çok çok kötü. Xamarin ve RoboVM, derlemeyi ve uygulamayı iOS'ta çok yavaş hale getiriyor. Sonunda bakımı çok zorlaşır.
user18853

13

Haxe / NME'den bahsediyorsunuz ama içgüdüsel olarak beğenmediniz. Ancak benim bu konudaki tecrübem çok olumlu oldu. Elbette, API, Flash API'nın yeniden uygulanmasıdır, ancak Flash'ı hedeflemeyle sınırlı değilsiniz, ayrıca HTML5 veya yerel Windows, Mac, iOS ve Android uygulamalarına da derleyebilirsiniz. Haxe, Java veya C # 'a benzer hoş, modern bir dildir.

İlgileniyorsanız, Haxe / NME kullanma deneyimim hakkında biraz yazdım: link


Teşekkürler, sadece makalenizden: "HTML5 / Javascript (veya Flash / ActionScript) oyununuz varsa ve bunu Windows, iOS ve ötesine taşımak istiyorsanız". Sanırım bu motor tam olarak mobil platformlara geçmek isteyen web geliştiricileri için.
iseeall

Haxe / NME bir Oyun Motoru değil, teknoloji yığınınızın bir parçasını oluşturan bir platformdur. Mobil platformlara geçmek isteyen web geliştiricileri için değil. JavaScript gibi düşük dillerle uğraşmak zorunda kalmadan oyunlarını mümkün olduğunca çok platforma taşımak isteyen oyun geliştiricileri için. HAXE / NME çok güçlü ama bir şeylerin sesinden, aradığınızı sanmıyorum.
anber

12

V-Play (v-play.net), Qt / QML tabanlı, çoklu ekran çözünürlükleri ve en boy oranları, animasyonlar, parçacıklar, fizik, çoklu dokunma, jestler, yol bulma ve daha fazlası. API referansı Motor çekirdeği yerel C ++ ile yazılmıştır, özel oluşturucu ile birlikte oyunlar tüm cihazlarda 60 fps'lik sağlam bir performansa ulaşır.

V-Play ayrıca kule savunma, platform oyunları veya bulmaca oyunları gibi en başarılı oyun türleri için kullanıma hazır oyun şablonları ile birlikte gelir.

V-Play ile yapılan oyunları merak ediyorsanız, hızlı bir seçim:

(Feragatname: V-Play'in arkasındaki adamlardan biriyim)


7

İşte LinkedIn'deki Richard Pickup'tan benzer bir soruya yanıt:

Hem iOS hem de Android'de cocos 2dx marmelat ve birlik kullandım. 2d oyunları için cocos2dx her zaman gitmenin yoludur. Birlik, 2d oyunlar için çok fazla abartılıdır ve daha önce de belirtildiği gibi marmelat, bir oyun motoru değil, sadece ince bir soyutlama katmanıdır. Marmelatın üstünde cocos2d bile çalıştırabilirsiniz. Benim yaklaşım benim iOS ve android üzerinde cocos2dx kullanmak sonra gelecekte bb10 liman ve telefon kazanmak için kolay bir yol olarak marmelat üstünde cocosd2dx kodu çalıştırmak olacaktır


7

Birkaç gün önce güzel ve düzenli bir Wave oyun motoru buldum . C # kullanır ve Windows Phone ve Windows Store dönüştürücülerine sahiptir, bu da benim için XNA'nın büyük bir yerini alır


6

Peki ya BadLogicGames'ten LibGDX?


1
LibGDX'in iOS'ta çalıştığını bilmiyordum. Şu anda (muhtemelen, uygulamanın MSIL'in 32kb altında olduğunu görmüyorum) yıllık 399 $ yerine 999 $ olan bir MonoDroid lisansı gerektirir.
ashes999

6

Check Out Loom ( http://theengine.co ), cihazlarda çalışırken değiştirilebilen kod ve varlıklar sunan yeni bir çapraz platform 2D oyun motorudur. Bu, Photoshop'ta varlıklarınız üzerinde çalışabileceğiniz, kodunuzu güncelleyebileceğiniz, uygulamanızın / oyununuzun kullanıcı arayüzünü değiştirebileceğiniz ve ardından uygulama çalışırken cihazlarınızdaki değişiklikleri görebileceğiniz anlamına gelir.

Duyduğum ve hatta oynadığım diğer çapraz platform oyun motorlarını düşünen Loom Game Engine, birçok harika özellikle karşı çıktığım kadarıyla en iyisi. Benzer oyun motorlarının çoğu (Corona SDK, MOAI SDK, Gideros Mobile) Lua tabanlıdır (en azından benim için tek bir sözdizimiyle). Loom Game Engine, ActionScript 3'ten esinlenen bir komut dosyası dili olan LoomScripts'i kullanıyor ve C # 'dan ödünç alınan birkaç özellik var. ActionScript 3, C # veya Java'da geliştirdiyseniz, LoomScript size tanıdık gelecektir (ve bu sözdiziminde Lua'nın sözdiziminden daha rahatım).

Loom Game Engine için 1 yıllık lisans 500 dolara mal oluyor ve bence herhangi bir indie oyun geliştiricisi için uygun bir fiyat. Birkaç hafta önce sunulan 1 yıllık lisans da ücretsiz. Lisansın süresi dolduktan sonra, kendi oyunlarınızı oluşturmak ve dağıtmak için Loom'u kullanmaya devam edebilirsiniz, ancak başka güncelleme alamazsınız. Loom'un yaratıcıları çok eminler ve bebeklerini sürekli olarak geliştirmeye söz verdiler ve başka bir lisans satın almaya değer.

Daha fazla uzatmadan, Loom'un harika özellikleri şunlardır:

  1. Çapraz platform (iOS, Android, OS X, Windows, Linux / Ubuntu)

  2. Raylardan esinlenen iş akışı, oyununuzla çalışarak zaman geçirmenizi sağlar (yeni bir proje oluşturmak için bir komut ve onu çalıştırmak için başka bir komut)

  3. Hızlı derleyici

  4. Canlı kod ve varlık düzenleme

  5. Üçüncü taraf kütüphanelerini entegre etme imkanı

  6. Oluşturma için Cocos2DX kullanır

  7. XML, JSON desteği

  8. UI öğelerini şekillendirmek için LML (biçimlendirme dili) ve CSS

  9. UI kütüphanesi

  10. Bağımlılık enjeksiyonu

  11. Birim test çerçevesi

  12. Sincap fiziği

  13. Değişikliklerinizi canlı görmek, çok cihazlı geliştirmeyi kolaylaştırır

  14. Küçük indirme boyutu

  15. Ekipler için tasarlandı

Loom hakkında daha fazla video burada bulabilirsiniz: http://www.youtube.com/user/LoomEngine?feature=watch

Bu 4 bölüm derinlemesine eğiticiye de göz atın: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting -started.aspx


5

AppGameKit denedim, hem c ++ ve Basic. Fizik, çarpışma ve daha fazlası ile Temel değişken 2d oyunları kodlamak çok kolaydır. Ayrıca aktif gelişimde ve gerçekten ucuz (65 $). Asıl sorun, Android için derlemek gerçekten zor (dosya yığınlarını indirmeniz ve zor kılavuzları ve bunun gibi şeyleri takip etmeniz gerekiyor) Bence, ticari kullanım için henüz yeterince iyi değil, ancak bağımsız programcılar için iyi Orta büyüklükte bir topluluğu var


4

Şu anda Corona'yı iş uygulamaları için büyük bir başarıyla kullanıyorum. Oyunlar ilerledikçe, diğer çapraz platform geliştirme motorlarının bazılarının yaptığı performansı sağlamadığı izlenimindeyim. Carlos'un (Ansca Mobile / Corona SDK'nın kurucusu) rakip bir motorda başka bir şirket kurduğunu belirtmek gerekir; Titanyum Platcel Motoru. Bununla kişisel olarak çalışmamış olsam da, umut verici görünüyor. Bununla birlikte, bunun 999 $ / yıl fiyat etiketi ile geldiğini unutmayın.

Bütün bunlar, Moai'yi bir süredir araştırıyorum (zaten Lua sözdizimine aşina olduğum için) ve umut verici görünüyor. Mobil ortamlarla sınırlı olmayan birden fazla platform için derlenebilmesi caziptir.

Multimedya Fusion 2, üretilen oyunların karmaşıklığı ve onlardan gerçekleştirilen performans düşünüldüğünde de değerlidir. Vincere Totus Astrum ( http://gamesare.com ) akla geliyor.


3

Son zamanlarda bir AS3 motoru kullandım: PushButton (şimdi öldü, ancak hala işlevsel ve başka bir şey kullanabilirsiniz) bu işi yapmak için. Android ve iOS ile çalışmasını sağlamak için proje AIR'de her iki platform için de derlendi ve her şey performans hasarı olmadan çalıştı. Flash Builder biraz pahalı (249 $) olduğundan, FlashDevelop'u kullanabilirsiniz (AIR'de onunla derlemek için bazı öğreticiler vardır).

Öğrenmesi çok kolay olduğu için Flash bir seçenek olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.