2009-07-24 27 views
9

Jestem przyzwyczajony do tworzenia aplikacji biznesowych i referencyjnych. Teraz muszę zrobić grę na iPhone'a. Jakie wskazówki można udostępnić mi pomóc z:Co to są "gotchas" podczas tworzenia gry na iPhone'a?

  1. zrozumienia zakresu projektu
  2. określające rezultaty
  3. określające grę i inne parametry
  4. szacowania nakładu rozwoju
  5. Testowanie gra

Duże pytanie, wiem. Dzięki!

+1

Proces przeglądu App Store –

+1

Jeśli proszą o wskazówki, to powinien być Wiki? – Xetius

Odpowiedz

2

Główną różnicą między aplikacjami biznesowymi i gier, zwłaszcza na urządzeniach mobilnych, jest znaczenie wyników. Aplikacja, która umieszcza formularz i czeka na dane wejściowe użytkownika prawdopodobnie nie robi nic w międzyczasie. Z drugiej strony pętla gry idzie cały czas i prawdopodobnie dużo robi. Programiści nie są przyzwyczajeni do myślenia w tych kategoriach, ale gry czerpią energię z baterii i, wierzcie lub nie, sposób wdrożenia gry będzie miał wielki wpływ na szybkość jej rozładowywania.

Więc jedno pytanie jest, co to za gra, że ​​„muszą” rozwijać? Jeśli to sudoku, nie martw się. Jeśli to bitwa kosmiczna 3D w czasie rzeczywistym, to już inna historia.

Jeśli Twoje aplikacje biznesowe były na iPhone, to prawdopodobnie używany 100% Objective-C. (Jeśli robiłeś aplikacje C# lub Java na komputerach, to witaj w zarządzaniu własną pamięcią.) Są tacy, którzy powiedzą ci, że zarządzanie typu Object-C w środowisku wykonawczym jest zbyt wolne w przypadku złożonych gier. Ludzie z pewnością robią gry OK, używając go z Cocos2D i innymi silnikami, ale znowu zależy to od gry. Są profesjonalni programiści, którzy będą pracować tylko z C++ lub nawet prosto C.

36

Moja odpowiedź nie jest zgodna z metodologią wodospadu, której szukasz, ponieważ uważam, że będziesz musiał nauczyć się umiejętności programowania gier, zanim będziesz mógł planować, projektować, wdrażać i testować. Programowanie gier jest BARDZO różne od programowania biznesowego i całej innej dziedziny samej w sobie.

Z powodu braku doświadczenia w programowaniu gier, istnieje kilka koncepcji, których należy się nauczyć, zanim będzie można zaprogramować okres gry, nie wspominając już o telefonie iPhone.

Niektóre z tych rzeczy zależą od tego, czy programujesz grę 3D, czy wybierasz styl platformy 2D.

OpenGL ES Pierwszą rzeczą, którą musisz się nauczyć, jest OpenGL ES programming language. Jest to w zasadzie interfejs API 3D, który umożliwia rysowanie prymitywów 3D. Nadal będziesz musiał użyć tego, jeśli kodujesz grę 2D, ponieważ jest ona szybka z powodu użycia GPU do przyspieszania. Istnieje kilka dobrych tutoriali w Google, od których powinieneś zacząć.

wektorowa Math Jeśli robisz coś 3D, trzeba będzie dowiedzieć się o matematyce wektor 3d, wektory są wykorzystywane do gier, wszystko w kierunku wygląd aparatu, położenia znaków, szybkość wykrywania kolizji, etc. Wektory 2D (x, y) minus składowa z są nadal potrzebne do programowania gier 2D.

Wykrywanie kolizji Skąd wiadomo, kiedy moja piłka uderza w ścianę? Odpowiedzią jest wykrywanie kolizji. Istnieje wiele form wykrywania kolizji, takie jak sfery do sfery, AABB, OOBB, otoczka wypukła, siatki trójkątów itp

AI Jak mogę wróg atakować mój odtwarzacz charakter? Sztuczna inteligencja to kolejne duże pole niezbędne, aby NPC/Wrogowie mogli podejmować inteligentne decyzje. Sztuczna inteligencja może być prosta, jak na przykład instrukcje inne, ale zwykle wymaga skończonych maszyn stanów lub logiki rozmytej, aby były skuteczne.

Pathfinding Jeśli chcesz przenieść postać z punktu A do punktu B, unikając wrogów i ruchomych przeszkód, trzeba będzie użyć algorytmu pathfinding. Gwiazda (A *) jest jedną z najpopularniejszych.

Scene Graph Jeśli chcesz mieć 10-20 + wrogów na ekranie na raz, trzeba będzie kodować wykres sceny do zarządzania dynamicznego rysunku, logikę oraz tworzenie i usuwanie zasobów. Jeśli nie wiesz, czym jest polimorfizm, musisz go znać, ponieważ jest to niezbędne, aby twoje obiekty gry były zgodne z grafem sceny.

Fizyka pozycja, prędkość, przyspieszenie, Gravity i promienie są reprezentowane za pomocą wektorów i być może trzeba odświeżyć swojej fizyki matematyki, aby zakodować dowolną grę. Zacznij od drugiej zasady ruchu Newtona F = MA (siła = masa * przyspieszenie). Silnik fizyki open source, taki jak Bullet, ODE, Newton, Tokamak, ułatwi to działanie, co oznacza, że ​​nie będziesz musiał sam pisać tych zasad fizyki.

Objective-C++ Jest to opcjonalne, choć zalecane. Jeśli nie znasz C++, jest to w zasadzie połączenie C++ i Objective-C. Mam tendencję do używania C++ do podstawowego mechanizmu gry i programowania ze względu na szybkość C++ i dostępność bibliotek stron trzecich w C++.

Dźwięk Jeśli chcesz brzmieć można po prostu iść do przodu i używać prostych struktur dźwiękowych, które dostarczają firmy Apple, jednak 3D pozycyjny dźwięk będzie wymagać czegoś lepszego. Polecam naukę zestawu FMOD SDK dla iPhone'a. Jak wspomniano w @Stowelly, FMOD wymaga licencji na komercyjną dystrybucję, ale są też inne, których można szukać za darmo.


Użyj silnik gry Istnieją silniki dostępne dla iPhone gry w momencie, który będzie o wiele łatwiej można dostać grę dzieje w twoim przypadku to będzie szybciej, mimo że nadal będzie muszę nauczyć się koncepcji, o których wspomniałem powyżej.

Oto niektóre silniki gry znam:

Unity3D To prawdopodobnie najbardziej popularny, że nie wiem. Unity to silnik do gier na PC/Mac, który pozwala pisać kod na Macu i kompilować w systemie Windows/Linux/Mac OS X. Wątpię, czy budynek iPhone'a jest kompatybilny bezpośrednio z innymi platformami, wyobrażam sobie, że byłbyś ograniczony do iPhone'a, jeśli rozpocząłeś nowy projekt. Ten silnik ma jednak komercyjny koszt wdrożenia od 199 do 399 USD.

Cocos2D Ta jedna jest open source 2D silnik gry, które mogą być przydatne dla wielu gier. Warto przyjrzeć się. Hostowane w kodzie Google.

Oto kilka innych, aby sprawdzić:

Ston3D for iPhone

OOlong Engine

SIO2Engine

iTGB for 2D Games

+2

Dobra odpowiedź. Nie mam pojęcia, dlaczego to było downvoted, mimo że PO nie wydaje się wiedzieć, co chcą inna niż „grze iPhone” – Xetius

+0

słowo rada, jeśli masz zamiar opublikować grę w App Store, SDK FMOD będą wymagały licencja ..... ale ogólnie rzecz biorąc, doskonałe informacje :) – Stowelly

+0

Wspomniałeś, że dostępne są Game Engines dla iPhone'a, czy mógłbyś wymienić kilka znanych lub polecających? - dzięki. – Shrill