Programovanie hier v jazyku Java

7.1.2012

Java je môj obľúbený programovací jazyk; pomerne dobre navrhnutý, vynikajúco dokumentovaný, použiteľný aj na rozsiahle projekty. Ďalšou výhodou sú rôzne nástroje, napríklad vývojové prostredie Eclipse, ktoré si môžete zadarmo stiahnuť z internetu. Môžete začať s prázdnym počítačom, za pár minút si nainštalovať úplnú zostavu programov používaných profesionálmi, a nestojí vás to ani cent.

Keď som sa prvýkrát učil programovať – niekedy počas základnej školy, na počítači PMD-85, v jazyku Basic – najviac ma lákala predstava, že budem raz písať vlastné počítačové hry. V tej dobe to vyzeralo pomerne jednoducho. Vtedajšie hry nemali zložitú grafiku ani zvukové efekty, iba dobrý nápad a na dnešnú dobu pomerne jednoduchý algoritmus; naprogramovať daný algoritmus pomocou vtedajších prostriedkov samozrejme nebolo jednoduché, ale bolo jednoduché ho pochopiť. Bolo jednoduché si predstaviť, že až sa naučíte o čosi lepšie programovať, sadnete si cez prázdniny za počítač a vytvoríte niečo veľmi podobné. Navyše, každý počítač v tej dobe automaticky obsahoval nejaké programovacie prostredie; prácu ste začínali načítaním a spustením príslušného programu príkazom z príkazového riadku; predstava, že raz do toho príkazového riadku napíšete viac príkazov a vytvoríte tak vlastný jednoduchý program, nebola až taká zvláštna.

V tejto sérii článkov si teda chcem zaspomínať na to, čo ma kedysi priviedlo k programovaniu, a zároveň ukázať, aké ľahké (ak sa zaujímate o programovanie) je dnes vytvoriť jednoduchú počítačovú hru.

V článkoch budem predpokladať, že čitateľ ovláda základy programovania, nie nutne v jazyku Java. Niekedy vysvetlím aj jednoduché veci, ak budem mať pocit, že to daná téma vyžaduje, ale ďalšie veci preskočím; keby som podrobne vysvetľoval všetko, bolo by to dlhé a nudné. Radšej sa sústredím na aplikovanie daných vedomostí pri tvorbe počítačovej hry. Ďalšie informácie môžete získať tam, kde som ich získal ja: štúdiom programovania (je viacmenej jedno, v akom jazyku; existuje mnoho programovacích jazykov, ale iba jedno programovanie), čítaním dokumentácie k programovaciemu jazyku (Java má mimoriadne kvalitnú a prehľadnú dokumentáciu), hľadaním na internete, experimentovaním a rozhovormi s kamarátmi, ktorí sa učia podobné veci.

Inštalácia

Začnime teda tým, že si z webu stiahneme potrebné nástroje. Po prvé, potrebujete si nainštalovať jazyk Java; nájdete ho na stránke výrobcu (pôvodne firma Sun, momentálne Oracle). Hľadáme štandardnú verziu Javy, čiže „Java SE“. Nestačí nám však inštalácia pre používateľov, hľadáme inštaláciu pre programátorov, ktorá sa označuje ako „Java SDK“ alebo skrátene „JDK“. Príslušný súbor stiahnite z internetu a nainštalujte na počítači.

(Na vysvetlenie: „Java SE“ je základná verzia Javy, ktorá obsahuje takmer všetko, čo budete potrebovať a je najvhodnejšia na učenie sa tohto jazyka. „Java EE“ obsahuje veci navyše na tvorbu webových aplikácií. „Java ME“ je verzia pre mobilné telefóny. Prostredie potrebné na spúšťanie programov v Jave sa nazýva „Java Runtime“. Prostredie na tvorbu programov v Jave, čiže „Java SDK“ alebo „JDK“ obsahuje to isté a navyše niektoré nástroje pre programátorov. Ak už máte nainštalovanú nejakú staršiu verziu Javy, nemusíte ju odinštalovávať, stačí pridať novú verziu.)

Po druhé, potrebujete si nainštalovať vývojové prostredie Eclipse (alebo nejaké iné vývojové prostredie). Nie je to síce nevyhnutné, ale je to stokrát pohodlnejšie, bez preháňania. Eclipse sa používa na mnoho rôznych účelov; hľadajte verziu označenú ako „for Java Developers“. Stiahnite súbor, rozbaľte ho na disku a spustite program „eclipse.exe“.

Prvé spustenie

Pri prvom spustení sa vás Eclipse opýta, kde chcete mať na disku pracovné prostredie („workspace“). Je to adresár, v ktorom budú uložené vaše projekty; každý v osobitnom podadresári. Počas programovania sa už nemusíte starať, kde je ktorý súbor uložený; Eclipse ich automaticky uloží na správne miesto.

Po prvom spustení prostredia Eclipse sa zobrazí úvodné okno s nápisom „Welcome“. Kliknutím na malé „x“ vedľa nadpisu toto okno zavriete (podobne ako keď zatvárate kartu v internetovom prezerači); ak si ho neskôr budete chcieť pozrieť, nájdete ho v menu „Help“. Po zatvorení úvodného okna sa konečne zobrazí prostredie, v ktorom budete programovať.

Ak máte pocit, že je toho na obrazovke priveľa, zatiaľ sa tým netrápte; neskôr zistíte, čo jednotlivé veci znamenajú. Na okrajoch a naspodku okna sú jednotlivé pomenované karty; každá slúži na niečo iné. (Ak nejakú kartu zatvoríte, neskôr ju nájdete v menu „Window | Show View“.) Uprostred okna je prázdna plocha, v ktorej budete neskôr písať svoje programy. Jednotlivé karty si neskôr môžete preusporiadať, ako vám vyhovuje.

Prvý program

Najdôležitejšia karta je „Package Explorer“; v nej sa zobrazujú vaše programy. Zatiaľ žiadne nemáte, preto je tam len veľká biela plocha. Ťuknite na ňu pravým tlačidlom myši a vyberte „New | Java Project“. Ako názov projektu zadajte napríklad „pokus“; ďalšie veci teraz neriešte a stlačte „Finish“. Práve ste založili svoj prvý projekt. V adresári, ktorý ste určili ako pracovné prostredie, sa vytvoril podadresár „pokus“, ktorý obsahuje všetko súvisiace s týmto projektom. V ňom je podadresár „src“, ktorý obsahuje (ehm, bude obsahovať) zdrojový kód programu.

Java je objektovo orientovaný programovací jazyk. Spustený program sa skladá z častí, ktoré nazývame objekty. Každý objekt je vytvorený podľa nejakej šablóny (časti zdrojového kódu), ktorá sa nazýva trieda. Nie je to celkom presné vysvetlenie, ale na začiatok nám stačí. Aby sme vytvorili program, musíme vytvoriť aspoň jednu triedu; tá musí obsahovať hlavnú metódu, ktorou sa program spustí. Čo sa stane potom, závisí od programu, ktorý napíšeme.

Na karte „Package Explorer“ ťuknite pravým tlačidlom myši na názov projektu alebo na adresár „src“ a vyberte „New | Class“. Ako názov triedy (pozor, to nie je prvý riadok) zadajte nejaké slovo začínajúce veľkým písmenom, napríklad „Pokus“. Ďalej zaškrtnite políčko s nápisom „public static void main(String[] args)“, čím do vytvorenej triedy pridáte hlavnú metódu. Ďalšie veci teraz neriešte a stlačte „Finish“.

V adresári „src“ sa vám práve vytvoril súbor s názvom „Pokus.java“, v ktorom sa nachádza trieda s názvom „Pokus“. (Súbor a trieda sa musia volať rovnako.) Súbor sa otvoril na editovanie. Ak nepočítame komentáre, je v ňom toto:

public class Pokus {

	public static void main(String[] args) {
	}

}

Teraz môžete zadávať príkazy, ktoré má program vykonať. Zložitejšie veci si necháme na neskôr; zatiaľ vypíšeme na textový výstup pozdrav príkazom:

public class Pokus {

	public static void main(String[] args) {
		System.out.println("Ahoj");
	}

}

Vytvorený program uložíme kliknutím na tlačidlo „Save“. (Ak ho zabudnete uložiť, prostredie Eclipse sa vás na to neskôr opýta.) Spustíme ho kliknutím na tlačidlo „Run“. Spustený program vypíše text „Ahoj“ na textový výstup (v prostredí Eclipse ho reprezentuje karta „Console“, ktorá sa nám po spustení programu zobrazí) a skončí.

Cieľom dnešnej lekcie bola inštalácia potrebných nástrojov a spustenie prvého vlastného programu. Ak ste úspešne zvládli tento úvod, môžete si teraz vziať učebnicu Javy alebo vyhľadať nejaký návod na internete a pokračovať samostatne. Keď potom prostredie Eclipse vypnete, všetky jeho nastavenia sa zapamätajú, takže keď ho nabudúce zapnete, pokračujete presne tam, kde ste dnes skončili.

Poznámka na záver: Vypisovane textov na textový výstup nemá na prvý pohľad nič spoločné s tvorbou grafických počítačových hier; načo ho teda spomínam? Po prvé, ako programátori môžeme príkazový riadok využiť na vypisovanie pomocných informácií (napríklad aká hodnota sa práve nachádza v ktorej premennej), aby sme ľahšie videli, či program funguje podľa našich predstáv alebo sa niekde stala chyba. Vo výslednom produkte toto vypisovanie odstránime. Po druhé, práca s textom sa síce nepodobá na prácu s grafikou, ale podobá sa na iné veci, napríklad ukladanie informácií na disk alebo posielanie informácií po sieti. Zručnosti získané pri práci s príkazovým riadkom opäť využijeme, keď budeme neskôr chcieť uložiť a načítať hru, prípadne vytvoriť sieťovú hru.

viliam@bur.sk