Ahoj. Chtěl bych si vytvořit jednoduchou hru ve stylu PacMana nebo Tetrisu. Nic složitého, jen pro zábavu a naučení se herním principům. Narazil jsem ale na ten problém, že nevím nic o programování s grafikou. Myslím tím práce s texturami, grafickými efekty, animacemi, sprity, vektory, izometrické zobrazení, atd... Protože jde o můj první počin, neznám ani jiné herní mechanismy. Namátkou pathfinding, mapa založená na dlaždicích (tile),základy AI. Zase bych mohl jmenovat více. Vím že polovinu (nebo více) mnou jmenovaných věcí v takto jednoduché hře nepoužiji, ale když už se mám něco učit, tak ať je to se vším všudy.
Proto bych se vás chtěl zeptat, zda nevíte o nějakém uceleném zdroji informací (knihy, videa, tutoriály, články, fóra, weby) na toto téma (tvorba her). Jde mi spíše o popsání principů toho, jak se věci mají a jak fungují, než přímé ukázky využití nějaké knihovny. Samozřejmě čeština/slovenština je vítaná, ale zvládám i angličtinu.
Zdravím, s těma principama.. Kompletní dokumentace jakéhokoliv enginu, například Android MDK je pro C syntaxi myslím. Jinak, pokud hry tak je hodně herních komunit a ta amatérštější (snad nikoho neurazím) je má oblíbená velkejchytrak.cz a hlavně forum. Jak tutorialy, tak příklady, herní komunita, vývojáři. Navíc programujou v GameMakeru, C syntaxe, možnost napojení DLL, jednoduché vývojové prostředí/engine, funkční a pokud neumíš moc dobře programovat tak ikonky. Help/dokumentace je snad taky v češtině, popřípadě je v angličtině určitě a na internetu je plno návodů a knihoven. Z mých dětských let si vzpomínám na oblíbenou Ultimate3D DLL pro GM, fakt slušný, import všemožných modelů, 3DsMax, DX atp..
To jsme si nejspíš moc nerozuměli. Hru chci rozhodně dělat v C++. GameMaker jsem zkoušel dříve a nevyhovoval mi. Moc klikání.. Vím že je možná nějaký lepší jazyk než C++ do začátku, ale celkem ho ovládám tak to chci zkusit v něm.
K principům... Mě šlo spíše o to, jak se jednotlivé věci (mnou jmenované) v herním prostředí nejčastěji řeší. Například jakým způsobem se počítá (v pathfindingu), kterou cestou se herní postavička dá. Jak se řeší tvorba tile-based mapy atd... Třeba jako odpověď na můj druhý příklad bych si představoval něco jako Tile Based Games. Jde sice o příklad k Flashi, ale pro pochopení je to tam popsáno dobře. Ale asi mi nezbude nic jiného, než najít nějakou knihovnu, stáhnout si zdroják a učit se.
No tak, já spíš odpovídal na to, že nevíš jak pracovat s grafikou. C++, ok... Stáhnul bych si VisualStudio, importoval directX SDK a máš okamžitě zobrazovací rozhraní, v dokumentaci directX sdk najdeš plno příkladů a návodů a funkcí. To samí XNA, je to C# takže je to to samé. Dále pak, OpenGL SDK nebo jsem slyšel o Quicktime sdk. Sice apple ale jde i na win, samozřejmně.
Jinak ty hzerní principy, moc jich neznám, ale většinou se pak hodně jedná o reálnou fyziku. Nebo výpočet kolizí, prakticky si myslím že nezbude nic jiného aby jsi si to sám naprogramoval, teoreticky vy-googl-íš plno příkladů, nehledě na jazyk. Ale zase, na fyziku ve hře najdeš DLL/SDK, kolize nějak vymyslíš. U 2D her to nebude problém, u těch 3D asi horší a tak. Já jsem kolize u 2D her většinou řešil funkcí s podmínkami souřadnic. Horší je když pak řešíš víc rozlišení, kolize musí být relativní a nějakou funkcí se přepočítávat.
Prostě jak říkáš, stáhni si nějakou knihovnu. Na 90% k ní budou example a dokumentace. Nic jiného bych řekl že není :o) Co jiného by taky mělo být.
Začni - např. s SDL (knihovna pro grafiku) - na rootu vycházel pěkný seriál o této knihovně. V něm tě naučí pracovat s grafikou a seznámi se základem fungování grafických aplikací, potažmo her (herní smyčka).
Pak to všechno přijde samo - sám zjistíš, co přesně potřebuješ vědět, jak to má vypadat atd. Uč se "za pochodu" - v této oblasti se nejde naučit dopředu všechno, co potřebuješ a teprve poté začít programovat "na ostro"
Nahlásit jako SPAM
IP: 85.160.36.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Což o to, o SDL, OpenGL popř DirectX vím, ale chtěl jsem do nich jít s jistou znalostí toho, jak fungují některé obecně používané věci pod kapotou. Takové obecné blábolení o tom, jak se věci mají, fungují a jaké jsou možnosti řešení.
Takže díky za rady, kouknu se do zdrojáků nějaké knihovny a zkusím ještě něco vygooglit.
Ale jak říkám - nejlepší je začít. Dej si nějaký jednoduchý cíl. Postupně narazíš na různé problémy - např. pathfidening a začne v této oblasti bádat. Učit se předem nemá cenu - nemáš šanci podchytit všechno a holá teorie bez aplikace v praxi ti mnoho nedá.
Nahlásit jako SPAM
IP: 85.160.36.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
- http://lazyfoo.net/ (zamereno na SDL, ale je tam i dost o obecnych principech jako gameloopy, state machine, atp.)
- roguebasin.roguelikedevelopment.org (sice zamereno na roguelike, ale je tam prave dost o pathfindingu, LOS, level generatorech, tilemapach, atp.)
- jiz zminene gpwiki a forum na gamedev
Co se tyce TileMap, tak muj posledni pokus (mala roguelike nedodelana vec) skoncil u toho, ze kazde policko bylo predstaveno strukturou, ktera mela vlastnosti jako boolean isBlocked, boolean isVisible, pointer na object monster/player, znak, barvu, atp. Pak treba kdyz policko melo pointer na object monster nastaveno na NULL, tak jsem vedel, ze tam je volno, atp. Docela to fungovalo hezky...Pro vetsi mapy bych sel ale asi jinou cestou...