Jak programovat hry 3 – V čem hry dělat

12.6.2012 by: Aimia

A nakonec se musíte rozhodnout, v čem chcete hry dělat. Dost to záleží od platformy, na kterou chcete vyvíjet. U iPhone se nejspíš začnete učit ObjectiveC, u Androidu jazyk Java apod.

Také záleží na hře, jakou chcete dělat. 3D fps střílečka vyžaduje rychlost, na to je vhodné C++. Na casual nebo indie hru už vám postačí klidně Java, C# nebo Flash.

Další věcí je finanční stránka. Např. Pokud chcete vyvíjet hry přímo pro iPhone v ObjectiveC, budete si muset pořídit Mac(což není nejlevnější) a zaregistrovat se jako Apple vývojář. Jde to sice i s PC(instalací Mac OS), ale dost problematicky. Ale nemusíte se bát, na iOS je možné vyvíjet i pomocí Flash technologie – o tom si povíme později.

 

//

Máte na výběr programovat hry přímo v nějakém jazyce(Java, C#, Python, Actionscript…), nebo můžete použít nějaký nástroj na vývoj her(GameMaker, Construct, Stencyl apod.).

Některé výhody/nevýhody programování ve programovacím jazyce
[+] nejste omezeni hotovým nástrojem, můžete naprogramovat cokoli
[+] většinou zdarma bez omezení
[+] spousta návodů, rad
—-
[-] vývoj trvá o dost déle
[-] budete muset programovat

Některé výhody/nevýhody programování v nástrojích na tvorbu her
[+] Snadné naučení. Řeší to za vás spoustu problémů
[+] Rychlý vývoj
—-
[-] Většinou nutnost zaplatit poplatek za používání(i když malý). Free verze je omezená
[-] Složitější hra už nemusí být tak „jednoduchá“ jako základni tutoriál
[-] Učíte se používat unikátní program. Pokud přejdete na jiný, nejspíš se budete muset učit vše odznovu.

Pokud začínáte, doporučuji použít co „nejjednodušší“ řešení. Zapomeňte na C++, je zbytečný. Je sice nejrychlejší, ale vývoj trvá déle, je zbytečně složitý… Namísto toho je vhodnější použít Javu/C#/Actionscript. Tyto jazyky jsou novější, přehlednější, jsou v nich vyřešeny některé problémy s kterými se setkávali vývojáři v C++. Nebo se nestyďte a použijte GameMaker. Je jen na vás, co si zvolíte.

Pozor na hotové enginy/frameworky
Na internetu je k dispozici spousta enginů a frameworků, které vám mají zjednodušit programování. U většiny je přiložené krásné demo, tutoriál, co vše s ním dokážete. Dejte si ale pozor na to ať se nedostanete do kolotoče neustálého hledání ještě lepšího „nástroje“. Ačkoli vám to může ušetřit spoustu času, budete používat něco, co může být chybové, budete se učit ještě další API, kromě základního jazyka, který chcete použít apod. Mě osobně tyto nástroje přijdou moc nabubřelé – obsahují spoustu kódu, který většinou nepoužiju. A je v mé povaze, raději si kód sám naprogramovat, ať jsem si jistý že dělá přesně co chci. Co dělám, a dost doporučuji, je stáhnout si zdrojové kódy, a přiučit se. Často narazím na kód, který mají lépe napsaný apod. Ale jinak si vytvářím vlastní třídy, šité přesně na míru. Později v jiném seriálu představím jednoduchý AS3 framework na vývoj her.

Co používám já
Nakonec přichází mé doporučení. Už jsem si za svou „herní“ kariéru prošel několika jazyky, od Assembleru, přes Pascal, C++, Java a nakonec jsem skončil u Actionscript 3(Flash). Líbí se mi že AS3 je podobný na jazyk Java, je zdarma(Flex Framework+Flash Develop), snadno šířitelný(většina herních portálů používá flash hry) a může být použit i na jiné platformy(Adobe AIR – Desktop, iOS, Android, Televize s AIR podporou…). Myslím že zařízení s Adobe AIR budou stále přibývat, tak i proto se mi jeví vhodná volba tohoto jazyka. Navíc je dost orientovaný na media, takže obsahuje různé Tween efekty, grafické efekty(filtry) apod. V dalších dílech se budu věnovat právě vývoji her ve Flashi. Nastíním jednoduchý framework na vývoj her, od kterého se pak budete moct odpíchnout.

Abych předešel zbytečným diskuzím. Radit, jaký jazyk je nejlepší, je nesmyslné. Každému vyhovuje něco jiného, nejde říct že na 3D hru se dá použít jen C++, nebo na malou hru jen PyGame. Já jsem se zaměřil na menší indie a casual hry, takže Flash mi plně vyhovuje. A to je taky poslední rada – použijte jazyk, který se vám líbí – ve kterém se vám dobře píše, je pro vás přehledný atd. Budete pak dost produktivnější.

Filed under: flash,Jak programovat hry

Comments

21 komentářů to “Jak programovat hry 3 – V čem hry dělat”
  1. Dadinka napsal:

    Máš to tu super. Bubble domination =best hra 🙂

  2. guest napsal:

    Zdravím, jistě máš dost zkušeností. Proto bych se rád informoval, když bych tedy udělal nejakou hru v Jave jake mám možnosti je publikovat? Mám na mysli konkrétní služby Kongregate, Mochi, Desura atd.
    Ocenil bych pár rad.. Mimochodem pěkny blog, Děkuji

    • Aimia napsal:

      Ahoj, Mochi a Kongregate se zaměřují na flash hry, už přibývají i stránky které berou HTML5 hry ale flash zatím stále vede. Pokud chceš programovat v Javě, můžeš zkusit Android. Monetizace je o hodně lepší(můžeš přímo prodávat uživateli), nebo můžeš do hry vložit reklamu(Leadbolt apod.) Trošku to ale kazí pomalost vývoje na Android(špatný emulátor, potřeba podporovat víc rozlišení…) Ale můžeš zkusit libGdx, ten umožňuje vyvíjet na desktop a pak jednoduše vybuildovat Android a HTML5 verzi – http://libgdx.badlogicgames.com/ .

  3. milan napsal:

    Čau,za jak dlouho myslite ze se naucim programovat hru.
    je mi11

  4. milan napsal:

    neda se to to nejak stahnout to co si napsal.
    kdyz by to slo tak dik

  5. bara napsal:

    Mohou se flash hry dat na google play – teda na android platformu nbo se to musi nejak slozite prepisovat ?

    • Aimia napsal:

      Můžou. Ale kvůli rychlosti musíš použít nějaký framework používající Stage3D(třeba Starling). Flash umožňuje vybuildovat přímo .apk aplikaci, kterou můžeš nahrát na Google Play. Má to ale nevýhodu – telefon musí mít instalované Adobe AIR(nevím jak moc to ovlivní stahování, časem bych řekl že se rozdíly budou zmenšovat, až bude mít každý telefon 2 jádra a víc)

  6. Jagrik napsal:

    Ahoj,chtěl jsem se zeptat v čem jsou třeba dělané hry co jsou na Facebooku nebo třeba na Seznamu ?Díky za odpověď.

    • Aimia napsal:

      Ahoj, většina her je ve Flashi, teď už se dost objevuje Html5 a Unity. Java Applet se moc neujal.

      • Jagrik napsal:

        Jak je třeba udělaný bwin Poker že máš prostě konto klikneš na poker a hraješ to a vše je to propojené a hraješ proti ostatním to je spíš podstatnější otázka 🙂

        • Aimia napsal:

          Takové hry mají servrovou a clientskou část. Pokud jde o tahovku(např. i poker), může stačit komunikace přes Javascript(např. při vsázce se pošle serveru informace, že hráč AAA vložil 10$, server zpracuje, pošle zpět událost že vše je OK a tak stále dokola ).

          Pokud potřebuješ data měnit v reálném čase(realtime strategie, 3d FPS, MMORPG apod.), musí na serveru běžet nějaký Java/C++ nebo jiný socket server, který naváže komunikaci se hrou a toto spojení je aktivní až do konce hry. Dají se tak okamžitě přenášet informace(např. pohyb nepřítele – hned se pošle změněná souřadnice, a tak flash může zareagovat a změnit pozici nepřítele)

          Ale poslední věc – tvůj dotaz znamená, že jsi spíš začátečník. Doporučuji ti vyhnout se multiplayer hrám, dokud nevytvoříš pár singleplayer her. Dělat multiplayerovku je o level výš, a bez předchozích zkušeností si ukusuješ moc velké sousto

          • Jagrik napsal:

            A tvůj názor čím začít prostě obecně co je nejlepší ? Game Maker jsem okusil a během týdně jsem v GML zvládnul Flappy Bird 🙂 Furt přemýšlím nad Javou

          • Aimia napsal:

            Java je dobrá pokud potřebuješ dostat hru i na Apple nebo Linux. A nebo pokud chceš vyvíjet na Android.
            Pro windows je myslím nejlepší XNA – herní Framework od Microsoftu, s podporou 3D i 2D DirectX – programuje se třeba v C#, ten je hodně podobný Javě. Čemu bych se vyhnul, je C++. Je zbytečně složitý a hru která by plně využila HW počítače jedinec není shopen udělat.
            Já bych radil Flash – Actionscript3 je podobný Javě, Flash SDK je zdarma, a můžeš hru vytvoořit pro Desktop, Web, iOS i Android. Podobně můžeš použít Java a knihovnu LibGDX.
            Ale pokud se nechceš pouštět do objevování ameriky, zkus Unity – je zdarma.
            A jakou hru? FloppyBird je jednoduchá hra, na začátek dobrá. Teď bych zkusil něco složitějšího, třeba nějakou logickou hru. Nepouštěj se do 3D, multiplayeru, RPGček a podobně složitých her. Většina začátečníků chce samozřejmě udělat něco obrovského, ale na tom bys zabil roky a zasekal by ses na milionech problémů

          • Jagrik napsal:

            Dám se teda na Unity 🙂 koukal jsem na pár tutoriálů a na něj taky ještě potřebuju nějaký jazyk že ? Java,C

          • Aimia napsal:

            JavaScript, C# nebo Boo. Sám v tom nedělám, ale prý je Unity dost jednoduché na naučení. A můžeš tím dělat taky multiplatformní hry. Takže dobrá volba 🙂

  7. Darkry napsal:

    Zdravím. Předem děkuji za skvělé předložení základních informací…
    Jsem mladý, povím vám, že mi ještě nepřešlo přes 18 😉 , ale mým snem je programovat skvělé hry a bezvadné mody, pluginy a servery pro hry (nejspíše MineCraft věci, možná pro CS a jiné…)
    Ještě moc nepobírám, jak a co mám dělat, ale když jsem si to tu pročetl, tak se trošku začínám chytat…
    Mám doma Javu a ještě nějaké programy, ve kterých by to šlo a moc se těším až něco zkusím.

    Tyhle rady jsou určitě moc užitečné pro začátečníky…

    Chci se ale zeptat… již mám nějaké zkušenosti s obyčejným programováním stránek a zkoušel jsem již i programovat quizy. Myslíš, že by znalosti z těchle „pokusů“ mohly nějak ovlivnit to, jak mi to půjde a jestli bych tedy měl zkusit Javu nebo jiný program, který by tomu byl blíž a dělalo by se mi s ním tedy i lépe?
    Fakt o tom ještě nemám moc páru, jak to půjde, tak bych si chtěl nechat poradit od někoho zkušenějšího… 😉

    Díky moc- Pavel aka. Darkry.

    • Aimia napsal:

      Ahoj Darkry,
      myslím že jakákoliv zkušenost s programováním je dobrá, určitě něco využiješ i z html. Pokud chceš ale dělat hry, rovnou si vyber jazyk a nauč se jej. Java není špatná(nejlépe použít nějakou multiplatformní knihovnu, např. http://libgdx.badlogicgames.com/), podobně třeba flash, python… Nebo vyzkoušej Unity, ten je vhodný pro rychlý a snadný vývoj her(případně gamemaker apodobné). S mody ti neporadím, ty by ale měly být jednodušší, na tvorbu(používají se skriptovací jazyky a jádro enginu je už hotové…).

      No nejlépe uděláš když si vybereš nějaký jazyk a zkusíš v něm udělat jednoduchou hru. Třeba ten kvíz, nebo pexeso, tetris… Na tom už sám uvidíš jestli ti vybraný jazyk vyhovuje, nebo ne.

      • Darkry napsal:

        Jo… dík za radu, moc si toho vážím.
        Já se už díval na ty programy, co používáš na flashovky, ale mám smůlu- net mi zablokoval stáhnutí toho Flash Develop 🙁
        Nepodařilo se mi to zatím nijak odblokovat a počítač není můj.. takže kdyby se s ním něco stalo, tak si už neškrtnu 😀 neměl bys prosím v nabídce i jiný, kompatibilní s těmahle, co by šel použít?
        Ten zvukový program jsi měl pravdu, je super, dobře se mi v něm pracuje, jakš takš mu rozumím a něco si zkouším nahrát, takže s tím problém nevidím, ale fakt ten Flash Develop nevím…

        Předem případně dík 😉

Leave a Reply