Jak naprogramovat hru

Nejsem žádný dobrý programátor, žádnou hru jsem zatím nevytvořil, ale rád bych se s váma podělil o mé prozatímní zkušenosti. Snad se to někomu bude hodit a nebude dělat stejné chyby jako já.

Před začátkem bych rád upozornil na to, že článek je již dost starý a já osobně se již programování nevěnuji. Doporučuji ale sledovat blog mého kamaráda, který se vývoji her aktivně věnuje a píše své poznatky na svém blogu o vývoji her.

Jak začít

Pokud chcete vytvořit hru, měli by jste mít už zkušenosti s programováním. Pokud nemáte za sebou několik větších projektů (něco víc než Hello word 😉 ) nemá cenu se do tvorby hry pouštět. Nejhorší možný přístup je ten, že budete kopírovat cizí kódy co najdete na netu, a z toho budete skládat hru. V čem je to špatné? Programování totiž není o tom vědět jen „jak to udělat?“ ale hlavně jak a proč to takhle udělat?. Když člověk pochopí proč použít právě tento postup, jaké to má výhody, jak to funguje, může později vyřešit podobný problém docela lehce. Pokud to člověk nepochopí, a jen to zkopíruje, musí počítat s tím, že pokud narazí na podobný problém, nedokáže ho sám vyřešit a bude muset hledat zdlouhavě řešení.

Mé začátky

Takto jsem postupoval když jsem začínal, měl jsem velké plány na velkolepou závodní hru. Zkončilo to tím že jsem poskládal kód z několika tutoriálu a výsledkem bylo ovládání mnou nakreslené šipky po bílé ploše 🙂 To jsem tehdy používal DelphiX – komponentu pro Delphi, která sloužila k vykreslování grafiky (bohužel k vykreslování jen softwarově, takže výsledné programy byly docela pomalé).

Po několika roční pauze v programování jsem měl pocit, že jako starší a moudřejší osoba už nějakou tu hru zvládnu. Omyl. Tentokrát jsem použil jinou komponentu do Delphi, konkrétně Asphyre. Bylo to o dost složitější než DelphiX, ale na druhou stranu nabízelo mnoho funkcí. Když jsem přemýšlel jakou hru udělat, napadlo mě něco na motivy hvězdné brány. Měla to být jen taková arkádovka, ovládání jedné lodi a střílení jiných vesmírných lodí. Nápad to byl už docela reálný, ale taky jsem ho nedokončil. Jediné co jsem do hry přidal vlastního bylo počítání dráhy letu střel. Zbytek jsem opět kopíroval z ukázkových souborů.

Jaký programovací jazyk vybrat?

Podle mě je to jedno. Pokud se chcete programováním živit, budete nuceni se naučit více než jeden jazyk. Zatím mám zkušenosti s jazyky Pascal, Object Pascal(Delphi) a C++ . Z mých zkušeností bych doporučil se učit v Pascalu i přesto, že to mnoho lidí odsuzuje. Pokud se naučíte programovat dobře v Pascalu, bude přechod na jiný jazyk otázkou několika týdnů, maximálně několika měsíců. Pascal má oproti C++ tu výhodu, že vás nenechá dělat chyby. Upozorní vás že to co jste napsali je blbost, a vy to potom můžete lehce opravit. Naproti tomu C++ počítá s tím, že máte dobré důvody proč jste napsali to co jste napsali. Máte tedy více možností, ale hledat potom ty chyby, to je peklo 🙂

No a jak je na tom Delphi? Můj názor na Delphi se v posledních měsících dost změnil. Měl jsem tento nástroj od firmy Borland moc rád, ale teď jsem zjistil jeho velkou nevýhodu. Teda nevýhodu pro začátečníky. Mluvím o tom vizuálním prostředí. Je tak jednoduché si naklikat nějaký ten formulář, přidat nějaké ty událostí a program je hotov. A proč nevýhoda? Protože začátečník si zvykne na to, že program za něj udělá vše, stačí jen par kliků a je to. Nenutí to člověka zjišťovat co se vlastně všechno děje a jak to funguje. Teda alespoň u mě to tak bylo. Na druhou stranu, pokud se o to člověk zajímá trošku více, je Delphi vynikající nástroj pro snadnou a rychlou tvorbu programů pro windows.

Takže si to shrneme: je jedno jaký jazyk si vyberete i v pascalu se dá napsat hra. Důležitější je vybraný jazyk ovládat, znát jeho výhody i nevýhody. Pokud budete chtít hry vykreslovat třeba pomocí grafické knihovny openGL, budete volat stejné funkce v Pascalu, v C++ i v jakémkoliv jiném jazyce.

Jako dobrý zdroj informací doporučuju fórum ceske-hry.cz

Pokud máte taky nějaké zajímavé zkušenosti co se týká těch začátků, budu rád když se o ně podělíte v komentáři pod článkem 😉

Příspěvek byl publikován v rubrice Programování. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

54 komentářů: Jak naprogramovat hru

  1. JoDeIm napsal:

    pro Lubku nauc se pracovat v konsoli pouzivat podminky (if,switch…) dale funkce (void(),int(double,..)… pozdeji zkus programovani v objektech tzn. malych progamech ktere spolu spolupracuji ( .cpp, .h , …) pokud toto vsechno zvladnes muzes zacit psat hry az si jednou vytvoris vlastni konsoli tak dale uz vsechnu grafiku ci zvuky muzes pouzivat. bohuzel dokavad nepochopis logiku a trochu i matematiku neradim ti zkouset neco jineho nez treba hanojskou vez nebo piskvorky zkus udelat tetris tam je pouzito mnoho logiky a porozumis li tomu pak muzes delat co chces. v kazdem pripade velmi mnoho stesti drzim ti palce ahoj. P.S. jak pamatuju startuje se F5 a build F4 a compil. F3 mozna uz tak neni.

  2. Sauron napsal:

    Chci se zeptat na jednu vec- mate napriklad hry MMORPG na pr. www. shaiya.com u teto hry je jeden oficialni server a pak jich je spoustu dalsich ktery jsou neoficialni hraje tam max 250 lidi ale tyto servery maji hraci tak zvany GM jsou to normalni hraci ktery si chteli udelat svuj server ale (jen nevim jak na to , jestly okopirovali nejaka data z oficialniho serveru a neco tam jen prepsali) a samozrejme ze si musi za to platit 🙂 jenom mi reknete pls jak na to presne dekuji.

  3. sir Truhlík napsal:

    To se dělá tak, že se upraví klient aby navazoval kontakt s jinym serverem (například Ultima Online má soubor login.cfg tušim, kde je adresa serveru a port uložen jako klasický txt) a naprogramuje se vlastní server (co posílá klient se dá odchytit při hraní na officiálnim serveru – dost možná i jinak, ale já nemám potuchy jak – pomocí programů jako je wireshark a pod. – to se dá použít i při vytváření injection programů nebo přímo botů).

  4. fialka napsal:

    No, tyhle neoficiální, pirátské servery jsou celkem jasné – ukradená server data nahrají na nějaký hosting, upraví klienta, aby se připojoval na ten jejich server a je to 🙂 A když pak člověka upozorní antivir, hned je jasné, že ten hacklý klient asi teď umí víc než jen připojit se na pirátský server, např. sledovací program na klávesy = vykradení hesel z PC apod., nějak si na ten hosting vydělat musí no 😀
    Kvůli tomu doporučuju radši ty oficiální servery – přeci jen je tam taky podstatně víc lidí, kvalitnější podpora a často i zavedená cz/sk komunita…

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.