Ve třetím díle našeho seriálu o programování her pro Windows Phone se zaměříme na Xbox LIVE a vývoj v XNA pro další platformy.
O vytváření aplikací pro Windows Phone jsme si pověděli už poměrně hodně informací. Dnes se na tuto platformu ale podíváme ještě jednou, čistě z herního pohledu. Popíšeme si například, čím se liší Xbox LIVE hry od těch běžných a také nahlédneme, pro jaké další platformy můžeme programovat stejným způsobem.
Jak už jsme si řekli, Windows Phone telefony mají opravdu dostatečný výkon. Dají se pro ně vytvářet skvěle vypadající hry, využívající 2D i 3D grafiky, pro inspiraci se můžete podívat na tento oficiální sestřih z ledna 2011:
Xbox LIVE
Pro Windows Phone se dají vytvářet tři základní typy aplikací – standardní programy, běžné hry a hry s certifikací Xbox LIVE. Programy se po nainstalování umisťují do abecedně seřazeného seznamu aplikací, napravo od hlavní obrazovky. Ikonky her se oproti tomu integrují do herního hubu. Můžete se podívat na přiloženém videu, jak toto rozdělení vypadá v praxi.
Hry a Marketplace na Windows Phone 7
Watch this video on YouTube
V seznamu her vidíme uvedené nejdřív Xbox LIVE hry, až teprve potom ty ostatní. Toto rozdělení na dvě skupiny je určitá snaha Microsoftu oddělit kvalitní hry od těch běžnějších. I při procházení Marketplace si můžeme všimnout, že je těmto hrám dáván mnohem větší prostor z hlediska propagace. Xbox LIVE je určitá certifikace, posvěcení kvality od Microsoftu. Pokud si v XNA vytvoříme nějakou hru a nahrajeme ji na market, budeme zařazeni do té běžné kategorie. I tam se dá samozřejmě uspět, existuje i několik velice úspěšných her bez této “nálepky”. Pokud ale pracujete na nějaké větší hře, například jako celý tým, určitě se o této certifikaci vyplatí začít uvažovat.
Pro získání Xbox LIVE je potřeba navázat spolupráci s některým ze zvolených partnerů Microsoftu. Jedním z publisherů je i přímo Microsoft Game Studios. Měli by vám pomoci například s lokalizací hry, otestováním na zařízeních, nebo s následnou propagací. Pokud už máte projekt v pokročilém stádiu vývoje, můžete se je pokusit kontaktovat na jejich mailové adrese, viz stránky Her s touto certifikací je zatím docela málo, navíc zatím téměř vždy byly vytvořeny zaběhnutými studii. V poslední době jsou ale známy i případy, kdy se k této výsadě dostala i hra od nezávislých “indie” vývojářů. Pro potenciální úspěch je samozřejmě důležité, aby hra byla celkově odladěná, měla pěknou grafiku a kvalitní zvuky, nejlépe i kvalitní a originální nápad. Z České republiky zatím není znám žádný případ takto certifikované hry, směřuje prý k tomu ale například Rune Legend od studia Dreadlocks.
Xbox LIVE hry mají i další výhody. Mohou využívat herních LIVE služeb známých z Xboxu 360, jako například identifikace hráče pomocí jeho Gamertagu, včetně možnosti využití jeho animované postavičky. Mohou implementovat achievementy – bodové ohodnocení různých úkolů ve hře, které se potom započítává do celkového skóre hráče a ukazuje jeho přátelům. V Xbox LIVE hrách se často setkáme i s dalšími výsadami, například že je z nich možno dokupovat další levely, pomocí takzvaných in-app purchases. To zatím u běžných her není povoleno. Existuje už také několik technologických ukázek, kde například hra na Windows Phone komunikuje přes služby Xbox LIVE s jiným telefonem, nebo s Xboxem 360 a třeba i využívá tahový multiplayer. Takových her je ale zatím naprosté minimum (např. Kinectimals). Do budoucna to ale bude určitě jeden ze zajímavých směrů. Některé hry například budou moci využívat i propojení telefonu s pohybovým senzorem Kinect.
Většinu těchto výhod si ale zvládneme naprogramovat i bez podpory Xbox LIVE. Neměl by být ani problém vytvořit si síťovou hru se skutečným multiplayerem, díky podpoře socketové komunikace. Pro implementaci jednoduchých achievementů (bodových ohodnocení), žebříčků maximálních skóre a podobně existují už i hotové knihovny, jako například na
Technologie XNA
Jak už bylo zmíněno v prvním článku, naprostá většina her pro Windows Phone se programuje v XNA Frameworku. Jednoduchou hru pro Windows Phone si můžeme vytvořit i v Silverlightu, technologie XNA je na to ale lépe uzpůsobena. Na její základní principy se podíváme v příštím díle.
Pokud si hru navíc vytvoříme v XNA, velice jednoduše si ji budeme moci převést na další platformy – především pro počítače a herní konzole Xbox 360. Bohužel, s ostatními mobilními zařízeními to budeme mít složitější, tam si zatím naši hru jednoduše nenaportujeme. Pro systémy Android, iOS nebo Bada se programuje jiným způsobem, většinou pomocí jazyka C++ nebo Objective-C a technologie OpenGL. Je možné, že se to do budoucna ale zlepší, postupně vznikají i neoficiální portace XNA, jako například XNI, nebo MonoXNA. Už v současné době se tam prý dají upravit a spustit jednoduché hry. Často se zde ale musí platit ještě další poplatky apod. Zajímavou novinkou posledních měsíců je implementace XNA v Silverlightu 5. Díky tomu naše hra může běžet i přímo ve webovém prohlížeči – a to dokonce na Windows i na Macu, to je určitě zajímavá výhoda. Spíš jako takový experiment pak působí projekt, kdy lze hru v XNA zkompilovat i přímo do JavaScriptu a HTML5, nebo částečná portace XNA knihoven pro .NET Micro Framework (projekt Grommet).
Pokud začnete vyvíjet hru, primární zájem ale určitě budete mít o platformy Windows Phone a Xbox 360. Zajímavá může být i portace hry pro běžné počítače, sice zde dnes není rozšířený žádný centrální Marketplace, kde by se hry daly dobře prodávat, s příchodem Windows 8 se to ale bude s největší pravděpodobností měnit. Tento nový systém by měl být dostupný i na tabletech (takových těch velkých plackách s dotykovým displejem), mělo by zde být grafické rozhraní podobné Windows Phone 7. I když v tomto rozhraní zatím dostupnost XNA nebyla potvrzena, doufejme, že se jí ve finální verzi dočkáme. Hru pro počítače si ale samozřejmě můžete vydat už teď, buď ji dáte ostatním k dispozici zdarma, nebo ji zkusíte nabídnout přes různé portály, jako například Big Fish Games apod.
Tvorba her pro Xbox 360
Pokud byste chtěli svoji hru začít nabízet pro Xbox 360, situace je zde víceméně podobná jako u Windows Phone. Na Xboxu jsou dostupné tři kategorie her – takzvané Xbox LIVE Indie Games (XBLIG), což jsou běžné hry, jaké tam může nahrát každý vývojář (většinou tedy i podle toho vypadá jejich kvalita). Dále je zde kategorie Xbox LIVE Arcade, kde už jsou mnohem propracovanější hry od větších studií, které vznikaly ve spolupráci s Microsoftem (podobně jako u mobilních Xbox LIVE her). Říká se, že se do této kategorie bývá ještě mnohem náročnější dostat. V podstatě jedinou zaručenou cestou, aby si vás všimli, je například vítězství v nějaké soutěži typu IGF Awards nebo Dream Build Play Challenge. Třetí kategorií her pro Xbox 360 jsou pak samozřejmě tříáčkové krabicové tituly, jako byla například česká Mafia II. Tohle už ale není nic pro malé vývojáře, v tomto businessu se už točí statisíce dolarů a na těchto hrách pracují stohlavé týmy lidí.
Pro Xbox pouze platí trochu jiná pravidla ohledně prodeje, než u Windows Phone, s největší pravděpodobností nahrávání her na XBLIG z České republiky zatím není možné. Klasické Creators Club subscription se sice převedlo pod App Hub předplatné, ale nejspíš tam zůstalo původní omezení jen na vybrané země. Po registraci byste měli mít naštěstí možnost odemknout si svoji herní konzoli a nahrávat si tam svoje hry (já tuhle konzoli zatím k dispozici nemám, takže to odzkoušet nemůžu). Jejich prodej byste si ale poté museli domluvit s nějakým prostředníkem v zahraničí. Také to vypadá, že tuto výsadu mají jen plné placené účty, studenti prodávat hry pro Xbox nemůžou ani v povolených zemích. Snad se to do budoucna změní.
Pro Windows Phone je to ale v ČR mnohem jednodušší, zde opravdu nemáme žádný problém pustit se naplno do vývoje. Drobné mobilní hry, nebo Indie hry pro Xbox 360 mají také tu výhodu, že k potenciálnímu úspěchu nám může stačit jen dobrý nápad a trocha toho štěstí (a samozřejmě i něco málo té následné propagace, k tomuto tématu se můžete například podívat na moje články o prodejích HexaLines).
Budu rád, když se také v diskuzi pod tímto článkem, nebo na našem fóru pochlubíte, jestli už také uvažujete nad tvorbou nějaké hry. V příštím díle se už pustíme do programování :-).