Czy mogę tworzyć gry na platformy mobilne w C ++?

16

Dobrze znam C ++ i C, a także mam doświadczenie w tworzeniu gier AAA za pomocą C ++. Teraz bezwstydnie zastanawiam się nad tworzeniem gier mobilnych na iOS lub Androida. Niestety nie znam celu C i Java i nie mam odwagi się go nauczyć. Tak więc, jak wspomniano powyżej, czy istnieje możliwość programowania aplikacji mobilnych w C ++ bez użycia pojedynczej instrukcji JAVA i Objective-C?

James Bern
źródło

Odpowiedzi:

13

Niektóre cele C muszą być napisane dla aplikacji na iPhone'a. To powiedziawszy, możesz napisać dość cienką warstwę obj-c, a następnie zrobić cały kod do gry w C lub C ++.

Na Androidzie wyszukaj NDK. Nie mam z tym żadnego doświadczenia, ale obiecuje być rodzimym SDK, więc powinieneś być w stanie pisać większość rzeczy w C lub C ++.

To powiedziawszy, sztucznie ograniczasz się do bariery językowej. W systemie iOS, jeśli chcesz coś zrobić z warstwą systemu operacyjnego (np. GameCenter, ich platformą społecznościową) lub użyć dowolnego oprogramowania pośredniego, prawdopodobnie miałbyś do czynienia z obiektywnym C API.

Rozumiem sentyment. W szczególności C ++ to ogromny język. Ale obj-c nie jest duży. Jest to skrót od C (więc podstawy powinny być zaznajomione) z kilkoma dodatkowymi rzeczami dodanymi na górze. Nie jest tak skomplikowany ani głęboki jak C ++.

Tetrad
źródło
2
Należy pamiętać, że korzystanie z NDK dla systemu Android oznacza pozostawienie zalet „pisz po wdrożeniu wszędzie”, ponieważ musisz skompilować kod na wiele platform, co może być przyczyną wielu problemów z kompilacją. NDK jest przeznaczony do wywoływania funkcji C z kodu Java, a nie do pisania całej aplikacji (chociaż jest to nadal możliwe).
FxIII
1
Myślę też, że Google wyraźnie stwierdził, że NDK nie będzie wykorzystywany do pełnej implementacji gry. Poza tym składnia Java jest prawie identyczna z C ++ i powinna zająć kilka dni, aby się zawiesić. Jeśli chcesz zarabiać pieniądze, prawdopodobnie powinieneś skoncentrować się na grach na iOS.
Nailer
Co powiesz o Unity3D, jeśli nauczę się języka C #
James Bern
1
Począwszy od Androida 2.3, Google dodał natywną aktywność, która pozwala pisać pełną aplikację w 100% c ++ (głównie do gier).
5ound
Polecam Unity3D, szczególnie jeśli chcesz wdrożyć na wielu platformach. C # nie jest trudny do nauczenia, jeśli znasz już C ++, a ich zawartość forum jest na najwyższym poziomie z mnóstwem przykładowego kodu (chociaż większość kodu jest w JavaScript).
Doug.McFarlane
7

Od dłuższego czasu piszę grę w c ++ na Androida. Muszę dotykać kodu Java raz na kilka tygodni, ale przeważnie zmodyfikowałem jedną z przykładowych aplikacji, która jest dostarczana z NDK i napisałem c ++ inaczej. Musiałem też trochę popracować nad JNI, co nigdy nie jest zabawne. Mam jednak wieloletnie doświadczenie w Javie, więc pisanie java lub JNI nie spowalnia mnie szczególnie.

Moja gra działa równie dobrze na moim systemie Linux, jak na urządzeniach testowych. Wersja dla Linuksa to czysty C ++ i trud, przez który przeszedłem, aby ta praca się zwróciła za każdym razem, gdy wprowadzam iteracyjną zmianę w mojej grze.

Mój projekt ma 836 linii kodu java, 331 linii ohydnego kodu jni C i około 40 000 linii kodu C ++.

notlesh
źródło
Czy używasz systemu kompilacji, który może budować dla każdego celu w sposób zautomatyzowany? Używam CMake do zezwalania na kompilacje między platformami i zastanawiałem się, czy mógłbym zintegrować go z ndk-build.
Martin Foot
Widziałem, że inne projekty NDK używają CMake.
notlesh
4

Istnieje również Marmalade, który pozwala używać c ++ do tworzenia aplikacji mobilnych dla szerokiej gamy urządzeń, takich jak iPhone, Android, Win Mobile, Bada i kilka innych.

impmja
źródło
2

Używam cocos2d-x przez jakiś czas, to silnik gry oparty na c ++. (w rzeczywistości jest to port c ++ cocos2d-iphone). Za pomocą tego silnika można łatwo uruchomić i przetestować kody w systemie Windows, a następnie skompilować ten sam kod dla eksportu iPhone / Android.

Ali1S232
źródło
zawiera teraz także bada, a niektórzy ludzie używali go na marmoladzie
Andy Dent
1

Jeśli naprawdę chcesz tylko C ++, Marmolada może być dla Ciebie dobry

Ale aby uzyskać pełne możliwości, musisz użyć przynajmniej celu C (lub java, ale mówię o „pełnych możliwościach”) . Ale z cienką warstwą celu C możesz zrobić tyle, więc polecam przyjrzeć się rozwojowi iOS z Xcode.


Jeśli masz Maca na Xcode , jeśli nie, spróbuj zamiast tego korony z lua .

Istnieje wiele sposobów na maksymalne uruchomienie kodu C ++ na iPhonie. Darmowy program na Mac App Store może pomóc zwiększyć C ++ zastosowanie w produktach Objective-C na podstawie:

To jest nazwane nagłówkami preprocesora C-C ++

To pozwala ci zrobić jeszcze więcej z C ++ niż Objective-C.

Programowanie na iOS :

Comradsky
źródło
-3

Tak, możesz używać języka programowania C ++ do tworzenia gier mobilnych. Aplikacja do grania w C ++ jest zawsze przyjemniejsza niż Java na tym samym sprzęcie. Jeśli więc jesteś ekspertem w C ++ i chcesz opracować grę na Androida, programowanie w Javie jest teraz łatwe i zerowe.

Jacob Selvestar
źródło