1. diel - Programujeme Android hru - Spoznávame LIBGDX
Vitajte!
Spoločne vytvoríme jednoduchú hru na mobilné telefóny s OS Android,
pretože sa jedná o najrozšírenejší systém, ktorý má z ekonomického
hľadiska veľmi prívetivé vývojové prostredie (za vývojársky účet som
zaplatil iba $ 25) a mnoho dostupnej dokumentácie, zameriame sa práve na
neho.
Najskôr je nutné, aby ste mali konkrétnu predstavu, akú hru môžeme vytvoriť, preto si hru môžete stiahnuť v Google play na adrese https://play.google.com/...apps/details... a vyskúšať. Osobne som presvedčený, že niektorí tu vytvorí ďaleko lepšiu hru, ako som urobil ja. O grafike toho totiž toľko neviem a nemám umelecký cit. Myslím si, že pri tvorbe hry je ďaleko dôležitejšie umelecká zložka než samotné programovanie.
K našej práci budeme používať multi-platformové herné knižnicu LIBGDX, takže samozrejme kto bude chcieť, si bude môcť hru prispôsobiť pre ďalšie operačné systémy.
Vopred oznamujem, že nie som profesionál a programovanie mám naozaj len ako hobby, takže až ma tu budete "grilovať", mohli by ste byť trošku zhovievavejší . Osobne sa považujem za veľkého pragmatika, rád si robím veci po svojom a preto niekedy úmyselne nedodržím zavedené konvencie (na toto upozorním), niekedy naopak budem mať nedostatok o ktorom ani nebudem vedieť. Avšak preto sme komunita, aby sme spolupracovali a tým sa aj novému naučili a prípadné chyby odstránili. Nepochybujem, že na ITnetwork sú veľkí borci, takže to spoločne doladíme a prokousáme sa tým.
Len dúfam, že po zverejnení nevzniknú v Google play iba zmenené kópie hry, ktorú si tu vytvoríme, ale že budete originálna a vytvoríte hry vlastné. Kto vie, možno týmto seminárom zasejeme semienko nejakého spoločného herného projektu? Alebo budete vytvárať hry napr. Pre svojho člena rodiny či známeho ...?
Pre koho je SEMINÁR URČENÝ?
Veľmi nerád robím z vecí vedu, preto budem prezentovať veľmi prakticky, zrozumiteľne a jednoducho tak, aby seminár bol naozaj pre každého, kto si chce skúsiť jednoduchú hru urobiť. Navyše tu máme naozaj veľkú podporu schopných programátorov, takže si zhrňme, čo je naozaj potrebné:
- Mať silnú motiváciu pre vytvorenie vlastnej hry na android a keď ihneď niečo nefunguje tak, ako by malo, nevzdávať sa, ale lámať si hlavu a hľadať riešenia
- Prívetivý vzťah k angličtine - opäť môže splniť každý, kto chce, napríklad aj so slovníkom
- PC spĺňajúce systémové požiadavky vývojového prostredia Eclipse
- Prístup k internetu (to samozrejme máte, inak by ste toto nečítali )
- Základy objektového jazyka (JAVA, C ++, C #, ...) a naozaj len základy. Ide len o to, aby ste vedeli, čo je to premenná, metóda a mali základné povedomie o objektovom programovaní. Tento bod kladiem až na spodok hierarchie dôležitosti, pretože seminár je aj pre začínajúcich programátorov a je od toho, aby sme si tu jazyk Java precvičili, či sa jej naučili. Vynikajúci učebnicu základov Javy, kde môžete odbornosť čerpať už David vytvoril tu a učebnicu objektového programovania tady.
ČO JE TO LIBGDX A ČO DOKÁŽE?
LIBGDX je multi-platformové Java herné knižnica založená na OpenGL, licencovaná pod Apache licenciou (open-source), vyvíjaná a zlepšovať rozsiahlou komunitou vývojárov. Obsahuje mnoho užitočných komponentov. Predstavujem si ju ako takú "prekladateľku", ktorá mi poskytuje rozsiahle API (súbor procedúr, funkcií, tried a protokolov nejaké knižnice), ktoré potom prekladá do ostatných platforiem ako Android, OS X, Java applet.
Pre naše účely v LIBGDX vidím najväčšiu výhodu v tom, že nebudeme musieť spúšťať žiadne hardvérovo náročné virtuálne zariadenia, na ktorom by sme našej hru spúšťali, veľmi rýchlo a bez problémov ju spustíme priamo z IDE ako Java aplikáciu. LIBGDX nám ďalej ponúka:
Spomínanú použiteľnosť na viacerých platformách iba s jedným API a to na
- windows
- linux
- Mac OS X
- Android (2.2+)
- BlackBerry
- iOS
- Java Applet (vyžaduje nainštalovanú JVM)
- Javascript / WebGL (Chrome, Safari, Opera, Firefox, IE cez Google Chrome Frame
audio
- Prehrávanie hudby a zvukových efektov vo formátoch WAV, MP3 a OGG
užívateľský vstup
- podpora myši a klávesnice
- podpora dotyku na obrazovku
- podpora akcelerometre (accelerometer) a kompasu
- rozpoznanie jednoduchých gest
Matematiku a fyziku
- triedy pre matice, vektory a Kvaterniony
- triedy pre vymedzovanie tvarov ako kruh, obdĺžnik, mnohouholník ai.
- testovanie pretínania a prekrývanie tvarov
Prácu so súbormi
- čítanie / zápis zo / do súboru
- kopírovanie, presúvanie a mazanie súboru
- výpis súborov a adresárov
- kontrola či súbor / adresár existuje
- funkcie preferences pre jednoduché uloženie nejakého nastavenie
Každá z platforiem sa v libgdx obsluhuje trošičku inak, u OS Androidu máme v podstate 3 možnosti, ako súbory ukladať, buď priamo do našej aplikácie ako zdroja (potom sú tieto súbory iba na čítanie), alebo do interného úložiska mobilu / tabletu (tieto súbory sú ako pre čítanie, tak pre zápis), alebo do externého úložiska.
Grafiku, ktorá ponúka tri stupne vyspelosti
- Low-Level OpenGL helpers: textúry, odtiene, jednoduché renderovanie jednoduchých tvarov ako kruhu, obdĺžnika, priamky ...
- High-level 2D APIs: Ortho kamera, trieda SpriteBatch pre vykresľovanie obrázkov, písma
- High-Level 3D APIs: Perspective kamera
Samozrejme to nie je všetko, pre kompletný popis knižnice odkazujem oficiálnu stránku knižnice https://libgdx.badlogicgames.com/
Problem vývojového prostredia A KNIŽNICE LIBGDX
Už pred samotným stiahnutím IDE nám vzniká problém. Máme dve možnosti výberu vývojového prostredia:
- Eclipse - je staršia vývojové prostredie, avšak neustále vyvíjané a so silnou užívateľskou podporou, problém je v tom, že Eclipse už nie je oficiálnym vývojovým prostredím pre Android. Na webových stránkach http://developer.android.com/ sa dozviete, že v Eclipse už programovať nemáte a že máte migrovať do Android Studia
- Android štúdio - je v súčasnej dobe novej oficiálnej vývojové prostredie pre operačný systém Android, ale tu je zase problém v tom, že Android štúdio nie je zatiaľ oficiálne podporované našou knižnicou LIBGDX.
Z vyššie povedaného vyplýva, že máme smolu a celý projekt, ktorý ešte ani nezačal, tak padá a končíme . Nezostáva nič iné, než trošku prižmúriť oko a málinko porušiť pravidlá, po malej úprave projektu môžete pracovať na Android štúdiu, alebo podľa môjho návodu pracovať pod Eclipse. Sám som si zvolil Eclipse, pretože má nižšiu systémové požiadavky, než Android štúdio a to sa mi veľmi hodí, pretože môžem vyvíjať aj na tabletu napríklad vo vlaku cestou do práce.
Prvým predpokladom toho, aby všetko fungovalo, je, že máte nainštalovanú Javu. Toto pokladám za absolútnu samozrejmosť a nebudem sa teda tu inštaláciou Javy zaoberať.
Pre dnešný deň toho bolo povedané až moc, nabudúce si stiahneme IDE a ďalší potrebný softvér a pokúsime sa všetko rozbehnúť.