Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Programovanie moderných PC hier

Dobry den,

chcel by som sa spýtat, ze v akých presne prog. jazykoch sa programujú dnesné moderné pocitacové hry? Napr. The Witcher 3, Fallout 4, PUBG, CS:GO, Rise of the Tomb Raider a pod. Viem ze je to kus "blbá" otázka, ale ja by som sa v buducnosti chcel venovat takýmto veciam, no neviem ze aký programovací jazyk sa mám zacat ucit. Lebo každý nato vraví nieco iné, niekto radí ze urcite Java (Minecraft), niekto C/C++, niekto Python, a iný zase PHP atd. Alebo poprípade, dá sa nejako zistit že v akom jazyku je daná hra naprogramovaná? No a potom by som si vedel z toho urobit priemer.

Dopredu sa ospravedlnujem ked sa pýtam hlúpo, no som v tejto oblasti iba novácik. Tak berte prosím ohlad a neposlite ma hned do p...

Předmět Autor Datum
Zalezi od urciteho ENGINE, jako Unity3D, Unreal Engine etc, kazdy tento ENGINE podporuje nebo muze p…
Bobbo 16.06.2018 12:48
Bobbo
Až na výjimky jsou všechny "velké" hry napsané v C/C++. A to buď kompletně, nebo alespoň jejich engi…
Wikan 16.06.2018 12:49
Wikan
Dnes i c#, java/JavaScript (pro WEB, potkavame js API snad vsude) popripade i python , v 2017 navysi…
Bobbo 16.06.2018 12:50
Bobbo
Podíl se možná zvýšil, ale pořád jsou dost v menšině. A když už, tak stejně využívají engine napsaný…
Wikan 16.06.2018 12:58
Wikan
Ano, ale rad bych znovu vzpomel Unity 3D, (hry) které jsou psane v csharpu a v Unity3D (MonoGame je…
Bobbo 16.06.2018 13:21
Bobbo
Dobre, dakujem za rady, no ešte ku tomu C-cku. Preco často krát počúvam názory na tento jazyk... ze…
Rrrrrrrrrrrrr 16.06.2018 13:05
Rrrrrrrrrrrrr
Protože v C se dá napsat brutální a vysoce efektivní kód (žádné objekty, žádné berličky,...). Ještě…
touchwood 16.06.2018 13:20
touchwood
To je nesmysl. Pořád se používá a ještě dlouho používat bude. Tam kde je potřeba maximální výkon, ne…
Wikan 16.06.2018 13:59
Wikan
Dobre, vdaka vsetkym za rady. V podstate som sa aj trafil ze najlepsie su asi C, a potom Java + Pyth…
Rrrrrrrrrrrrr 16.06.2018 14:37
Rrrrrrrrrrrrr
Pokud neumis vubec programovat, tak se nejdriv nauc programovat, az pak vyber jazyk. Je imho blbost…
Dwane Dibbley 16.06.2018 15:10
Dwane Dibbley
Pokud neumíš dokonale matematiku, 3d prostory a všechny ty kraviny okolo, které mají "ošklivý názvy"…
MašinkaTomáš 16.06.2018 14:52
MašinkaTomáš
Presne, bez precizniho pochopeni diferencialnich rovnic nenapises ani piskvorky. Huuu huuu.
Dwane Dibbley 16.06.2018 15:05
Dwane Dibbley
Pokud neumíš dokonale matematiku, 3d prostory a všechny ty kraviny okolo, které mají "ošklivý názvy"…
Kofola85 16.06.2018 15:57
Kofola85
Osobně si myslím že nemáš s tímto přístupem šanci, ale to zjistíš sám. Beztak jsi nějaký děcko.
MašinkaTomáš 16.06.2018 18:44
MašinkaTomáš
Ukaz mi kod pro chuzi hrace, nebo pro pohyb s predmety, nejaky zakladni veci jako ukladani promenych…
Kofola85 16.06.2018 19:00
Kofola85
Tak jak si představuješ pohyb (implementaci kódu) v 3D prostoru, napiš, ať se pobavím. Neviděl, jse…
MašinkaTomáš 16.06.2018 19:54
MašinkaTomáš
Jo, usnadním ti to, jestli to má nějakej ten tvůj engine hotový, tak prosím v OpenGL. [82629-thumb-…
MašinkaTomáš 16.06.2018 20:06
MašinkaTomáš
Lenže ja som sa Vás nepýtal ci potrebujem ku programovaniu hier matematiku..:-D No ale ked uz sme p…
Rrrrrrrrrrrrr 16.06.2018 21:53
Rrrrrrrrrrrrr
A na webu snad nemůžou být hry?
Wikan 16.06.2018 22:35
Wikan
Môžu, len ja mám na mysli ci to PHPcko sa da pouzit na tvorbu normálnej hry (napr. takého typu ako Z…
Rrrrrrrrrrrrr 16.06.2018 22:52
Rrrrrrrrrrrrr
Na Zaklínače si ale bez té extrémní matiky myslet nemůžeš, protože CDprojekt si pro něj vyvinul vlas…
touchwood 16.06.2018 22:58
touchwood
Tak to koncim, hra jako witcher v php, poslední
MašinkaTomáš 17.06.2018 07:10
MašinkaTomáš
Engine AAA hier býva v drvivej väčšine napísaný v C++: Witcher 3 - C++ (REDEngine) Fallout 4 - C++…
moose 16.06.2018 23:02
moose
Dakujem
Rrrrrrrrrrrrr 16.06.2018 23:44
Rrrrrrrrrrrrr

Zalezi od urciteho ENGINE, jako Unity3D, Unreal Engine etc, kazdy tento ENGINE podporuje nebo muze podporovat jiny jazyk. Kuprikladu u UNITY 3D, hodne vyvojaru pouziva prevazne csharp (c#), Blender - Blender Game, Maya pouziva zase Python, jinak zpravidla c++, zalezi.
Takze jazyk vybiras dle pouziteho ENGIME, nebo naopak, podle toho jaky jazyk ovladas si ENGINE vyberes.

Ano, ale rad bych znovu vzpomel Unity 3D, (hry) které jsou psane v csharpu a v Unity3D (MonoGame je jen v c#) je psanych hodne her a "pro vice platform ! (plaformy by byla episoda sama osobe)". I kdyz ano podporuje i c++ kdyz nahledneme na literaturu uvedene priklady jsou zpravdila v c#. Jinak ano, rozumim, skupinove je ENGINE napsany v cecku to je "True" ! :-).
Jazyk a Engine je jedna vec, ale chci upozornit (tazatele), az si bude vybirat nejaky graficky motor "podivej se po dokumentaci", ne kazdy jazyk nebo engine ma dostupnou dokumentaci (IMHO se bez ni neobejdes), nebo je hodne chaba, neaktualizovana (c# ma kuprikladu vybornou dokumentaci, to se musi MS nechat), coz je v prvnich krocich a ne jen snad tou nejdulezitejsi polozkou co te bude doprovazet celou dobu vyvoje, nebo pri tve vyuce vubec.
Posledni bod, umet alespon zaklad ENG, nemusis mit na to vylozene jazykovku, staci ti technicka anglictina bez ktere se bohuzel nehnes a zacatek vyuky si opravdu zneprijemnis, zkomplikujes. Drtiva vetsina prikazu (ktere v ENG i lepe pochopis) bez ohledu na pouzity jazyk nebo dokumentace je v anglictine.

Dobre, dakujem za rady, no ešte ku tomu C-cku. Preco často krát počúvam názory na tento jazyk... ze sa ho uz neoplatí ucit, lebo je starý a dnes sa uz takmer vobec nepoužíva? A ze dnes už existuje vela efektívnejších, jednoduchších a hlavne novších programov (vid Python), ktoré toho dokázu ovela viac? Logické to je, lebo C-cko vzniklo až 1972, taký Python a Java v 1991.

Protože v C se dá napsat brutální a vysoce efektivní kód (žádné objekty, žádné berličky,...). Ještě efektivněji to jde v assembleru. Jenže pokud na to, abys to zvládl v C musíš být Mistr, tak na ASM potřebuješ být BŮH. A samozřejmě potřebuješ moře času. Tyhle programovací jazyky ti nic neodpustí, narozdíl od "moderních" jazyků pro darmošlapy, ve kterých nikdy tak efektivní kód nenapíšeš.

No a pak přijde vydavatel, řekne ti, že na to máš 12 měsíců, že dostaneš tlupu "programátořů" a ty pochopíš, že v assembleru to nikdy nenapíšeš.

I proto jsou dnešní hry taky takové sračky.

Dobre, vdaka vsetkym za rady. V podstate som sa aj trafil ze najlepsie su asi C, a potom Java + Python. No ešte by som sa chcel spýta na PHP, co je to za jazyk? Lebo ja som si myslel ze sa to používa len na tvorbu webu (dynamického), no ako cas plynie tak som prisiel nato že sa cez to dajú naprogramovat aj nejaké hry...

Pokud neumíš dokonale matematiku, 3d prostory a všechny ty kraviny okolo, které mají "ošklivý názvy", tak se tím vůbec zabývat nemusíš, protože nikdy hry dělat nebudeš.

Ty brdo to jsou pecky !
A astro fyziku ne ? Jestli nebude delat a to urcite delat nebude novy Battlefield tak mu to muze byt uplne nahaku. Mensi zkusenost s vyvojem mam, vic nez skolni matiku jsem zatim nepotreboval, tady ty keci o tom jak to bez "sakra tezke" matematiky nejde jsou "sakra tezke hlouposti" se kteryma se nikdo na zacatku tvorby nebo uceni nikde nepotka.

Ukaz mi kod pro chuzi hrace, nebo pro pohyb s predmety, nejaky zakladni veci jako ukladani promenych (predmetu ve hre) do list, zakladni smycky for/if (nebo nevim co podle tebe bude jako ze zacatku delat az se bude s jazykem-engine ucit) a ted mi rekni, kolik prvnacku by to nepochopilo ? ty 'sakra tezka motyko'. Navic kazdy druhy eng ma takove veci jiz automatizovane v nabidce kde pro pridani funkci jako 'pohyb' (predmet 2D/3D, kamera, svetlo, zakladni asset predmetu a postav) staci i jeden klik mysi. Vlastni Engine od zakladu urcite delat nechce a sam by ho driv nez 3 roky stejne neudelal.

'Beztak' jsi zadny engine nikdy nevidel ani s zadnym nepracoval. Videl jsem projekty, vyukove kurzy zacinat ruzne, ale nikdy "strasne tezkou matikou". A to ani za mesic, nebo dva, nebo tri po tom.
A ano, jsem decko a poradne jsem pritom jak jsem psal nalozil do plynek a neboj pojmenoval jsem po tobe ;-) nez to poleti do trash.

Lenže ja som sa Vás nepýtal ci potrebujem ku programovaniu hier matematiku..:-D

No ale ked uz sme pritom tak momentálne som na vysokej skole, a zatial z matikou problémy nemám (moja matika = derivácie + integrály..proste klasická vysokoskolska + zaklady diskrétnej matematiky a štatistiky).;-)

Spýtam sa ešte raz...PHP co je? Myslel som ze sa používa na tvorbu dynamického webu. Dajú sa v tomto jazyku tvorit dobré hry?

Na Zaklínače si ale bez té extrémní matiky myslet nemůžeš, protože CDprojekt si pro něj vyvinul vlastní engine.
Pokud jsi pod pojmem "programování her" myslel něco jako použít stávající engine typu Unreal engine, tak to o programování zase až tak moc není, pokud nebudeš vyvíjet vlastní AI (což je typický případ, většina dnešních her místo AI používá dementní triggerované skripty).

Engine AAA hier býva v drvivej väčšine napísaný v C++:

Witcher 3 - C++ (REDEngine)
Fallout 4 - C++ (Creation Engine)
PUBG - C++ (Unreal Engine 4)
CS:GO - C++ (Source)
Rise of the Tomb Raider - C++ (Foundation Engine)

Každá hra pozostáva z viacerých vrstiev, pričom engine samotný je na tej najnižšej a v podstate definuje možnosti hry. Logika hry, dialógy a pod. bývajú napísané v rôznych jazykoch, pričom častokrát ide o skriptovací jazyk napísaný len pre danú hru/engine. Okrem toho pozostávajú hry z assetov (3D modely, animácie, shaders, zvuky, hudba, ...). A aj keď je engine napísaný v C++, samotná hra môže byť napísaná v hocičom inom (C#, Java, JavaScript, Python, ...).

Pri vývoji hier je veľa oblastí, ktorým sa dá venovať, pričom nemusíš ovládať C++ (napr. skripty pre export modelov, alebo herné skripty a pod.). Všeobecne, čo čítam po internete je, že vývojári hier nie sú príliš dobre zaplatení, pracujú veľa nadčasov a majú menšiu stabilitu zamestnania (najmä po ukončení vývoja titulu). To vychádza zo skúseností vývojárov v zahraničí.

Čo sa týka programovacích jazykov, tak je rozdiel medzi C a C++. Ak sa chceš venovať na nízkej úrovni takýmto hrám, tak sa zameraj na C++ a skús si niečo napísať v Unreal Engine. Ak chceš vidieť výsledky svojho učenia rýchlejšie, tak si vyskúšaj nejaký engine v JavaScripte, ktorý používa WebGL.

Zpět do poradny Odpovědět na původní otázku Nahoru