Pozn. red.: Seriál o vývoji počítačových, konzolových a mobilních her v XNA Game Studiu vás nejprve uvede do tématu vývoje her obecně, a proto pro čtení a pochopení tohoto a ani příštího článku nejsou potřeba vůbec žádné znalosti s programováním. V pozdějších dílech už se nicméně předpokládá určitá základní znalost věci, neboť půjde o reálný vývoj jedné takové jednoduché hry. Články si pro vás připravila dvojice externích autorů: Tomáš Slavíček a Štěpán Pazderka.
ÚvodUrčitě vás baví hrát hry. Možná jste už někdy přemýšleli, jak se takové hry vytváří, případně jste si sami chtěli nějakou zkusit udělat. V tomto několikadílném seriálu si společně projdeme základní principy, popíšeme si, jak fungují programy a podíváme se, jak se hry navrhují. Postupně si společně dotáhneme alespoň jednu do konce. Nemusíte se bát, obtížnost článků by měla být zvládnutelná i pro začínající zájemce o programování.
Hry budeme vytvářet pomocí výborného XNA Game Studia vydaného Microsoftem, postaveného nad rozhraním DirectX. Knihovny DirectX, prověřené mnoha roky úspěšného vývoje, využívá v dnešní době mnoho her po celém světě. Pro začátečníka ale může být poměrně obtížné se v nich zorientovat, je tam potřeba často psát mnoho nepříjemného opakujícího se kódu.
XNA Game Studio má za cíl práci s nimi co nejvíce zjednodušit. Spolu s programovacím jazykem C# nám umožňuje pohodlně vytvářet hry pro spoustu různých zařízení. Je tak skvělou možností zasvětit do vývoje počítačových her i lidi, kteří předtím nikdy žádnou hru nevyvinuli a jen si dosud hráli třeba v nějakém editoru.
Jak funguje program a co je .NET?Jako takový úvod si nejdříve popíšeme, k čemu vlastně máme programovací jazyky a pro jaká zařízení budeme moci vyvíjet.
Vězme, že když se píše program, tak se dnes, alespoň v naprosté většině případů, píše jako sekvence za sebou jdoucích funkcí či zkrátka příkazů. Ve spodní vrstvě leží procesor, který je, jak se často říká, mozkem počítače. Procesor je strašně primitivní jednotka, která vůbec neví, co velkého dělá, ale dělá to zatraceně rychle. A vy jste ten, kdo napíše program, který dělá něco velkého a úžasného. Jste hlavní architekt, který navrhne budovu a procesor ji pro vás vytvoří na základě vašeho předpisu. Neví proč má zvolit takový či onaký materiál, či proč má být oken tu a támhle tolik a tolik, ale ví, že to má udělat, a tak tak činí. Jednoduché jak facka.
Protože ale psaní přímo instrukcí pro procesor je zatraceně, ale skutečně zatraceně, zdlouhavé, navrhly se programovací jazyky. Můžeme tomu říkat třeba jistá menší vrstva abstrakce. Nechceme se babrat s tím, jak procesor přesouvá jednotlivé jedničky a nuly z paměti, načítá je do registrů a aritmeticko-logická jednotka s nimi něco provede a pak je zase někam uloží. Chceme si práci zjednodušit a tím urychlit vývoj. Jenže procesor ničemu jinému než jedničkám a nulám nerozumí, a tak musíme najít vhodného překladatele, který náš program, napsaný v jisté řeči či jazyku, pro nás přeloží do nesrozumitelného jazyka procesoru. Tím překladatelem je kompilátor. Existuje jich řada, protože existuje řada programovacích jazyků.

Problém procesorů je ten, že jich existuje ohromné množství a i každý procesor rozumí jiným příkazům a instrukcím. Tomu říkáme, že používá jistou instrukční sadu. V současnosti asi nejvíce procesorů pracuje s instrukční sadou x86. Drtivá většina z nich by už rozuměla i x64 instrukční sadě, která umí adresovat více paměti. Ale to už zabíhám do zbytečných detailů.
Prozatím berme za fakt, že procesor má instrukční sadu a ta instrukční sada se s jiným procesorem může lišit. To známe. Většina počítačů je dnes postavena právě na x86 řadě. Pokud jste ale trochu znalí, tak jistě víte, že například společnost Apple před pár lety používala jinou řadu procesorů – typu PowerPC. Ta používala jinou instrukční sadu a to logicky znamenalo, že programy dělané na sadu x86 na takovém počítači fungovat nemohly.
Například Windows jste na takovém počítači nespustili. Abych si trochu rýpnul: Apple následně přešel na klasické procesory s podporou x86, což logicky vyústilo v podporu Windows i na těchto počítačích, kterou se teď strašně chlubí :)
Stejné to bývá dost často například s telefony či herními konzolemi. A právě proto vznikly v zásadě dva dnes nejpoužívanější projekty – Java a .NET.
Oba projekty se snaží v zásadě o to samé. Dodat programovací jazyk a vývojové nástroje tak, aby mohl vývojář vyvíjet aplikace pokud možno na jakékoliv zařízení. Filosofie je přitom taková, že kód se přes kompilátor nepřekládá na stroji vývojáře, ale až na stroji, kde má být aplikace provozována. A díky tomu je tzv. multiplatformní. Z hlediska zařízení, na kterých má ale fungovat, to vyžaduje jistou věc a tou je tzv. runtime. Tedy software, program, který bude balíčky zašifrovaných programů kompilovat na zařízení přímo na míru procesoru.
Z hlediska vývoje je to věc, která nám právě zaručuje možnost, že naše hry naprogramované v XNA Frameworku poběží nejen na počítačích, ale i na zařízeních, jako jsou telefony s Windows Phone 7, herní konzole Xbox 360 nebo hudební přehrávače Zune. Jak jsem ale řekl, je to limitováno podporou ze strany zařízení, takže pokud nějaké herní zařízení .NET Framework Runtime nainstalované nemá a neexistuje na něj žádná verze, tak si zatím nezahrajeme. Například na Sony PlayStation 3 si společně hru ještě nevytvoříme. Za to ale Microsoft opravdu nemůže :)
Ale neznamená to, že to nikdy nebude možné ;) Pokud se najde dost lidí, kteří do PlayStation podporu .NET a XNA Frameworku dodají, tak možná v budoucnu přibude i taková možnost.
Vývojové prostředí – instalace potřebných programůNa vývoj v .NETu se používá oficiální vývojové prostředí od Microsoftu – Visual Studio. Do počítače je dále potřeba nainstalovat XNA framework. Všechno se dá stáhnout v jednom samostatném balíku, včetně dalších komponent, ze stránek App Hub. Vývojové nástroje jsou k dispozici zdarma, je k dispozici verze Visual Studio Express, které nám pro většinu věcí bude stačit. Můžete si tyto nástroje už zkusit stáhnout a nainstalovat, v příštích dílech se na ně ale podíváme podrobněji.

Jejich licence není nijak omezující, můžeme pomocí nich vyvíjet i komerční aplikace. Pokud jste student střední nebo vysoké školy a máte k dispozici ISIC kartu, můžete si stáhnout i kompletní profesionální verzi vývojových nástrojů – Visual Studio Professional, ze stránek DreamSpark.
ShrnutíV dalším díle (vyjde zhruba za dva dny) se podíváme podrobněji na to, jak se navrhují, neboli designují, hry. Potom si popíšeme vývojové nástroje a postupně se pustíme do programování.
O autorovi:Studuji na gymnáziu. Věnuji se programovaní v C#, tvorbě webu pod PHP a ASP.NET technologiemi, stříhání videa v Adobe Premiere a After Effects a dělám grafiku ve Photoshopu. Mám proklatě velkou slabost pro notebooky od Sony a často propadám nákupní horečce na Steamu.

