úterý 26. srpna 2014

Navrhování offline módu

Ahoj, jsem Simon Fox, hlavní vývojář singleplayerového módu pro SimCity. Dnes vám povím něco o tom, jak pracujeme na offline módu.

Když hra vyšla, hráči téměř okamžitě začali požadovat hraní offline. Dal jsem dohromady tým, abychom toto přání mohli splnit co nejdříve.
PŘEPRACOVÁNÍ KREATIVNÍ VIZE
Původní myšlenkou SimCity bylo vytvořit hru, kde každé rozhodnutí ovlivňuje i ostatní města v regionu. A tak jsme vytvořili hru, která tomu odpovídala – uživatelský počítač odesílal všechna data na servery. To znamená, že celá architektura hry byla přizpůsobena právě tomu, od prvotních principů simulace po způsob komunikace jednotlivých měst v regionu. Takže ano, někteří hráči byli schopni odstranit pomocí módů „časovou kontrolu“ krátce po vydání hry, stále ale neměli přístupné klíčové funkce jako například komunikaci s ostatními městy a regiony, které lokálně vytvořili a navíc nemohli ukládat postup při budování měst.
Můj tým však vykročil kupředu směrem k offline módu cestou, která zachovává integritu simulace. Lucy jednou řekla, že vytvoření offline módu nebude možné bez rozsáhlé vývojářské práce, měla v tom samozřejmě pravdu. Než jsme došli do cíle, trvalo nám to celých 6 a půl měsíce navrhování a předělávání hlavních částí hry tak, aby byl offline mód skutečně funkční. Dokonce věci, které se zdají jednoduché, jako je například samotné načítání a ukládání hry, musely být kompletně přepracovány, aby byla zajištěna jejich funkčnost.
PŘEPISOVÁNÍ KLÍČOVÝCH ČÁSTÍ
Přál bych si, aby to bylo tak jednoduché jako otočit vypínačem, prostě říct hře, aby místo se servery komunikovala přímo s klientským PC, ale tak jednoduché to není. Celé výpočty musely být přepsány, aby hra fungovala správně.
SimCity bylo navrhnuto tak, aby spolupracovalo se servery. Hra průběžně zasílá serverům důležitá data (obchodování, pracovníci, statistika regionu atd.) a díky tomu pak může simulace hladce běžet. To znamená změnit kompletně celý systém, který byl navrhnut v Java a přepsat ho do jazyku C++. Museli jsme přepsat mnoho kódů tak, aby se data produkovala lokálně a to obzvláště u dat týkajících se regionů.
Naše hra posílá kousky dat od města k městu a data tak putují po celém regionu. Všechny tyto kódy se vyskytují na serverech a nyní jsme je převedli na klientské PC. Na klienta jsme také převedli zpracování takzvaného region boxu, kam posílají data jednotlivá města.
Nyní všechna regionální simulace musí být vykonávána lokálně. Algoritmus, který má na starosti obchodování mezi městy, musel být přenastaven tak, aby chování mezi městy bylo více odpovídající tomuto typu hraní. To samo o sobě vyžaduje rozsáhlou optimalizaci, aby simulace probíhala lokálně. Máme povinnost zachovat hru funkční na strojích s různým systémovým vybavením. Nechceme, aby někdo, kdo si užíval hraní multiplayeru, najednou shledal singleplayerové hraní jako méně funkční jen kvůli této optimalizaci.
Není to jen o přidávání dalších částí do hry, stejně tak musíme některé části pro zachování funkčnosti vymazat. To znamená vymazat poměrně velkou část kódů, které patří k multiplayeru jako například uživatelské rozhraní podporující obchodování, sociální funkce, světový trh, statistiky a achievementy. A to vše bez toho, abychom nějakým způsobem poničili multiplayerové hraní.
Takže, kde přesně se nyní nacházíme? Pracujeme na tom již od srpna a nyní máme na stole už alfu a jsme v konečných částech testování před vypuštěním offline módu společně s aktualizací 10. Jménem celého vývojářského týmu vám děkuji za vaši trpělivost. Víme, že chcete hrát SimCity offline a jsme rádi, že vám to již brzy můžeme dopřát.

Žádné komentáře: