Jak na hry v iPhone ? Začínáme
Opět jsem nedal pokoj a Martina ukecal, tak zde máte první info jak se vlastně hra na iphone píše ..
Nedávno jsem vytvořil svoji první hru pro iPhone, tvorba hry mi otevřela nové znalosti ze světa programování, se kterými se s vámi rád podělím.
http://knotek.info/asteroid-shooter.html
Ve světe programování nejsem žádný nováček, prošel jsem si vývojem v Assembleru, pascalu, céčku, čistým HTML, klasickýma ASP až jsem skončil u platformy Microsoft NET. Této platformě se věnuji více jak šest let. Zároveň se věnuji vedení projektu v Java. Nedávno jsem si, ale pořídil iPhone a tak jsem si řekl, že vyzkouším něco nového. Na rozdíl od všech předchozích jazyků jsem neměl snadnou cestu k možnosti vývoje (nevlastnil jsem Apple). Musím říct úplně OT, že jsem nečekal, že to bude takové překážka. Předpokládal jsem, že pořídím nějakou virtuální reprezentaci Mac OS (pro technicky zdatnější pod vmware). Bohužel tato cesta se ukázala jako neproveditelná, respektive vůbec nefungovala (oproti Fusion pod Apple, které fungují bezvadně). Nic naplat platforma mě lákala, koupil jsem obyčejný macbook. Musím říct, že mě macbook mile překvapil, tichý výkonný za rozumnou cenu (cca 25 tis v Alza).
Protože jsem si již pár novými platformami prošel, začal jsem na nejvhodnějším místě, kde by měl začít každý, u výrobce:
http://developer.apple.com/iphone/
(Prakticky pro případné nadšence doporučuji přečíst všechny dokumenty na úvodní straně, vyplatí se to, hlavně pak iPhone Application Programming Guide).
Zde se dostavilo první zklamání, jak mě mile HW překvapil, tak dokumentace u Apple mě překvapila nemile. Kdo někdy vstoupil do světa vývoje v Microsoft (potažmo MSDN), tak asi již nenajde kvalitnější dokumentaci. Nicméně dokumenty jsou relativně stručné a výstižné, hůře se v nich orientuje a něco jako slovník pojmů a postupů jsem zatím neodhalil. Bohužel pro Apple je i vývojářská komunita skoupější na slovo něž u jiných jazyků a tak se pro iPhone hůře hledají návody a aplikace.
Po prostudování frameworku cocoa (nad objective-c) a oprášením klasického céčka jsem se pustil do samotné realizace. Pro začátek je nutné se zaregistrovat v Apple (Developer Connection) na výše uvedeném linku a poté je si stáhnout xcode.
Stažení je dostupné v sekci Downloads. Zde je pro každý Max Os dostupný balíček s SDK pro iPhone, bez kterého se neobejdete. Instalace nic překvapivého stáhnou proklikat hotovo.
Po stažení doporučuji najít nějaký Hello work příklad pro iPhone a vyzkoušet pustit v xcode. Pro začátečníky doporučuji, všimněte si vlevo nahoře volby prostředí pro iPhone, pro spuštění na vašem počítači je nutná volba iPhone simulátor. Další volby s Device v názvu slouží pro běh přímo v připojením iPhone, na což je Apple potřeba licence (viz níže).
Po pár testech s Windows based aplikacemi jsem přikročil k bádání nad možností tvorby her. Pročetl jsem pár článků na internetu a dospěl k názoru, že pro začátky bude plně dostačovat framework cocos2d. Široká veřejnost jej doporučuje pro úplně začátky.
http://www.cocos2d-iphone.org/
Stažení frameworku opět velmi jednoduché, postup snadno čitelný a i běžný Franta uživatel musí mít hotovo do několika minut. Po stažení je prakticky nutné pouze otevřít nápovědu, pustit podle instrukcí instalační script a je hotovo. Instalační script přichystá šablony pro xcode, které názorně prezentují: základní princip, box2d a chipmunk (fyzikální engine). Šablony jsou perfektně zpracované a po založení projektu jedním klikem z xcode okamžitě spustitelné.
Byl jsem až překvapen jednoduchostí spuštění, protože rozjetí příkladů pro samotný iPhone mi zabralo daleko více času.
Stránky pro cocos2d jsou velmi dobře provedeny, pro zahájení vývoje stačí proběhnout dokumentaci:
http://www.cocos2d-iphone.org/wiki/doku.php/
A poté se již jen zoufale ptát na, kde vám velmi rychle poradí. Je to samozřejmě nadsázka, ale kdo si přečte poctivě krátkou dokumentaci, tak se směle může pustit do nějaké malé hry.
Nedoporučuji začínat s velkým projektem, hezky pomalu od začátku. Pro ty, co ještě nemají zkušenosti s vývojem na neznáme platformě, tak základní princip návrhu je:
- na jeden papír sepsat co chci vytvořit
- zamyslet se co za úskalí má realizace (příklad níže)?
o Potřebuji načíst png průhledné obrázky
o Potřebuji detekovat kolize objektů
o Potřebuji, aby se mi objekt plynule zmenšoval
o Potřebuji kontrolovat platnost pole…
o Jak udělám životy?
o Jak uchovám skóre?
o Atd ..
- poté co znám odpovědi na všechny výše uvedené otázky začnu s realizací
Pokud se na hře domluví více lidí, tak navíc doporučuji přečíst něco o agilním programování a hlavně si určit hlavního koordinátora.
Nyní ta složitější část, pokud chcete aplikaci vidět ve svém iPhone je potřeba si zažádat o developerský certifikát. K certifikátu se dostanete jen po úspěšné registraci jako Apple vývojář. Registrace pozbývá několik kroků:
http://developer.apple.com/iphone/program.
- stažení dokumentu registrace
- vyplnění údajů perem (platební karta podmínkou, s nejmíň 99 dolary
- odeslání faxem na číslo na dokumentu
- počkat cca 3 dny
Po třech dnech je Vám oznámen úspěch neúspěch. Po úspěšné registraci můžete generovat několik certifikátů (developerská a distribuční)
Developerský je prvním krokem. Za pomocí tohoto certifikátu můžete do svého iPhone nahrát vaší aplikaci.
Distributorský poté slouží pro distribuci na App store (k tomu je navíc potřeba vyplnit bankovní informace pro zasílání faktur).
Za pomocí certifikátů přeložíte aplikaci a podle návodu ji nahrajete na App store ke schválení. Nyní nastávají cca 2 dny napětí, co vše jste pokazili :-) mě osobně neschválili aplikaci i díky různým ikonám pro iPhone a iTunes.
Pak již jen čekáte, zda si někdo aplikaci stáhne. Reporty jsou generovány cca po 12h následující den.
http://developer.apple.com/iphone/manage/overview/index.action
Pokud Vás článek zaujal, tak příště něco možná konkrétního :-)
Martin Knotek