Jaký jazyk na hry?

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Batman19 1. 12. 2011 22:03

Zdravím,

Předem říkám že nemám představu o tom, že udělám něco jako GTA 4, MW3 apod.
Chtěl bych vás všechny poprosit, jestli by jste mi mohli doporučit nějaký jazyk na 2D hru s pohledem ze zhora (2D možná skládanou z vyrenderovaných 3D později, ale furt 2D). Přesněji by mi šlo o něco ve stylu Team Fortress 2(jenom styl zbraní atd (odkaz http://www.youtube.com/watch?v=jM7LhpCsd-Q) ). Ve hře bych chtěl věci (ne v první verzi, hodně by se pak přidávalo postupně co bych se učil): Multiplayer (sehnal bych si rady jak udělat speciální aplikace na server atd...), AI do singleplayeru, samozřejmě pohyb po mapě a zbraně (plamenomet, kulomet, laser, nůž, pistole s tlumičem, puška s optikou (na tu i zaměřovák jako je třeba v COD MW2, víte snad ja to myslím) a speciální bonusovou zbraň co by mohla pohybovat částmi mapy(stavět s ní zátarasy atd...). Potom by se hodilo částečně rozbitelné prostředí, ale to až budu umět líp programovat, vylepšování zbraní, systém štítů, HP, bonusy a pak taky týmy, styly hry jako např: CtF (Capture the Flag, každý tým má vlajku a vašim cílem je ukrást ji nepřiteli a přinést ke sé (musí být na vašem místě, nesmí být sebraná), TDM (přestřelka mezi týmy) DM (všichni proti všem) a bránění kopce nebo nějakého body kde by na vás šli vlny AI nepřátel). Nevím jestli nějak pomůže vypsání všeho co tam budu chtít udělat (všechno samozřejmě ne postupně. Ani třeba Minecraft nebyl naprogramovanej najednou). Grafika by byla kreslená rukou jenom obrys a vybarvovaná v PC. Nepřesnosti bych nechával naschvál, ale to se programování netýká. Nějak na to nespěchám a vím, že za měsíc to nebudu mít hotový.

Je to, co sem vypsal reálný v Pascalu nebo Javě (v tý je Minecraft (furt o něm píšu protože jeho tvůrci jsou pro mě vzor) naprogramovanej). Nebo mám jít na C++?

Děkuji všem za přečtění

PS: Chci abych mohl i po tomto projektu začít dělat další.
Batman19
Kolemjdoucí

Odeslat příspěvekod martin_o5 1. 12. 2011 22:15

A dosavadní zkušenosti s programováním jsou jaké?
Většina toho co je zde vypsáno se netýká programování ale spíše návrhu projektu a jeho struktury...
Já bych se určitě nebál C++ případně i C# nebo Javy, ale Pascal bych rovnou zavrhl...
A místo měsíců počítej s roky :-))
"Štěstí je jako malé dítě. Musíte ho neustále podpírat a pomáhat mu"
martin_o5
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod daikatana_ 1. 12. 2011 23:14

Podle toho, co tu píšeš bych hádal, že s programováním nemáš žádné zkušenosti. Nevím, jak rychle jsi schopný se takové věci učit, navíc jestli bys to dělal komplet sám, včetně grafiky, navrhu map, atd., tak počítej, že to pár let zabere.

Na Pascal se vykašli, buď C++ nebo Java, preferoval bych C++.
http://www.foto-pro.cz

Workshop v Nepálu: http://www.foto-pro.cz/workshopy
daikatana_
Junior

Odeslat příspěvekod SPY 1. 12. 2011 23:32

No spis bych se rovnou podival na Unreal Engine/Cry Engine ... nez to cely psat rucne.

Na PCT je nekolik clanku jako uvod do UE. Kdybys chtel vic staci hledat. Zkusenosti s tim teda nemam.
SPY
Junior

Odeslat příspěvekod wojta 2. 12. 2011 01:31

Řešili jsme to nedávno s kolegou na projektu, kdy jsme měli udělat reklamní hru na Android. Pro představu něco jako curling s 2D pohledem shora. S vývojem her nulové zkušenosti, dělali jsme spíš webové aplikace v PHPčku a tak. Uměli jsme obstojně Javu a já dělám už nějakou dobu Android a trošku jsem před tím okukoval OpenGL.
Zvolili jsme podle mého názoru výbornou knihovnu libgdx(http://code.google.com/p/libgdx/). Čili jazyk je Java. Tutoriály jsou hodně snadné na pochopení. Za dva týdny jsme to měli v kapse. Navíc to obsahuje Box2D knihovnu pro 2D fyziku (stejné používá Angry Birds). Není to masivní herní engine, ale spíš grafický framework s podporou věcí pro vývoj her.
C:\>ver
MS-DOS Version 5.00
wojta
Pokročilý
Uživatelský avatar

Odeslat příspěvekod suk 2. 12. 2011 02:48

Tipuju, ze programovat neumis. Takze pokud nejsi talent, bude ti trvat dlouho, nez neco jako jednoduchou hru (natoz slozitejsi) budes schopen napsat. A kdyz pochopis programovani a pokud umis matematiku, pak nebude problem jakejkoliv jazyk.

Nicmene, v Jave to klidne napsat muzes, stejne tak v C/C++ - budes-li chtit nejakou multiplatformnost. Pokud ne, pak doporucim C#. Je to docela prijemnej jazyk (pokud clovek neni presprilis konzervativni) a jednodussi hry se v nem daji stvorit snadneji, nez treba v C++. Jenze nektery veci pak muzou bejt min efektivni ci narocnejsi...
Pokud nesouhlasíte s mým názorem, popřemýšlejte sami nad sebou. Opravdu si myslíte, že já bych se mohl mýlit?
----
You are an inspiration for a birth control...
suk
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Falhar 2. 12. 2011 07:47

Osobně doporučím C#, .NET a XNA.
Nebudeš se muset starat o velké množství low-level záležitostí, ale pořád si zanecháš dost prostoru pro vlastní věci.
Je to ale jenom pro Windows, ale pak by jsi mohl vyvíjet i pro Xbox360 nebo Windows Phone 7.

Batman19 píše:v tý je Minecraft (furt o něm píšu protože jeho tvůrci jsou pro mě vzor) naprogramovanej

Tak to bych si hodně rychle našel jiný vzor. Minecraft je notoricky známý svou mizernou optimalizací, částečně vyplývající z použití Javy a částečně z faktu, že Notch je mizerný a extrémně líný programátor (snad 50% pracovního času stráví na dovolených).
Kdyby to bylo naprogramováno v C++ a někým, kdo ví co dělá, tak by to běželo několikanásobně rychleji se zlomkem zaplněné paměti.
Taky Notch naslibuje horní spodní, a pak jen vykrádá mody. A to ještě špatně.
Falhar
Junior

Odeslat příspěvekod gandor 2. 12. 2011 10:03

Zalezi od toho, ako vazne si ochotny sa tomu venovat. Ak si ochotny stravit za tym roky, tak by som siel na nejaky nizsie urovnovy jazyk (C++) a najskvor by som zacal studovat algoritmizaciu (ako napr. quad stromy a podobne). Samotny vyvoj hier by som tak odlozit aspon o rok, kym budes vediet efektivne programovat.
Dalej dolezite rozhodnutie je tiez platforma. Ak vies, ze to budes vyvyjat pre "vsetky" platformy, tak asi najpohodlnejsie riesenie je zvolit javu (s C++ to tiez ide, ale treba mat urcite casti napisane pre kazdu platformu zvlast) - ta ale hned v sebe nesie svoje nevyhody (mozno to pri spravnom pouziti neplati = ak by si bol uplny expert, ale je vseobecne zname, ze Java je proste pomala a casto zerie viac pamete nez je treba).

Principialne vies ale vytvorit jednoduchu hru aj prakticky hned. Staci fakt vziat nejaky C#, jeho defaultnu kresliacu kniznicu (GD2 ak si dobre spomynam. Opravte ma ak som sa pomylil) a nieco napises aj v tom. Potom sa ale treba zmierit s tym, ze hra bude sekat aj na vykonnejsich strojoch, ze pobezi len pod windows a ze bude musiet byt velmi jednoducha.

No a este je pravda to co tu bolo spomenute. Vziat nejaky engine a vytvorit hru na nom dokaze usetrit neskutocne vela casu. Na to ale, aby si ho vedel pouzit uz musis velmi casto mat pomerne dobre znalosti s daneho jazyka.

PS. podla mna jeden clovek nemoze stacit (ak ano, tak klobuk dole) na to, aby napisal komplet celu kvalitnu hru. Potrebujes vediet fyziku, matematiku, algoritmizaciu, mat graficke citenie, vediet dobre animovat, mat super predstavivost a ovladat prostredie v ktorom to pises. Na jedneho cloveka podla mna privelke naroky.
gandor
Mírně pokročilý

Odeslat příspěvekod suk 2. 12. 2011 10:12

gandor: ohledne C++ a platforem - castecne se to da "obejit" pouzitim napriklad SDL a OpenGL a ono wokenni kreslici API (ktery je BTW pri beznym pouzivani C# pomerne nepouzitelny pro hry, kde bylo potreba kreslit vic nez jen obcas) je GDI+ (GD je knihovna pro PHP).

No, a jestli s necim nesouhlasim, tak je to PSko. Je spousta one-man her... a kdyz si vezmu treba LFS, tak to delaji 3 lidi, z nichz programuje jen jeden ;)
Pokud nesouhlasíte s mým názorem, popřemýšlejte sami nad sebou. Opravdu si myslíte, že já bych se mohl mýlit?
----
You are an inspiration for a birth control...
suk
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod gandor 2. 12. 2011 10:25

Ja som nenapisal, ze nemoze stacit 1 programator. Vravim, ze nestaci 1 clovek. Taky angry birds po technickej stranke bude vediet napisat aj jeden programator (aspon pod windows).

Ad obchadzanie - osobne skusenosti - nemas pravdu. Potrebujes pre kazdu platformu spravit nieco ine. A to priamo pouzivam OpenGL. Vzdy tam mas nejaky ten rozdiel. Nieco co nieje multiplatformove a podobne. Najskvor chces vytvorit napr. vsetky mipmap levely co ti spravi nove opengl samo. V starom opengl sa to robilo inak. Potom zistis, ze nemas main definovany ako int main(void){} a niekde na mac-u to ma problem a podobne srandoviny. Dalej aby si dostal vsade kontext, tak nemozes pouzit wgl, ale uz pouzivas freeglut a prepisujes. No a aby sa nezabudlo. OpenGL je len na grafiku. Teraz este potrebujes nejaku multiplatformovu kniznicu na zvuk - s cim sa tiez docela dobre zabava.
A ceresnicka na koniec - neni opengl ako opengl a s vydanim 3.2 uz oficialne nemas podporovane starsie verzie. Nehovoriac o OpenGL ES.
Vo finale to proste musis vsade spustit a skusat a portovat. V jave to mas jednoduchsie na ukor toho, ze je to java...

At GDI+. Ano mas pravdu. Nepamatal som si to. Uz je tomu rok co som to nepouzil a aj v dobe pouzivania to bolo iba skusanie.
gandor
Mírně pokročilý

Odeslat příspěvekod suk 2. 12. 2011 10:40

gandor: no vidis. Ja teda delal v DirectX a k openGL jsem pricichal na opravdovejch zakladech (a prave na SDL), takze ten jednoduchej kod byl(mel bejt) multiplatformni....
Pokud nesouhlasíte s mým názorem, popřemýšlejte sami nad sebou. Opravdu si myslíte, že já bych se mohl mýlit?
----
You are an inspiration for a birth control...
suk
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Batman19 2. 12. 2011 14:12

gandor: nemyslím si že budu vyvíjet hru hendka co se budu učit (asi to tak vyznělo). Chtěl bych to pod windows, pak asi linux. mac na můj PC by byl prblém

suk: taky hraješ nebo jsi hrál LFS? Jedna z mála her co hraju protože jiný jsou dost o ničem.

A jsem tomu schopnej věnovat třeba 1 hod denně učení, o víkendu třeba 2 nebo maximálně 3. Protože ještě nechodím ani na střední, tak to není problém. střední bych chtěl asi se zaměřením spíš na grafiku, ale ne jenom čistě na ní (co říkaté na školu aplikované kybernetiky v Hradci? (http://www.ssakhk.cz/) kdybych byl třeba u babičky, měl bych to docela blízko, z domu už tak ne (jsem z Hronova, kdo neví ten je u Náchoda)). Na střední bych pak rád našel pár lidí (třeba 4) kteří by byli schopni založit se mnou malý herní studio na hry pro PC (občas) ale hlavně pro android a iNěco co budenv tý době.
Batman19
Kolemjdoucí

Odeslat příspěvekod martin_o5 2. 12. 2011 21:38

Tak při učení max. 3 hodin denně a to jen o víkendech to bude trvat spíš desetiletí ;-)
Navíc - Android je čistě záležitost Javy.
Přenášet aplikaci napsanou pro windows na linux také nemusí být nejsnadnější, pokud se s tím nepočítá hned na začátku.
Nejlepší bude prostě něčím začít...čím obecnějším, tím to bude do budoucna lepší.
"Štěstí je jako malé dítě. Musíte ho neustále podpírat a pomáhat mu"
martin_o5
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Batman19 2. 12. 2011 22:37

myslím minimálně. není rpo ěm problém se 6 hodin učit jako ve škole...
Batman19
Kolemjdoucí

Odeslat příspěvekod Nargon 3. 12. 2011 02:24

Vzhledem k tomu ze chodis jen na zakladku, tak rovnou rikam na programovani her zapomen.
U programovani (obecne) je nutne chapat jak to funguje, aby jsi byl schopny svoji predstavu zapsat ve forme kodu. A je tam toho opravdu hodne na pochopeni. A ve tvem veku si nejsem moc jisty, ze mas mozek, ktery je schopny to pochopit.
A programovani her je dost narocny typ programovani, protoze tam casto musis dost optimalizovat kod, aby byl efektivni a rychly. Ty budes rad kdyz naprogramujes jednoduche veci typu. Pocitac si mysli cislo od 1 do 10, uhodni ho. Nebo zadej nezname mnozstvi cisel, zakoncenych znakem "*" a pak je vypis v obracenem poradi.

A navic na ty uplne zaklady programovani velice doporucuju lidskeho ucitele. Zadne knizky ani weby, ale spis toho cloveka co ti to vysvetli a co nepochopis, tak se ho na to zeptas. Protoze ty zaklady jsou nutne a bez nich neni programovani programovanim, ale v nejlepsim pripade jen slepovanim kousku kodu co vygooglis.

Pokud chces delat hry, tak zkus program GameMaker, to je asi tak to nejlepsi co ti doporucim.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků