320 likes | 428 Views
Port gry Artist Colony z PC na iPhone. Kim jestem?. Andrzej Koloska, Producent w Vivid Games Doświadczenie w tworzeniu projektów na: iPhone, iPad, j2me, WinMo, Android, BREW, PC, NDS, xbox360 Chciałby zacząć projekt na N3D i PSN Gracz q3 ;). Kto pracował przy projekcie?. Bartosz Piwkowski
E N D
Kim jestem? • Andrzej Koloska, Producent w Vivid Games • Doświadczenie w tworzeniu projektów na: iPhone, iPad, j2me, WinMo, Android, BREW, PC, NDS, xbox360 • Chciałby zacząć projekt na N3D i PSN • Gracz q3 ;)
Kto pracował przy projekcie? • Bartosz Piwkowski • Łukasz Lewiński • Jarosław Wojczakowski • Remigiusz Kościelny • Tomasz Strzelczyk • Bartosz Biniecki • Przemysław Tkaczyk • Paweł Mikołajewski
O czym będę mówił: • Podejściu do portu gry z PC -> iPhone • Problemach technicznych podczas portu • Problemach designu gry podczas portu • Procesach jakie można napotkać przy portowaniu gier
PC: Jaka to gra? • Casual Sim/Strategia • AI • Rozbudowa budynków • Interakcja między lokacją • Game Flow
PC: Jaka to gra? • Elementy RPG
PC: Jaka to gra? • Bardzo duży background • Mapa lokacji
PC: Jaka to gra? • Obszerny i rozbudowany HUD
PC: Jaka to gra? • Duża ilość animacji postaci • Długi gameplay • Zmiany pór roku • ~700MB assetów zmieścić w 50MB • ~200-400MB wykorzystanej pamięci zmieścić w 25MB • Fakt czy mit: aplikacje iPhone mogą wykorzystywać ponad 40MB pamięci?
PC: Jaka to gra? • Brak optymalizacji wyszukiwania drogi • Brak optymalizacji animacji postaci • Brak optymalizacji w teksturach • Brak zarządzania pamięcią • Bardzo dobrze zakomentowany kod
Wydawca • Twardy i krótki termin wykonania portu :) • Pierwsze dni pracy - problem z SVNem • Typowo: Preprodukcja ASAP • Typowo: First Playable ASAP • Kontakt z Nikitova tylko w ostateczności
Milestone'y • First Playable • Alpha • Beta • RC • Gold • Lite, Demo • Brakujące milestone'y
iPhone: Preprodukcja • Design HUDa- Które elementy są najważniejsze - główny HUD - Jak zmieścić elementy na ekranie iPhone'a?
iPhone: Preprodukcja • Design HUDa - Jak zoptymalizować Jorunal i ekrany rozwoju
iPhone: Preprodukcja • Design HUDa - Jak zoptymalizować Jorunal i ekrany rozwoju
iPhone: Preprodukcja • Jak przerobić Menu? - Animacje Menu - Facebook - iTunes - Get More Games / Adverts
iPhone: Preprodukcja • Jak przerobić controlsy i sterowanie? - Poruszanie kamery (feedback od gry - rączka) - Poruszanie postaciami (zakrycie HUDa, postać nad palcem, strzałki interakcji, scroll lokacji) - Zoom in/out?
iPhone: Preprodukcja - Technicznie • Jak zmieścić tyle assetów w 50MB? • Jak zmieścić się w 25MB pamięci? • Jak zoptymalizować grę by mieć 20-25FPSów?
Produkcja portu • Przekompilowanie kodu PC pod Visualem - Analiza kodu (Nikitova rulez!)- Pierwsze problemy - kontakt z iPlay/Nikitova - Kod renderujący (DX, asm) oddzielony od logiki • Stworzenie wersji PC z rozdzielczością iPhone'a - Pozbycie się hardcodowych rozdzielczości (budynki, elementy lokacji, pivoty, etc) - Problemy z siatką wyszukiwania drogi - Zeskalowanie wszystkich grafik do rozdzielczości iPhone'a- Testowanie gry przez testerów- Wersja PC w rozdzielczości iPhone gotowa, po co?
Produkcja portu: FP iPhone #1 • SDK i kompilacja gry pod Xcode - Komentowanie klas które się nie kompilują (20k błędów) - Gra się kompiluje, ale nic nie widać. Część logiki tika ;) • Pierwsze podejście skończone
Produkcja portu: FP iPhone#2 • Zastępowanie zakomentowanych klas na te z SDK (input, sound, etc) • Sporo rzeczy zakomentowanych dalej , duży związek z logiką gry • Przepisanie renderera z DX na Ogl • Propozycje HUDA i controlsów zaakceptowane, można implementować. • Pierwsza wersja First Playable skończona - brak logiki (za dużo zależności) - słaby performance - crash co 10 sekund ;)
Produkcja HUDa • Masterpieces z kodu • Implementacja głównego HUDa • Implementacja Journala • Implementacja in-game menu • Implementacja Menu • Dodatkowe ficzery: Facebook, iTunes
25MB pamięci / 50 MB instalka • .PVR - większość grafik wyglądała źle w tym formacie • Optymalizacja animacji postaci - redukcja klatek - plugin układający grafiki na siatce wypluwając wielkość, przerwy, koordynaty. • Optymalizacja reszty grafik - układanie ich na teksturach • Background gry - Jedna grafika na warstwach podzielona na obszary * SDK zajmuje 13MB w pamięci! WTF!
25MB pamięci / 50 MB instalka • Ustawianie pivotów grafik - większość grafik z wersji PC miała binarnie zapisane pivoty. - ręczne ustawianie pivotów • Optymalizacja kodu - wyszukanie i wyeliminowanie tablic statycznych - zmiana intów na shorty (32->16) - zmiana longów na inty (64->32) • Zmiana ilości postaci w grze - statyczny związek z logiką gry - ikonki postaci mają związek z ilością postaci • Różne iPady a pamięć - 3gs nie jest sprzętem do testowania pamięci ;)
Produkcja portu - Performance • Game Update - ponad 100 ticków logiki na klatkę - wywalenie tych, które spełniły swoje warunki - update sekwencyjny co ramkę 0-20, 20-40, 40-60 • Wyszukiwanie drogi - Optymalizacja obszaru wyszukującego drogę • 3gs a najsłabszy iPad - różnice FPS
QA Portu • Szybki port = features needs od wydawcy. Pracujcie wolniej! • Poprawianie błędów z wersji PCtowej • Ponad 800 zarejestrowanych błędów od fazy Beta • Jeden błąd w grafice = budowanie paczki z grafikami • Masa błędów w tekstach - MTF exportowany do gry - Zmiany w MTFie przez Designera wydawcy • Zmiany w HUDzie - błędne koło • Sales and Marketing guys, we hate them! • Zewnętrzne testy
Gold • In-App Purchase - SDK nie przygotowany • Adverts - SDK nie przygotowany • Programiści SDK nie chcą pomóc - walczymy • Wersja Lite/Demo • Guru Director - Nie lubimy takich ludzi, znów zmiany • Gra gotowa!
Post Mortem - Zanim zaczniemy produkcje cisnąć providera SDK o featury których brakuje - Cisnąć providera SDK o dokumentacje i sample, których zawsze brakuje - Nie robić za szybko portu by nie zmieniać za dużo w grze ;) - MTF powinien być przetłumaczony raz a dobrze, zmiany w nim powinny być zrobione raz a dobrze. - Sales&Marketing guys powinni dostać grę znacznie wcześniej, starać się zmieniać strategię wydawcy - QA Wydawcy powinien zaznajomić się z wersją PCtową - Brak Feature Freeze powodem wielu zmian i poprawiania błędów z wersji PCtowej
Post Mortem - Lepszy support ze strony głownego programisty SDK, powinniśmy go dostać full time by nam pomagał - Code Branch by pokazać grę High Director bez sensu - Edytor resource'ów powinien być przepisany - Za krótki termin portu i sales&marketing guys powodował częsty crunch time przy projekcie - Kontakt z Nikitovą powinien być bardziej profesionalny, od samego początku
Końcowy efekt - Port wykonany na czas z tygodniową obsuwą wersji Lite - Bardzo szybko w app store pojawił się patch - Instalka gry zajmuje 47MB - Gra wykorzystuje ~27 maksymalnie pamięci - Gra chodzi przyzwoicie
Dziękuję za uwagę Pytania? Kody promocyjne na gry Vivid Games do odbioru u osoby prowadzącej prelekcję