Programování 2D her – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Programování 2D her – C / C++ – Fórum – Programujte.comProgramování 2D her – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Lorin0
Návštěvník
13. 7. 2012   #1
-
0
-

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.

Předem děkuji za odpovědi,

Lorin

Nahlásit jako SPAM
IP: 89.190.72.–
tanned880
Super člen
13. 7. 2012   #2
-
0
-

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.. 

Nahlásit jako SPAM
IP: 88.102.168.–
Lorin0
Návštěvník
14. 7. 2012   #3
-
0
-

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.  

Nahlásit jako SPAM
IP: 89.190.72.–
LJ
~ Anonymní uživatel
6 příspěvků
14. 7. 2012   #4
-
0
-

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.

Nahlásit jako SPAM
IP: 88.102.168.–
yaqwsx+9
Posthunter
14. 7. 2012   #5
-
+1
-
Zajímavé

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
Lorin0
Návštěvník
14. 7. 2012   #6
-
0
-

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. 

Nahlásit jako SPAM
IP: 89.190.72.–
imcold0
Newbie
14. 7. 2012   #7
-
+1
-
Zajímavé
Nahlásit jako SPAM
IP: 89.173.112.–
Lorin0
Návštěvník
14. 7. 2012   #8
-
0
-
Nahlásit jako SPAM
IP: 89.190.72.–
yaqwsx+9
Posthunter
14. 7. 2012   #9
-
0
-

#6 Lorin
Nevím, jestli ti zdrojáky nějaké knihovny toho moc řeknou...

Pokud chceš obecné věci, tak si nastuduj http://newwiki.ceske-hry.cz/Hlavn%C3%AD_strana, popř. i samotné fórum C-H. Ze zahraničních můžu doporučit http://www.gamedev.net/page/index.html a http://gamasutra.com/.

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
Tom
~ Anonymní uživatel
434 příspěvků
15. 7. 2012   #10
-
+1
-
Zajímavé

Veci z kterych jsem vzdy cerpal ja:

- Amits game programming (zminoval jsi link)

- 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...

T.

Nahlásit jako SPAM
IP: 93.146.210.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 76 hostů

Podobná vlákna

C# programovani — založil Siembra

Programování.. — založil Fliper

Programování her — založil Michalek

Programování her — založil Gh0st

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý