C ++ 'da mobil platformlar için oyunlar geliştirebilir miyim?


16

C ++ ve C'de iyi bir kavrayışım var ve ayrıca C ++ kullanarak AAA oyunu geliştirme deneyimim var. Şimdi, utanmadan iOS veya Android'de mobil oyun geliştirmeye dalmayı düşünüyorum. Ne yazık ki, objektif C ve java bilmiyorum ve ikisinin de bunu öğrenme cesareti yok. Peki, yukarıda belirtildiği gibi, C ++ herhangi bir JAVA ve Objective-C ifadesi kullanmadan mobil geliştirme yapmak için herhangi bir olasılık var mı?

Yanıtlar:


13

İPhone uygulamaları için bazı objektif C yazılmalıdır. Olduğu söyleniyor, oldukça ince bir obj-c katmanı yazabilir ve daha sonra oyun kodunuzu C veya C ++ ile yapabilirsiniz.

Android'de NDK'yı arayın. Onunla herhangi bir deneyimim yok, ancak C veya C ++ 'da birçok şeyi yazabilmeniz için yerel bir sdk olacağına söz veriyor.

Bununla birlikte, kendinizi yapay olarak dil engeli ile sınırlandırıyorsunuz. İOS'ta, OS katmanıyla (GameCenter, sosyal platformu gibi) herhangi bir şey yapmak veya herhangi bir ara katman yazılımı kullanmak istiyorsanız, muhtemelen nesnel bir C API'siyle karşılaşırsınız.

Duyguyu biraz anlayabiliyorum. Özellikle C ++ çok büyük bir dildir. Ama obj-c büyük değil. C üzerine bir cıvata (temeller aşina olmalı) üstüne birkaç ekstra şey eklendi. C ++ kadar karmaşık veya derin değil.


2
Android NDK kullanmanın, belki de birden fazla derleme sorununda ortaya çıkan birden çok platform için kodunuzu derlemeniz gerektiğinden "bir kez her yerde konuşlandırın" avantajlarını bırakmak anlamına geldiğini lütfen unutmayın. NDK, tüm uygulamayı yazmak için değil (hala mümkün olsa da) C fonksiyonunu java kodundan çağırmak için kullanılır.
FxIII

1
Ayrıca Google'ın NDK'nın tam oyun uygulaması için kullanılmayacağını açıkça belirttiğini düşünüyorum. Ayrıca, java sözdizimi C ++ ile neredeyse aynıdır ve asılması birkaç gün sürmelidir. Para kazanmak istiyorsanız, muhtemelen iOS oyunlarına odaklanmalısınız.
Nailer

Unity3D hakkında ne söylersiniz, C # öğrenirseniz
James Bern

1
Android 2.3'ten başlayarak Google,% 100 c ++ ile (esas olarak oyunlar için) tam bir uygulama yazmanıza olanak tanıyan yerel etkinlik ekledi.
5ound

Özellikle birden fazla platforma dağıtmak istiyorsanız Unity3D'yi öneririm. C # zaten C ++ biliyorsanız öğrenmek zor değil ve onların forum içeriği (kod çoğu JavaScript olmasına rağmen) tonlarca örnek kod ile üst çentik.
Doug.McFarlane

7

Android için c ++ 'da bir süredir oyun yazıyorum. Java koduna birkaç haftada bir dokunmak zorundayım, ancak çoğunlukla NDK ile birlikte gelen örnek uygulamalardan birini değiştirdim ve aksi takdirde c ++ yazdım. Biraz JNI çalışması da yapmak zorunda kaldım, bu hiç eğlenceli değil. Ancak, uzun yıllar java deneyimim var, bu yüzden java veya JNI yazmak zorunda kalmam beni yavaşlatmıyor.

Oyunum, test cihazımda olduğu gibi linux kutumda da iyi çalışıyor. Linux versiyonu saf C ++ ve bu işi yapmak için yaşadığım sorun, oyunumda her yinelemeli değişiklik yaptığımda kendini öder.

Projem 836 satır java kodu, 331 satır iğrenç jni C kodu ve yaklaşık 40k satır C ++ kodu vardır.


Her hedef için otomatik bir şekilde oluşturulabilecek bir oluşturma sistemi kullanıyor musunuz? Platformlar arası derlemelere izin vermek için CMake kullanıyorum ve ndk-build ile entegre edip edemeyeceğimi merak ediyordum.
Martin Foot

Diğer NDK projelerinin CMake kullandığını gördüm.
notlesh

4

Ayrıca iPhone, Android, Win Mobile, Bada ve daha fazlası gibi çok çeşitli cihazlar için mobil uygulamalar oluşturmak için c ++ kullanmanıza izin veren Marmalade de var .


2

Bir süredir cocos2d-x kullanıyorum , c ++ tabanlı bir oyun motoru. (aslında cocos2d-iphone bir c ++ bağlantı noktası). Bu motoru kullanarak kodlarınızı kolayca Windows üzerinde çalıştırabilir ve test edebilir ve ardından aynı kodu iphone / android dışa aktarma için derleyebilirsiniz.


şimdi de bada'yı içeriyor ve bazı insanlar Marmelade'in üstünde kullandı
Andy Dent

1

Gerçekten sadece C ++ istiyorsanız, Marmelat sizin için iyi olabilir

Ama tam yetenekleri için en azından bazı objektif-C (veya java kullanmak zorundayım , ama ben "tam yetenekler" hakkında konuşuyorum) . Ancak ince bir objektif-C katmanı ile çok şey yapabilirsiniz, bu yüzden Xcode ile iOS geliştirmeye bakmanızı tavsiye ederim.


Eğer bir Mac'iniz varsa Xcode'a bakın , değilse, lua ile corona deneyin .

İPhone'da çalıştırılacak C ++ kodunuzu maksimize etmenin birçok yolu vardır. Bir mac App Store'da ücretsiz bir programdır Objective-C bazlı ürünlerde artış C ++ kullanımını yardımcı olabilir:

Buna obj-C ++ Önişlemci Başlıkları denir

Bu, Objective-C yerine C ++ ile daha fazlasını yapmanızı sağlar.

iOS programlama:


-3

Evet, mobil oyunlar geliştirmek için C ++ programlama dilini kullanabilirsiniz. C ++ oyun uygulaması her zaman aynı donanımda Java'dan biraz daha snappier hissediyor. Yani, C ++ konusunda uzmansanız ve Android oyunu geliştirmek istiyorsanız, Java'da programlamak artık kolay ve sıfır maliyetlidir.

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.