IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Programujeme Android hru - Poznáváme LIBGDX

Vítejte! Společně vytvoříme jednoduchou hru na mobilní telefony s OS Android, protože se jedná o nejrozšířenější systém, který má z ekonomického hlediska velmi přívětivé vývojové prostředí (za vývojářský účet jsem zaplatil pouze $25) a mnoho dostupné dokumentace, zaměříme se právě na něj.

Nejdříve je nutné, abyste měli konkrétní představu, jakou hru můžeme vytvořit, proto si hru můžete stáhnout v Google play na adrese https://play.google.com/…apps/details?… a vyzkoušet. Osobně jsem přesvědčen, že někteří tady vytvoří daleko lepší hru, než jsem udělal já. O grafice toho totiž tolik nevím a nemám umělecký cit. Myslím si, že při tvorbě hry je daleko důležitější umělecká složka než samotné programování.

K naší práci budeme používat multi-platformní herní knihovnu LIBGDX, takže samozřejmě kdo bude chtít, si bude moci hru přizpůsobit pro další operační systémy.

Předem sděluji, že nejsem profesionál a programování mám opravdu jen jako hobby, takže až mě tady budete "grilovat", mohli byste být trošku shovívavější :). Osobně se považuji za velkého pragmatika, rád si dělám věci po svém a proto někdy úmyslně nedodržím zavedené konvence (na toto upozorním), někdy naopak budu mít nedostatek o kterém ani nebudu vědět. Nicméně proto jsme komunita, abychom spolupracovali a tím se i novému naučili a případné chyby odstranili. Nepochybuji, že na ITnetwork jsou velcí borci, takže to společně doladíme a prokousáme se tím.

Jen doufám, že po zveřejnění nevzniknou v Google play pouze pozměněné kopie hry, kterou si tady vytvoříme, ale že budete originální a vytvoříte hry vlastní. Kdo ví, třeba tímto seminářem zasejeme semínko nějakého společného herního projektu? Nebo budete vytvářet hry např. pro svého člena rodiny či známého...?

PRO KOHO JE SEMINÁŘ URČEN?

Velmi nerad dělám z věcí vědu, proto budu prezentovat velmi prakticky, srozumitelně a jednoduše tak, aby seminář byl opravdu pro každého, kdo si chce zkusit jednoduchou hru udělat. Navíc zde máme opravdu velkou podporu schopných programátorů, takže si shrňme, co je opravdu potřeba:

  1. Mít silnou motivaci pro vytvoření vlastní hry na android a když ihned něco nefunguje tak, jak by mělo, nevzdávat se, ale lámat si hlavu a hledat řešení
  2. Přívětivý vztah k angličtině - opět může splnit každý, kdo chce, třeba i se slovníkem :)
  3. PC splňující systémové požadavky vývojového prostředí Eclipse
  4. Přístup k internetu (to samozřejmě máte, jinak byste tohle nečetli :) )
  5. Základy objektového jazyka (JAVA, C++, C#, ...) a opravdu pouze základy. Jde jen o to, abyste věděli, co je to proměnná, metoda a měli základní povědomí o objektovém programování. Tento bod kladu až na spodek hierarchie důležitosti, protože seminář je i pro začínající programátory a je od toho, abychom si zde jazyk Java procvičili, či se jí naučili. Vynikající učebnici základů Javy, kde můžete odbornost čerpat již David vytvořil tady a učebnici objektového programování tady.

CO JE TO LIBGDX A CO UMÍ?

LIBGDX je multi-platformní Java herní knihovna založená na OpenGL, licencována pod Apache licencí (open-source), vyvíjena a zlepšována rozsáhlou komunitou vývojářů. Obsahuje mnoho užitečných komponent. Představuji si ji jako takovou "překladatelku", která mi poskytuje rozsáhlé API (soubor procedur, funkcí, tříd a protokolů nějaké knihovny), které pak překládá do ostatních platforem jako Android, OS X, Java applet.

Pro naše účely v LIBGDX spatřuji největší výhodu v tom, že nebudeme muset spouštět žádné hardwarově náročné virtuální zařízení, na kterém bychom naší hru spouštěli, velmi rychle a bez problémů ji spustíme přímo z IDE jako Java aplikaci. LIBGDX nám dále nabízí:

Zmíněnou použitelnost na vícero platformách pouze s jedním API a to na

  • Windows
  • Linux
  • Mac OS X
  • Android (2.2+)
  • BlackBerry
  • iOS
  • Java Applet (vyžaduje nainstalovanou JVM)
  • Javascript/WebGL (Chrome, Safari, Opera, Firefox, IE přes Google Chrome Frame

Audio

  • Přehrávání hudby a zvukových efektů ve formátech WAV, MP3 a OGG

Uživatelský vstup

  • podpora myši a klávesnice
  • podpora dotyku na obrazovku
  • podpora měřiče zrychlení (accelerometer) a kompasu
  • rozpoznání jednoduchých gest

Matematiku a fyziku

  • třídy pro matice,vektory a kvaterniony
  • třídy pro vymezování tvarů jako kruh,obdélník,mno­hoúhelník aj.
  • testování protínání a překrývání tvarů

Práci se soubory

  • čtení/zápis ze/do souboru
  • kopírování, přesouvání a mazání souboru
  • výpis souborů a adresářů
  • kontrola zda soubor/adresář existuje
  • funkce preferences pro snadné uložení nějakého nastavení

Každá z platforem se v libgdx obsluhuje trošičku jinak, u OS Androidu máme v podstatě 3 možnosti, jak soubory ukládat, buď přímo do naší aplikace jako zdroje (pak jsou tyto soubory jen pro čtení), nebo do interního úložiště mobilu/tabletu (tyto soubory jsou jak pro čtení, tak pro zápis), anebo do externího úložiště.

Grafiku, která nabízí tři stupně vyspělosti

  • Low-Level OpenGL helpers: textury,odstíny, jednoduché renderování jednoduchých tvarů jako kruhu,obdélníku, přímky...
  • High-level 2D APIs: Ortho kamera, třída SpriteBatch pro vykreslování obrázků, písma
  • High-Level 3D APIs: Perspective kamera

Samozřejmě to není vše, pro kompletní popis knihovny odkazuji na oficiální stránky knihovny https://libgdx.badlogicgames.com/

PROBLÉM VÝVOJOVÉHO PROSTŘEDÍ A KNIHOVNY LIBGDX

Již před samotným stažením IDE nám vzniká problém. Máme dvě možnosti výběru vývojového prostředí:

  1. Eclipse - je starší vývojové prostředí, avšak neustále vyvíjeno a se silnou uživatelskou podporou, problém je v tom, že Eclipse již není oficiálním vývojovým prostředím pro Android. Na webových stránkách http://developer.android.com/ se dozvíte, že v Eclipse již programovat nemáte a že máte migrovat do Android Studia
  2. Android studio - je v současné době nové oficiální vývojové prostředí pro operační systém Android, ale tady je zase problém v tom, že Android studio není zatím oficiálně podporováno naší knihovnou LIBGDX.

Z výše řečeného vyplývá, že máme smůlu a celý projekt, který ještě ani nezačal, tak padá a končíme :). Nezbývá nic jiného, než trošku přimhouřit oko a malinko porušit pravidla, po malé úpravě projektu můžete pracovat na Android studiu, nebo podle mého návodu pracovat pod Eclipse. Sám jsem si zvolil Eclipse, protože má nižší systémové požadavky, než Android studio a to se mi velmi hodí, protože můžu vyvíjet i na tabletu třeba ve vlaku cestou do práce.

Prvním předpokladem toho, aby vše fungovalo, je, že máte nainstalovanou Javu. Toto pokládám za naprostou samozřejmost a nebudu se tudíž tady instalací Javy zabývat.

Pro dnešní den toho bylo řečeno až moc.

Příště, Programujeme Android hru - Stažení potřebného software, si stáhneme IDE a další potřebný software a pokusíme se vše rozjet.


 

Všechny články v sekci
Programujeme Android hru
Přeskočit článek
(nedoporučujeme)
Programujeme Android hru - Stažení potřebného software
Článek pro vás napsal Jaroslav Polívka
Avatar
Uživatelské hodnocení:
14 hlasů
Autor se věnuje převážně jazykům JAVA a C++
Aktivity