Jako twórca Androida, o czym powinienem pamiętać przy przenoszeniu na iPhone'a?


9

Jako twórca gier na Androida, o czym powinienem pamiętać, opracowując grę, jeśli chciałbym kiedyś przenieść grę na wiele platform na iPhone'a? Wszelkie strategie, porady itp. Dotyczące przenoszenia na obie platformy mobilne?


W jakim języku jest napisany większość twojego kodu? Jawa? C / C ++?
Jason Kozak,

Android (i moja aplikacja) jest napisany w Javie. iPhone jest celem C
Bryan Denny

Odpowiedzi:


12

Napisz to w C / C ++ - to największa rzecz, jaką możesz zrobić. Obie platformy obsługują C i C ++, choć na różne sposoby. Na Androidzie będziesz używać NDK. Na iPhonie można go skompilować wraz z kodem Objective-C.

Będziesz musiał poświęcić trochę czasu na zbudowanie rusztowania wokół kodu C / C ++ dla każdej platformy. Powinieneś być w stanie być dość ogólny w tym obszarze, ponieważ tak naprawdę po prostu łączy funkcjonalność specyficzną dla systemu operacyjnego w kodzie gry. Nie oszczędzaj w tym obszarze, chyba że planujesz wykonać tylko jeden projekt wieloplatformowy lub nie masz nic przeciwko ponownemu wynalezieniu koła dla każdego projektu, który wykonujesz.

Użyj OpenGL ES - obie platformy obsługują OpenGL ES. Skorzystaj z tego. Pozwoli to zminimalizować ilość kodu, który trzeba ponownie napisać. Nadal będziesz mieć pewne różnice na każdej platformie, ale ogólnie większość kodu będzie działać na obu platformach.

Unikaj interfejsów API specyficznych dla platformy / języka - powinno to być oczywiste, ale łatwo jest wciągnąć się w korzystanie z klas kolekcji Java podczas pracy w Javie. Oczywiście, jeśli zastosujesz się do pierwszej powyższej reguły, niewiele będziesz robił w Javie. To samo dzieje się w drugą stronę - tak fajne jak zajęcia Foundation są w iOS, jeśli chcesz przenieść się na inną platformę, unikaj ich.

Jak widać, przechodząc na różne platformy, należy martwić się wieloma sprawami. Jeśli jesteś małym niezależnym programistą, może to nie być warte twojego czasu. Musisz ocenić, czy naprawdę chcesz wytyczyć własny szlak, aby móc kierować reklamy na wiele platform. Warto skorzystać z tego, co oferuje każda platforma, aby mieć szybszy cykl rozwoju.

Powodzenia!


1
Czy możesz wyjaśnić, co masz na myśli, mówiąc o rusztowaniu wokół kodu c ++. Jeśli to możliwe, możesz połączyć samouczek pokazujący, co to pociąga za sobą, ponieważ tak naprawdę nie rozumiem, o co ci chodzi.
Skeith,

5

Będzie to bardzo bolesny proces, począwszy od Java> Objective-C.

Sterowane danymi
Zbuduj grę, która w dużej mierze opiera się na danych. Myślę, że to mówi samo za siebie, ale ten kierunek prowadzi do mniejszej pracy, którą musisz całkowicie ponownie wdrożyć.

Wysoka i szczelna
Utrzymuj rzeczy bardzo małe i modułowe. Mówię to, ponieważ łatwiej będzie przenieść port, jeśli można łatwo pobrać komponent i zaimplementować tylko go, przetestować i powtórzyć.

Praca kontraktowa
Zagraj dobrze w swoje karty, a możesz poznać kogoś, kto może się tym zająć. Jeśli jesteś najlepszym przyjacielem programisty iPhone'a, możesz kupić mu dr. pieprz, aby ułatwić migrację kodu.

Użyj silnika wieloplatformowego
Jeśli projekt jest już w ruchu, nie ma to większego sensu. Ale jeśli masz zamiar wykonać projekt, o którym absolutnie wiesz, że zostanie przeniesiony na inne platformy, warto skorzystać z istniejącej technologii, aby pomóc w stworzeniu świata. Unity3D otrzyma wsparcie dla Androida z Unity 3.0.

Konwersja / dreszcz / narzędzie
I moją najmniej ulubioną rekomendacją jest to, że możesz użyć jakiegoś narzędzia do konwersji, aby przynajmniej przekonwertować swoje modele z Java> C ... Ale ... Nie popieram tego.


3

Jeśli myślisz o przeniesieniu na iPhone'a, a Twoja gra jest wciąż w fazie rozwoju, przełącz się na C ++, jeśli jeszcze tego nie zrobiłeś. Dzięki temu Twój kod będzie znacznie bardziej przenośny, gdy nadejdzie czas.


1

Dodając moje dwa centy do tego wątku - zastanów się nad napisaniem gry w języku wieloplatformowym, jak wielu innych tutaj powiedziało ... ale rozważ C #! Jest to potężny język, który jest zarządzany i oferuje wiele wspaniałych funkcji, których C ++ nie ma, które mogą pomóc w tworzeniu gier - i istnieje dla niego wielka biblioteka znana jako MonoGame , która jest podobna do XNA działającego na wszelkiego rodzaju platformach. Począwszy od wersji 3.0, w chwili pisania tego tekstu można z łatwością pisać pełne gry i portować na wszystkie platformy mobilne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.