Xcode
Xcode – oto czytelnik. Czytelniku – oto Xcode. Poznajcie się. Wprowadzenie do programowania najpopularniejszego urządzenia mobilnego na świecie.
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.
Autorzy: Patryk Bukowiecki, Jarosław Wojczakowski
Źródło: Software Developer’s Journal 02/2010 (182) http://sdjournal.org
Do 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 testowania dzieła na pewno też dobrze mieć docelowe urządzenie – iPhone’a lub iPoda Touch. Gdy już te absolutnie podstawowe warunki zostają spełnione, nic (lub prawie nic) nie stoi na przeszkodzie, by rozpocząć pracę nad grą marzeń. Z tym, co stanąć może, postaramy się rozprawić w poniższym artykule. Zapraszamy do lektury.
Krok pierwszy – rejestracja na portalu
Czas zacząć. Zdecydowanie pierwszym krokiem powinno być zarejestrowanie na oficjalnym portalu developerskim Apple dostępnym pod adresem: http://developer.apple.com/iphone/
Dzięki temu developer będzie mógł korzystać ze wszystkich zasobów i informacji pomagających w programowaniu na iPhone OS. Sama rejestracja podzielona jest na dwie części. Pierwsza darmowa umożliwia ściąganie SDK i uruchamianie aplikacji na symulatorze. Druga 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 daje 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 banku. Należy przy tym pamiętać, że wszelkie przychody 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 pozwalający na uruchomienie stworzonej aplikacji, jej testowanie i debugowanie,
• Tools – zestaw dodatkowych narzędzi pozwalających na łatwiejsze i sprawniejsze programowanie i tworzenie aplikacji.
Jednym z ciekawszych narzędzi jest Instruments pozwalający na dokładne i szybkie namierzenie problemów związanych z zarządzaniem pamięcią.
Krok trzeci – odpalenie środowiska i stworzenie przykładowej aplikacji
Do tego celu służy środowisko Xcode. Jest to główne narzędzie SDK pozwalające na tworzenie aplikacji, testowanie, uruchamianie i przygotowywanie wersji na urządzenie. Sercem zestawu narzędzi Xcode jest Xcode IDE – graficzny kombajn zawierający profesjonalny text editor, system tworzenia aplikacji, debugger oraz kompilator. 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ę swoimi przemyśleniami. Wyznaczona osoba notuje. Zakaz krytykowania i wyśmiewania pod groźbą stawiania kolejki.
• analiza rynku (co na rynku robi konkurencja, 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 zaciszu domowym i była tworzona przez jedną lub dwie osoby, dawno odeszły do lamusa. Aktualnie w tworzenie gry bardzo często zaangażowanych 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 wymaga stworzenia planu produkcji gry. Dzieje się to w pierwszym etapie zwanym zazwyczaj preprodukcją. 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ą pracę całego zespołu. W dzisiejszych dniach tworzenie gry wymaga takich narzędzi jak:
• Managing tools – pozwalają na stworzenie planu, przydzielenia zadań członkom zespołu i koordynację całego procesu produkcji. Najbardziej znanym komercyjnym rozwązaniem jest Microsoft Project. Istnieją także alternatywne darmowe rozwią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 najpopularniejszych bugtrackerów należą: Mantis, Bugzilla czy Track Studio;
• Time manager – zestaw narzędzi pozwalający na organizację czasu pracowników, ich czasu pracy przy projekcie. Bardzo często zintegrowany jest on bezpośrednio z narzędziami służącymi do zarzą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 wykonania 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 preprodukcji sprawdzają się w rzeczywistości.
• Alpha – Na zakończenie tej części projektu powstaje pełna wersja gry, może jednak ona zawierać różnego rodzaju błędy w funkcjonalności. Według najpopularniejszych metod prowadzenia projektów, wersja Alpha powinna jednak być już całkowicie wyposażona w tryby gry, teksty, grafiki itd.
• Beta – Etap projektu, w którym główną uwagę spędza się na naprawianiu błędów i szlifowaniu finalnego produktu.
• Release Candidate – Po zakończeniu tego 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 dostępna jest dla graczy.
• Localization – Etap, w którym gra jest lokalizowana na różne języki. W tym czasie powstają alternatywne wersje językowe gry bądź jedna wersja z możliwością wyboru języków.
• Marketing – Po zakończonych etapach ukończony produkt jest gotowy do wydania, aby jednak osiągnął sukces, muszą powstać odpowiednie materiały marketingowe 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 pojawi się ona na rynku.
Etapy tworzenia kodu gry
Podział prac pomiędzy programistami
Lider programistów wraz z project managerem w czasie planowania projektu rozdzielają poszczególnym członkom zespołu zadania. Dobry podział zadań to połowa sukcesu. Ważne jest to, aby każdy z programistów miał swoje pole działania, a współpraca pomiędzy kodem poszczególnych programistów odbywała się za pomocą określonego interfejsu.
Tworzenie szkieletu klas w UML bazując na TDD przez programistów
Najwygodniejszym i najszybszym sposobem na sprawne zaplanowanie rozłożenia klas pomiędzy programistami jest stworzenie szkieletu całego projektu. Czy wyobrażacie sobie tworzenie go bezpośrednio w kodzie? Byłoby to bardzo czasochłonne i trudne. W tym momencie z pomocą przychodzi 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 programiści. Po podzieleniu poszczególnych zadań przez lidera każdy z nich tworzy szkielet klas mu przydzielonych. Na końcu całość zostaje złożona i dopracowania pod kątem interfejsów i komunikacji. Bazując na dokumentacji programiści są w stanie szybko wprowadzić zmiany w kodzie, tak aby spełniał on wymagania projektu. Na tym poziomie projektowania powstają także komentarze 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ść wygenerowania kodu w prawie dowolnym języku programowania. 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 zaprojektowanej w UML, dalsza praca to już „bułka z masłem”. Niestety, jednak podczas tworzenia gry bardzo często zmieniają się części projektu, wprowadzane są udoskonalenia i poprawiona 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 grywalność, a mniej przejmować się błędami.
Gdy okaże się, że pierwsza wersja to prawdziwy hit, pozostaje nic innego, jak zakasać rękawy i przejść do programowania. Tutaj praca jest już bardziej nudna. Bazując na specyfikacji, należy przygotować wszystkie mechanizmy 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, oficjalna strona, zapisywanie wyników na facebook itp.,
• iTunes library – funkcjonalność w aplikacji pozwalająca na słuchanie plików muzycznych 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 doskonała zabawa, przygoda i szansa dla niezależ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 przebłysku geniuszu. Powodzenia z projektami i do zobaczenia na szczycie listy Top 10!
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, biblioteką 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.
Debugowanie i naprawianie błędów
Pakiet Xcode zawiera w swoim zestawie bardzo ciekawą i pomocną aplikację o nazwie Instruments. 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 programiś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 Activity 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żemy 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 uruchomienia 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.
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 pogodny człowiek, otwarty na nowe rozwiązania.














Zostaw odpowiedź