Zdravím,
Chtěl bych se zeptat, co vše se musím naučit k vytvoření "pěkné" 2D hry v C++.
Budu potřebovat OpenGL nebo ještě něco jiného / dalšího ?
Děkuji.
Fórum › C / C++
Požadavky k vytvoření 2D hry
Neptal jsi jse náhodou i na fóru Pythona? Odtud ho myslím poslaly jsem, že C++ je na tvorbu 2D her lepší. Takže znalosti asi moc nebudou.
To Kubiro: Tak pro začátek se hlavně nauč aspoň základy C++. Na tvorbu her, už musíš něco umět a mít ňáké zkušenosti. Není to jenom o tom přečíst si tady tutorialy.
Zkus GameMaker :)... syntaxe jako jazyk C.
Výsledek alespoň uvidíš hned a né za několik měsíců či let.
Já osobně třeba tvořím teďkom hru v C# a XNA. Je to docela jednoduché (aspoň základy). Ale často jsem se v poslední době setkal s názorem, že to není skutečné programování profesionálních her.
Tak bych se chtěl zeptat, v čem se tvoří teda ty profesionální hry? Každý totiž tvrdí něco jiného, nekdo říká, že na hry je nejlepší C#, někdo že C++, atd. Je vůbec nějaký "doporučený" jazyk na tvorbu her?
To DragonBehemont : Většina 3D herních enginů je napsána v C++ a C++ je obecně přijato jako dobrý jazyk pro tvorbu her, protože se kompiluje přímo do strojového kódu a ne do nějakého bytekódu či IL jako Java nebo .NET, čili program napsaný v C++ je údajně nejrychlejší. I když podle jakéhosi benchmarku zas takový rozdíl mezi C++ a .NETem není.
To NOclipus : Právě, že co jsem četl články, tak XNA je dobré v tom, že řeší u různé stavy, které mohou nastat a má docela velkou podporů u vývojářů. Navíc většina komponent je pro něj již vytvořená, takže nemusíš nic složitě "vymýšlet". Zkoušel jsem chvilku C++, ale moc jsem se v něm nehnul. Zatímco v C# je to daleko lehčí a během měsíce jsem již zvládl napsat kompletní aplikaci včetně komunikace se sériovým portem, databází atd. Navíc vývojové prostředí Visual Studia je zatím nejlepší se kterým jsem se setkal.
DragonBehemont
Ale často jsem se v poslední době setkal s názorem, že to není skutečné programování profesionálních her.
Pokud si za to nenecháváš platit, jen těžko to může být profesinální[1] ;o)
Tak bych se chtěl zeptat, v čem se tvoří teda ty profesionální hry?
Nevím, jak moc profesionální hra se ti zdají Gears of War, ale tam jsou celkem tři vrstvy a v každé je to něco jiného[2]:
- herní simulace – C++ a UnrealScript[3]; objektově-orientované, vysokoúrovňové, garbage collection
- číselné výpočty – C++; spíše zaměřeno funkcionálně, nízkoúrovňové, optimalizován pro nejvyšší výkon
- shading – HLSL/CG; běží na grafické kartě
Pro každou část aplikace (a tedy i hry) se většinou hodí jiný jazyk – každá část má jiné nároky. C++ je oblíbené kvůli syntaxi a rychlosti. C# zase nabízí managed kód a asi i vysokoúrovňové API (nevím, na XNA jsem podrobně nekoukal). V Gears of War by se kombinace C++ a UnrealScript nejspíš dala nahradit za C#. A měl bys tu hru, co je ve třech odlišných jazycích :o)
[1] http://slovnik-cizich-slov.abz.cz/web.php/slovo/profesional
[2] http://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf
[3] http://jolle.se/cth/thesis/sm-presentation-slides.pdf
To bukaj_001 :
Pokud si za to nenecháváš platit, jen těžko to může být profesinální[1] ;o)
Na to, baych si za hry nechával platit jsem až moc velký sebekritik ;-) Nehledě k tomu, že teprve zkouším, v podstatě jsem ještě žádnou hru nenapsal, teprv se učím C# a XNA.
Nevím, jak moc profesionální hra se ti zdají Gears of War, ale tam jsou celkem tři vrstvy a v každé je to něco jiného[2]:
Za profesionální hry považuji takové, které mají úspěch, které se lidem líbí a jsou pokud možno co nejméně náročné na procesor a grafiku i při maximálním rozlišení a detailech. (to druhé není podmínka, dobrá hra se dá hrát i při nižších detailech)
XNA je po instalaci implementováno do Visual Studia, takže hru tvoříš přímo v něm.
To bukaj_001 : namátkou jsem si četl ty podklady, co si na ně posílal odkaz a vypadá to zajímavě. Akorát, už takhle se "učím" 3 jazyky - PHP, C#, VB.NET - všechny kvůli webovým stránkám. A C# s VB.NET i kvůli aplikacím... a nechtěl bych se dostat do fáze, kdy bych se učil třeba 5 jazyků a žádný z nich bych neuměl pořádně ;-)
To DragonBehemont : podle moji zkusenosti je nejdulezitejsi se naucit hledat informace a umet vybrat spravne klicove slova...
pak samozrejme umet myslet jako programator - tj. umet problem analyzovat a predstavit si, pomoci jakych asi funkci bys to mohl poskladat... (pak je taky umet najit pro ten jazyk, ve kterem zrovna pracujes)
pak uz se u kazdeho jazyka staci naucit odlisnosti jako syntaxi (stavba a cleneni programu, operatory....)
proste: kdyz se clovek nauci programovat spravne - na jazyku pak uz tolik nezalezi - at uz je to pak assembler nebo java...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Hledám programátora na vytvoření mobilní hry — založil nagi
Specifické požadavky na mobil — založil Ina
Jak prevedu pozadavky na high-level design v praxi? — založil DesignDotazovatel
Vytvoreni procedury — založil Remder
Vytvoření serveru — založil Jakub Vojáček
Moderátoři diskuze