background image

02/2010

60

Programowanie gier

Xcode

www.sdjournal.org

61

D

o  napisania  gry  wymagany  jest 
komputer  Mac,  co  może  wiązać 
się  z  wydatkiem  zaczynającym  się 

w okolicach dwóch tysięcy złotych. Do testo-
wania dzieła na pewno też dobrze mieć do-
celowe urządzenie – iPhone’a lub iPoda To-
uch. Gdy już te absolutnie podstawowe wa-
runki zostają spełnione, nic (lub prawie nic) 
nie stoi na przeszkodzie, by rozpocząć pracę 
nad grą marzeń. Z tym, co stanąć może, po-
staramy się rozprawić w poniższym artykule. 
Zapraszamy do lektury.

Krok pierwszy 

– rejestracja na portalu

Czas zacząć. Zdecydowanie pierwszym kro-
kiem powinno być zarejestrowanie na oficjal-
nym  portalu  developerskim  Apple  dostęp-
nym pod adresem:
http://developer.apple.com/iphone/

Dzięki  temu  developer  będzie  mógł  korzy-

stać ze wszystkich zasobów i informacji poma-
gających w programowaniu na iPhone OS. Sa-
ma  rejestracja  podzielona  jest  na  dwie  części. 
Pierwsza  darmowa  umożliwia  ściąganie  SDK 
i uruchamianie aplikacji na symulatorze. Dru-

ga  płatna  w  wysokości  $99  (lub  299  dla  du-
żych firm) pozwala na uruchamianie aplikacji 
na  sprzęcie  i  późniejszą  dystrybucję  aplikacji 
na App Store. Prócz tego płatna rejestracja da-
je większy dostęp do bazy wiedzy i przykładów 
przygotowanych przez Apple. Niezbędne będą 
takie dane, jak numery konta, informacje o ban-
ku. Należy przy tym pamiętać, że wszelkie przy-
chody z App Store należy rozliczyć z Urzędem 
Skarbowym. Tak głosi prawo.

Krok drugi 

– ściągnięcie i zainstalowanie 

odpowiednich materiałów

Po pomyślnej rejestracji na portalu pracę czas 
zacząć! W zależności od zainstalowanego OS-u 
na  Macu  należy  ściągnąć  i  zainstalować  SDK 
w  wersji  Leopard  bądź  Snow  Leopard.  SDK 
zawiera:

•   Xcode  –  środowisko  pozwalające 

na 

programowanie/kompilowanie/

uruchamianie stworzonej aplikacji,

•   iPhone simulator – symulator iPhone po-

zwalający  na  uruchomienie  stworzonej 
aplikacji, jej testowanie i debugowanie,

•   Tools  –  zestaw  dodatkowych  narzędzi 

pozwalających na łatwiejsze i sprawniej-
sze  programowanie  i  tworzenie  aplika-
cji.  Jednym  z  ciekawszych  narzędzi  jest 
Instruments  pozwalający  na  dokładne  i 

Xcode

iPhone  i  App  Store  to  światowy  fenomen.  Firma  Apple  dokonała 

niemożliwego i uwolniła wielką siłę niezależnych developerów mogących 

od teraz spełniać swoje wizje i tworzyć gry jak dawniej, w pojedynkę lub 

w małych zespołach, siedząc nad nimi po pracy, w garażach. 

Dowiesz się:

•   Co  potrzebne  jest  do  programowania  gier 

na iPhone’a;

•  Jak zacząć pracę nad grą i jakie są etapy jej 

produkcji;

•  Jak warto zorganizować sobie strukturę pro-

jektu.

Powinieneś wiedzieć:

•   Podstawy obsługi Xcode;
•  Znać podstawy C++ i Objective-C;
•  Przeczytać  artykuł  dotyczący  programowa-

nia na iPhone;

•  Podstawowe  informacje  na  temat  develop-

mentu gier.

Poziom 

trudności

Xcode – oto czytelnik. Czytelniku – oto Xcode. Poznajcie się. 

Wprowadzenie do programowania najpopularniejszego 

urządzenia mobilnego na świecie. 

Rysunek 1. Ekran powitalny Xcode IDE

background image

02/2010

60

Programowanie gier

Xcode

www.sdjournal.org

61

szybkie namierzenie problemów związa-
nych z zarządzaniem pamięcią.

Krok trzeci 

– odpalenie środowiska i stwo-

rzenie przykładowej aplikacji

Do  tego  celu  służy  środowisko  Xcode.  Jest  to 
główne narzędzie SDK pozwalające na tworze-
nie  aplikacji,  testowanie,  uruchamianie  i  przy-
gotowywanie  wersji  na  urządzenie.  Sercem  ze-
stawu narzędzi Xcode jest Xcode IDE – graficz-
ny kombajn zawierający profesjonalny text editor
system tworzenia aplikacji, debugger oraz kom-
pilator. Więcej o Xcode można przeczytać pod 
adresem: http://developer.apple.com/tools/Xcode/.

Stwórzmy grę!

Wiele  gier  powstaje,  bazując  na  już  istnieją-
cych  produktach.  Warto  jednak  sięgnąć  po 
własny produkt, którym zawojujemy rynek.

Pomysł – skąd go wziąć?
•   burza mózgów.

Twórcze  głowy  zasiadają  do  stołu  (na  łące, 
w pubie itd.) i snują pomysły, dzieląc się swo-
imi przemyśleniami. Wyznaczona osoba no-
tuje.  Zakaz  krytykowania  i  wyśmiewania 
pod groźbą stawiania kolejki.

•   analiza rynku (co na rynku robi konku-

rencja, na co jest popyt, czego brakuje?);

•   przypadkowe  olśnienie.  Czasami  uderza 

znienacka,  czasami  pod  wpływem  jakiejś 
innej gry. App Store pełen jest takich gier, 
wiele z nich odnosi sukces właśnie dzięki 
nieprzewidywalności i oryginalności.

Strona organizacyjna produkcji gry
Czasy, w których każda gra powstawała w zaci-
szu domowym i była tworzona przez jedną lub 
dwie osoby, dawno odeszły do lamusa. Aktual-
nie w tworzenie gry bardzo często zaangażowa-
nych jest wiele osób. W zależności od wielkości 
projektu  może  to  być  4  lub  nawet  400  osób. 
Aby  poprawnie  zarządzać  taką  ekipą,  trzeba 

nie lada doświadczenia i wiedzy. Profesjonalne 
i  zdroworozsądkowe  podejście  do  sprawy  wy-
maga stworzenia planu produkcji gry. Dzieje się 
to w pierwszym etapie zwanym zazwyczaj pre-
produkcją. Podczas tego etapu liderzy projektu 
wraz z producentem, bazując na GDD i TDD, 
gry  przygotowują  zadania  dla  poszczególnych 
członków zespołu. 

Niezbędne narzędzia 
w procesie developmentu gry
Do sprawnej organizacji całego przedsięwzię-
cia  przydadzą  się  różne  narzędzia.  Pozwolą 
one na łatwiejszą, sprawniejszą i szybszą pra-
cę całego zespołu. W dzisiejszych dniach two-
rzenie gry wymaga takich narzędzi jak:

•   Managing  tools  –  pozwalają  na  stworze-

nie  planu,  przydzielenia  zadań  członkom 
zespołu i koordynację całego procesu pro-
dukcji. Najbardziej znanym komercyjnym 
rozwązaniem  jest  Microsoft  Project.  Ist-
nieją  także  alternatywne  darmowe  roz-
wiązania takie jak np. dotProject.;

•   Bugtracking – dzięki niemu zarządzanie 

błędami, które mogą wystąpić w trakcie 
trwania projektu staje się dużo prostsze, 
przejrzystsze  i  szybsze.  Do  najpopular-
niejszych  bugtrackerów  należą:  Mantis, 
Bugzilla czy Track Studio;

Rysunek 2. Ekran powitalny symulatora iPhone

Rysunek 3. Boozle – gra firmy Vivid Games 

inspirowana pomysłami z firmowej imprezy

Na Skróty

•   SDK (ang. Software Development Kit) – Zestaw narzędzi dla programistów niezbędny do stworzenia aplikacji korzystającej z określonych 

funkcji pod określonym systemem operacyjnym.

•   App Store – Sklep online firmy Apple pozwalający na zakup cyfrowych produktów, między innymi gier na iPhone’a.

•   GDD (ang. Game Design Document) – Dokument zawierający wszystkie wymagane informacje pozwalające na stworzenie gry. Tworzony jest 

przez “Game Designera”

•   TDD (ang. Technical Design Document) – Techniczna wersja GDD opisująca wszelkie zagadnienia dotyczące gry od strony technicznej.

•   API (ang. Application Programming Interface) – Interfejs programowania aplikacji umożliwiający komunikację z systemem operacyjnym, bi-

blioteką bądź innym zewnętrznym systemem.

•   Cocoa – Jedno z pięciu głównych API systemu operacyjnego Mac OS X firmy Apple,

•   Xcode – Zintegrowane środowisko programistyczne firmy Apple. Służy do tworzenia aplikacji i innego oprogramowania przeznaczonego 

m. in. na system Mac OS X.

•   UML (ang. Unified Modeling Language) – Zunifikowany Język Modelowania służący do opisu świata obiektów w analizie obiektowej oraz 

programowaniu obiektowym.

Rysunek 4. Przykładowy szkielet głównej klasy w grze zaprojektowany za pomocą UML

����

����������
�����������������
�����������
����������������
�����������������

��������������
������������������������������
����������������������������
�������������������������
��������������������������������������������������������������������
������������������������������
���������������������������
����������������������������������

background image

02/2010

62

Programowanie gier

Xcode

www.sdjournal.org

63

•   Time manager – zestaw narzędzi pozwa-

lający  na  organizację  czasu  pracowni-
ków, ich czasu pracy przy projekcie. Bar-

dzo  często  zintegrowany  jest  on  bezpo-
średnio z narzędziami służącymi do za-
rządzania projektem.

Tworzenie gry krok po kroku
Etapy produkcji gry dzieli się na następujące 
fazy produkcji:

•   Preproduction  –  Etap  planowania  gry. 

W  trakcie  jego  trwania  powstaje  cały 
plan  produkcji  i  lista  zadań  do  wyko-
nania  przez  poszczególnych  członków 
zespołu.

•   First  playable  –  wynikiem  tego  etapu 

jest  pierwsza  wersja  gry  pozwalająca 
na sprawdzenie, czy założenia dotyczą-
ce  grywalności  ustalone  w  czasie  pre-
produkcji  sprawdzają  się  w  rzeczywi-
stości.

•   Alpha  –  Na  zakończenie  tej  części  pro-

jektu  powstaje  pełna  wersja  gry,  mo-
że jednak ona zawierać różnego rodzaju 
błędy w funkcjonalności. Według najpo-
pularniejszych metod prowadzenia pro-
jektów,  wersja  Alpha  powinna  jednak 
być już całkowicie wyposażona w tryby 
gry, teksty, grafiki itd.

•   Beta  –  Etap  projektu,  w  którym  głów-

ną uwagę spędza się na naprawianiu błę-
dów i szlifowaniu finalnego produktu.

•   Release  Candidate  –  Po  zakończeniu  te-

go etapu powstaje pierwsza wersja będąca 
kandydatem do wydania gry. Jest to w peł-
ni stabilna, niezawierająca błędów gra.

•   Gold Master – Powstający w tym czasie 

produkt jest finalną wersją gry, która do-
stępna jest dla graczy.

•   Localization – Etap, w którym gra jest lo-

kalizowana na różne języki. W tym cza-
sie powstają alternatywne wersje języko-
we gry bądź jedna wersja z możliwością 
wyboru języków.

•   Marketing  –  Po  zakończonych  etapach 

ukończony produkt jest gotowy do wyda-
nia, aby jednak osiągnął sukces, muszą po-
wstać  odpowiednie  materiały  marketin-
gowe służące do reklamowania i promocji 
gry.  Bardzo  często  zdarza  się,  że  materia-
ły marketingowe powstają dużo wcześniej 
lub równolegle z procesem produkcyjnym 
gry. Kontakt z mediami i fanami powinien 
zostać  zawiązany  znacznie  wcześniej,  by 
o grze było wiadomo cokolwiek, zanim po-
jawi się ona na rynku.

Etapy tworzenia kodu gry

Podział prac pomiędzy programistami
Lider programistów wraz z project manage-
rem  w  czasie  planowania  projektu  rozdzie-
lają  poszczególnym  członkom  zespołu  za-
dania.  Dobry  podział  zadań  to  połowa  suk-
cesu.  Ważne  jest  to,  aby  każdy  z  programi-
stów miał swoje pole działania, a współpra-
ca pomiędzy kodem poszczególnych progra-
mistów  odbywała  się  za  pomocą  określone-
go interfejsu.

Rysunek 5. Przykładowy szkielet głównej klasy w grze w języku Java

Debugowanie i naprawianie błędów

Pakiet  Xcode  zawiera  w  swoim  zestawie  bardzo  ciekawą  i  pomocną  aplikację  o  nazwie  In-

struments. Dzięki niej jesteśmy w stanie podglądać wiele rzeczy podczas pracy aplikacji na 

symulatorze bądź na iPhonie. Program ten pozwala między innymi na:

• 

przeglądanie stanu pamięci 

Możesz śledzić zmiany alokacji pamięci dla wybranej aplikacji. Dzięki temu łatwo i przyjemnie 

można namierzyć największe „pochłaniacze” pamięci. Jest to dość istotne, gdyż należy pamię-

tać, że iPhone to tylko telefon i jego zasoby są ograniczone. Najbezpieczniejszą granicą, której 

nie warto przekraczać, to zużycie 30MB realnej pamięci.

• 

znajdowanie wycieków pamięci 

Opcja bardzo przydatna dla mniej wprawionych programistów. Bardzo często zapomina się o 

tak ważnej rzeczy jak zwalnianie zaalokowanej pamięci. Szczególnie zarażeni są tym progra-

miści Java przesiadający się na C++. W Javie menadżer pamięci czyści ją za nich, tutaj trzeba 

pamiętać o tym samemu. Skutkiem tego bardzo często zdarzają się wycieki pamięci, które w 

większych projektach jest bardzo ciężko namierzyć. Tutaj z pomocą przychodzi nam opcja Ac-

tivity Monitora. Dzięki niej dokładnie możemy zlokalizować wyciek cennych bajtów. Program 

wskaże  nam  dokładną  linijkę  w  kodzie,  gdzie  wyciek  nastąpił.  Co  ciekawe,  wycieki  pamięci 

zdarzają się też w samym OS-ie. 

• 

analizę zużycia czasu procesora 

Jest  to  narzędzie  podobne  do  Task  Managera  znanego  z  Windowsa.  Dzięki  niemu  może-

my sprawdzić poziom zużycia pamięci realnej i wirtualnej, a także czas zużycia procesora dla 

wszystkich aplikacji uruchomionych na iPhonie.

• 

obserwowanie file systemu i dostępu do plików

Pozwala na przejrzenie wszystkich operacji dyskowych/plikowych, jakie występują od urucho-

mienia aplikacji na iPhonie. Jest to rzadziej używana opcja, jednakże pozwala ona programi-

ście na obserwację zachodzących procesów związanych z plikami.

background image

02/2010

62

Programowanie gier

Xcode

www.sdjournal.org

63

Tworzenie szkieletu klas w UML 
bazując na TDD przez programistów
Najwygodniejszym  i  najszybszym  sposo-
bem  na  sprawne  zaplanowanie  rozłożenia 
klas  pomiędzy  programistami  jest  stwo-
rzenie  szkieletu  całego  projektu.  Czy  wy-
obrażacie sobie tworzenie go bezpośrednio 
w kodzie? Byłoby to bardzo czasochłonne i 
trudne. W tym momencie z pomocą przy-
chodzi nam UML. Dzięki niemu tworzenie 
zarysu kodu staje się dużo wygodniejsze, a 
dowolną  zmianę  można  zrobić  dosłownie 
w chwilę. 

Recenzja, ewentualne zmiany 
i finalizowanie klas w UML przez lidera
W tworzeniu kodu uczestniczą wszyscy pro-
gramiści.  Po  podzieleniu  poszczególnych  za-
dań  przez  lidera  każdy  z  nich  tworzy  szkie-

let  klas  mu  przydzielonych.  Na  końcu  ca-
łość  zostaje  złożona  i  dopracowania  pod  ką-
tem interfejsów i komunikacji. Bazując na do-
kumentacji  programiści  są  w  stanie  szybko 
wprowadzić  zmiany  w  kodzie,  tak  aby  speł-
niał  on  wymagania  projektu.  Na  tym  pozio-
mie  projektowania  powstają  także  komen-
tarze do klas, metod i argumentów, które w 
późniejszej  produkcji  znacznie  usprawnią 
pracę z kodem.

Generowanie kodu 
wraz z komentarzami z UML
Dodatkową zaletą UML-a jest możliwość wyge-
nerowania kodu w prawie dowolnym języku pro-
gramowania.  Dzięki  temu  po  fazie  projektowej 
programiści mają gotowy kod, który muszą tylko 
uzupełnić. Wszelkie hierarchie, interfejsy itp. są 
już określone i praca jest dużo wygodniejsza.

Programowanie 
poszczególnych metod i funkcji
Bazując na specyfikacji przygotowanej podczas 
preprodukcji  oraz  na  strukturze  kodu  zapro-
jektowanej  w  UML,  dalsza  praca  to  już  „buł-
ka  z  masłem”.  Niestety,  jednak  podczas  two-
rzenia  gry  bardzo  często  zmieniają  się  części 
projektu, wprowadzane są udoskonalenia i po-
prawiona zostaje grywalność. Dlatego właśnie 
pierwszym  ważnym  etapem  programowania 
jest przygotowanie grywalnej wersji gry. To ona 
pozwoli ocenić całemu zespołowi, czy gra jest 
fajna,  czy  może  coś  będzie  trzeba  zmieniać  i 
dopracowywać. To w tym etapie programista 
powinien jak najwięcej czasu poświęcić na gry-
walność, a mniej przejmować się błędami.

Gdy okaże się, że pierwsza wersja to praw-

dziwy  hit,  pozostaje  nic  innego,  jak  zakasać 
rękawy  i  przejść  do  programowania.  Tutaj 
praca jest już bardziej nudna. Bazując na spe-
cyfikacji,  należy  przygotować  wszystkie  me-
chanizmy pozwalające obsłużyć całą grę.

Warto pomyśleć także o nowinkach do gry, 

które popularne są na iPhonie. Są to między 
innymi:

•   Facebook – obsługa konta facebook, ofi-

cjalna  strona,  zapisywanie  wyników  na 
facebook itp.,

•   iTunes library – funkcjonalność w aplikacji 

pozwalająca  na  słuchanie  plików  muzycz-
nych zapisanych na swoim iPhone podczas 
gry (zamiast oryginalnej muzyki z gry),

•   More games – opcja pozwalająca graczowi 

na zapoznanie się z ofertą gier producenta.

Zakończenie

•   Testy i polishing gry.
•   Stworzenie finalnej wersji gry.
•   Wydanie gry na AppStore.

Bez wątpienia tworzenie gier na iPhone’a to do-
skonała  zabawa,  przygoda  i  szansa  dla  nieza-
leżnych  developerów.  Dziesiątki  tysięcy  (dane 
wskazują, że już ponad 100!) aplikacji nie wzię-
ły się znikąd. Każdy szuka swojej niszy i prze-
błysku geniuszu. Powodzenia z projektami i do 
zobaczenia na szczycie listy Top 10!

PATRYK BUKOWIECKI

Specjalista ds. PR i marketingu, manager, czujny 
obserwator branży gier video, socjolog, redaktor 
i wieloletni współpracownik Neo Plus, gracz, pił-
karz. W Vivid Games na stanowiskach producent 
i PR and Marketing Manager.

JAROSŁAW WOJCZAKOWSKI

CTO  w  firmie  Vivid  Games,  programista/project 
manager  z  kilkunastoletnim  doświadczeniem, 
współwłaściciel  firmy  Vivid  Games,  wesoły  i  po-
godny człowiek, otwarty na nowe rozwiązania.

Rysunek 6. Ekran powitalny aplikacji Instruments

Rysunek 7. Przykładowy wyciek pamięci w OS