ja sem v tom cosi nevyznám. je c++ vhodné na tvoření her v 3D? nebo jak se vytvářejí nějaké 3d modely něčeho? doufám že v nějakém 3d modelovacím programu a pak to do c++ nějak záhadně vecpat. zatím jsem zkoušel jenom tutoriály s konzolí a zatim sem neudělal nic užitečného, leda v gamemakeru. a je to fakt k něčemu vůbec dobré? má ta konzole něco společného s "normálním programem"? já se zase nechci učit zbytečně nějaké cout << jestli to budu v nekonzolových programech muset pixelovat, ty písmena. budu potřebovat directx? teda chtěl bych někdy udělat 3d rpg, třeba s někým v týmu, akorát nevim čím mám začít..a v čem je lepší visual c++ od normální ho c++ v devc++, tam se mění syntaxe, nebo je to jenom prostředí?
Fórum › C / C++
3d hry v c++
takže, vidim že to dotiahneš zase len po pointery a potom to vzdaš. Ale:
C++ je stale C++ , tie programy su tzv. IDE su to prostredia ktore uľahčuju programovanie
Konzola či ma niečo spoločné ? Vy začiatočnici to zle chapete, konzola sa použiva len preto, lebo ma jednoduchý vstup a výstup a taktiež jednoduchu štrukturu v podobe funkcie main. To je idealne na učenie sa jazyka. Takže inak ako tou konzolou sa ani začať nedá, ide o to naučiť sa jazyk a myslieť ako programátor. Radim ti, zabudni na to, že vytvoriš nove call of duty 5 alebo the elder of scrolls. Nech ťa motivuje to, že ak sa budeš venovať tejto problematike tak v buducnosti na svojom Porsche prejdeš okolo svojich spolužiakov a oni budu závidieť ;)
To mephi : no to je mi jasne ze neudelam nove elder scrolls, to je takovy muj sen..ja akorat, kdyz se naucim konzoli, tak co potom?
představuješ si to moc jednodušše :-)
jestli se chceš naučit C++ a takové úrovni, abys tvořil dobré 3d hry, musíš programovat několik let. A pro začátek minimálně pár měsíců pouze v konzoli. Právě v konzoli se učíš C++, na 3d grafiku už musíš použít některé knihovny + Directx nebo OpenGL.
A zase si to představuješ moc složitě, že se všechno cpe na obrazovku po jednotlivých pixelech, včetně písmen :-)
jestli chceš programovat hry, zatím není důležité znát, jak se tvoří 3D grafika. Prvně se musíš naučit C++ samotné, což je třeba i cout :-P
a k otázce: "má ta konzole něco společného s "normálním programem"?" - program je to pořád stejný, jen jednou se projevuje v konzoli, podruhé (se spoustou kodu navíc) i jako nějaká okenní aplikace (případně s 3D)
To mr.Crow. : no ja si tu představu chci upřesnit, nebo spíš vytvořit
takže se naučím konzoli a pak directx. je to teda dobrá volba? nebo se mám naučit pro jistotu i opengl
To Zelenáč : no tak se naučim programovat...v konzoli, pak budu muset nejak prejit na grafiku. ja bych raci nejak teda zatim ve 2D treba ze kdyz zmacknu vlevo tak se obrazek posune vlevo a tak..jsem amater
Oki, v prvním příspěvku si psal něco o zobrazování 3D modelů. K tomu, abys takový model zobrazil, potřebuješ ze souboru exportovat souřadnice jednotlivých vrcholů. Dobře zdokumentovaný formát je např 3DS. Zvládneš souřadnice načíst a vypsat pomocí toho tvého zbytečného cout? Dokud se ti tohle nepodaří, je absolutně zbytečné zabývat se nějakou grafickou knihovnou...
BTW. zobrazení je potom velice jednoduché (naznačím, jak by to vypadalo v OpenGL)
glBegin(GL_TRIANGLES);
for(int i=0; i<num_triangles; i++){
glVertex3f(trinagle[i].A.x, trinagle[i].A.y, trinagle[i].A.z); // vrchol A
glVertex3f(trinagle[i].B.x, trinagle[i].B.y, trinagle[i].B.z); // vrchol B
glVertex3f(trinagle[i].C.x, trinagle[i].C.y, trinagle[i].C.z); // vrchol C
}
glEnd();
Tohle je ale pořád ještě ta jednodušší část programování her.. Musíš naprogramovat umělou inteligenci, fyzikální engine... Je toho hodně. A z tvých příspěvků usuzuji, že zatím neumíš abolutně nic.
To Zelenáč : ja neřikam že je cout zbytečný, já se na to ptám. tak teda není. takže až budu extreme 3d programátor(zatím asi moc nejsem), tak dám do složky s hrou ten soubor 3DS a načtu ho z exe? a pak s nim nejak zahadne budu moct pohybovat s temi body matematicky, že se třeba pohnou když zmáčknu vlevo?
To RybaRak-WM : Proboha, tak zmatený příspěvek jsem snad nikdy nečetl :-)
C++ jako samotné umí pracovat jen v konzolovém režimu, ale pomocí různých knihoven pro práci s grafikou apod. (OpenGL, DirectX...) se dá samozřejmě 3D grafika kódit. Začít bys měl tím, že se nejdřív alespoň základní techniky jazyka C++ naučíš, protože to všechno, co ti zatím přijde zbytečné, můžeš využít při práci s nějakou z grafických knihoven.
Visual C++ je vývojové prostředí přímo od Microsoftu, je velmi kvalitní, zadarmo, bohužel, jen v Express edici, která pro začátečníky postačí. DevC++ je velmi slabé IDE, v podstatě už mrtvé, v jeho vývoji se už nepokračuje. Jinak jsem nepochopil "jestli se tam meni syntaxe nebo je to jen vyvojove prostredi".
To midin : no jestli je tam jina syntaxe nebo vývojové prostředí. prostě jestli je c++ jinčí programovací jazyk než visual c++. zmatený opravdu jsem
tak diky za odpovedi, ja se teda budu učit konzoli, když se mi to teda bude hodit
jo a ještě, jaký je rozdíl mezi directx 9 a 10? nemyslím konkrétně, teda, je to to samé, nebo tam sou nové funkce, nebo teda prakticky, budu se muset učit něco uplně jiného? nebo na dx 10 pojede i hra z dx9, ale nebude využívat nové funkce a můžu si teoreticky naprogramovat vlastní grafikonevimco typu directx nebo opengl, nebo to musí podporovat OS
To by se mi muselo stát něco hodně ošklivýho, Mirku :-)
Já se tady kolegovi Vládci moří jen snažím vysvětlit rozdíl mezi programováním "v konzoli" a programováním "v directx". (tedy ŽÁDNÝ rozdíl - absolutně nezáleží na tom, jakým způsobem a jestli vůbec budeš data posílat grafické kartě)
To Zelenáč : takže v novější verzi directX jsou nové funkce? jo a že mám dobrý nick?
a nebo se to jenom líp zobrazí?
no naprogramoval jsem něco jednoduchého v té konzoli co se mi nelíbí, jako že se vypíše text, třeba se to na něco zeptá a já třeba něco vypočtu, prostě jenom z toho tutoriálu co tady je, třeba RybaCrack, takový nefunkční crack na všechno. ale jinak jsem programoval v gamemakeru. tam sem udělal kostiracing, kostiracing 2 a kostiracing 3 a dělám RybaRak Racing(RRR). to jsem byl ještě KostiTras(taky super nick). Bylo to 2D, jezdilo se tam s autem okolo zdí. a bylo to velmi originální, já mám všechno originální
To RybaRak-WM : no tak na to abys mohl programovat nejakej 3d engine musis mit hlavne matematicke schopnosti tzn. vysoka skola technocka neuskodi.. Dale asio tezko pochopis jak se programujou hry, kdyz neumis ani uplne zaklady strukturovaneho programovani a to my ver ja si taky kdysi myslel, ze se vsecko naucim za rok a budu psat kdo vi co za hry. Od te doby co jsem zacal s programovanim uz uplynuly ctyri roky a stejne je pro me programovani her z velke casti spanelska vesnice.. Psat nejake okeni aplikace budes teoreticky schopen psat treba za rok, ale na psani her musis mit hodne skusenosti a hlavne casu.
Tak se snaz a nevdej to :smile1:
To micro.21 : budu se snažit to nevzdát. teda momentálně jsem v absolutním nadšení, ale to asi přejde, ale budu se snažit to nevzdát..
To RybaRak-WM : jo to nadseni moc dobre znam dycky me to extreme chytne a za tyden pusti :smile1: . Jinak kdybys chtel programovat hry v jazyce JAVA tak ti muzu doporucit knihu "programujeme dokonale hry v jazycde java" je to opravdu perfektne napsana kniha a vse vysveluje hezky krucek po krucku mam ji doma takze vim o cem mluvim :smile3: . Samozrejme ale musis znat hezky podrobne OOP programovani jinak ti nepomuze zadna kniha.
tak už jste mi asi řekli všechno, co bych zatím měl vědět. budu se teda učit ty základy programování v konzoli a pak se možná ozvu s něčím inteligentnějším no..
Erik napsal:
Zelenáč: OT: čo bude s tymi článkami o PHP, kt. si potvrdil ? (Na SS si mi neodpovedal :-/)
Nemohl by si ten "jednoduchy e-shop" nejak upresnit? S cim presne chces poradit? Nebylo by lepsi, kdyby ses zeptal na konkretni problem na foru a ja nemusel spat rozsahly clanek s minimalni hodnotou?
Erik napsal:
Ale este stale tu nikto nenapisal, ze ako sa tie modely napr. z 3Ds maxu dostanu do hry...
Achjo... Jeste jednou:
1) otevres soubor
2) nactes souradnice, textury, barvy, pruhlednost apod..
3) vykreslis pomoci nejake graficke knihovny (OpenGL..)
Odporucal by som postupne ist od klasickej konzoly k SDL a az potom k OpenGL,,
konzola -> 2D(SDL) -> (2D/3D) OpenGL ----> DirectX
ale ked uz ides podla nejakeho manualu tak je dobre si vyskusat
nieco sam z vedomosti ktore si doposial zyskal, Aby si neostal len u tych uloh z manualov.
Takto sa to lepsie naucis a ciastocne pochopis to dianie.
Hlavne zabudni na GM a tie drop'n'drag bludy.
Na tohle téma si nemůžu odpustit reakci...to prostě nejde =)
a) Neodoručuji se učit DX, jelikož ve vývoji verze od verze se mění funkce i jádro, největší úpravy byli při přechodu DX5 -> DX6 a nyní DX9 -> DX10 (proto se nikomu nechce příliš vyvíjet pod DX10 - je to sice hezký, ale musí se naučit většina syntaxe znovu, což samozřejmě musí platit firmy (+ navíc čas)). Pokud se nepletu, pod DX10 programy na DX9.0c nerozchodíš, ale win vista snad má i knihovny DX9.0c. Navíc Linux (a ostatní free OS) posilují a i firmy si začínají uvědomovat, že Win není jediným OS na světě. Výhodou OGL je podpora jak Win, tak Linuxu, Mac(u)....
b) Přechod z C++ na OGL (popř. DX) je jako skákat z Paříže do Prahy. Asi těžko zkočíš. Již v listopadu (předmin. rok) jsem si koupil knihu o C++ (měl jsem předtím i nějaké základy) a až teď si troufnu přecházet na okenní aplikace. Asi vynecháváš pointu SDL či WinAPI. TY ti vytvoří základní app (v případě WinAPI je to procento mnohem větší). Pokud chceš začít s programováním her, raději se podívej na 2D. Přechod z konzole na okenní aplikace je trošku zmatený, protože se orientace v programu změní (zprávy, vstupy i výstupy, matematika...)
c) Jak již psal Zelenáč, hry jsou i o Fyzice a AI. Naprogramovat Fyziku např. závodní hry je ... prostě těžký. Matematiky a Fyzika (hlavně ve Fyzice :P) je velmi náročná a při dnešních poměrech (např. zničitelné prostředí). Kdysi stačilo vytvořit i něco jen v konzole a zájem mohl být obrovský...dnes uděláš 3D hru a může padnout během dvou týdnů.
d) Konzole je důležitá. Už jen to, že třeba jen tvé DX a OpenGL je psané pod C++ (C, Delphi...)
To je vše...
To survik1 : jo to sem potřeboval, vědět jak je to s tím novým dx. jinak SDL má zatím moc škaredý název abych se to začal učit, takže pujdu na OpenGL a pak teda možná super xTREME název DirectX
a jak je to se zvukem? dá se nějak nechat přehrát zkuk třeba o nějaké frekvenci, nebo to musím udělat třeba mp3 a pak to do exe záhadně vecpat a nebo to dát do svojeho speciálního formátu a pak to v exe přehrát? jde to udělat v konzoli? to \a mi cosi nehraje ale asi to nebude zrovna \a, co používají vývojáři her
To RybaRak-WM :
a) Jestli si myslíš, že se během 10 let naučíš C++, OGL, DX, WinAPI a SDL, tak jsi cvok. WinAPI i SDL POTŘEBUJEŠ k programování v OGL a DX. Minimálně základy. A oba jazyky jsou natolik odlišné a složité, že učit se druhý je nesmysl (leda že bys šel z DX na OGL kvůli multiplatformosti) + když se vezme v potaz neustálí přísun nových technologií
b) Co máš proti SDL? Je to krásný a přehledný kód a natolik jednoduchý, že se jeho základy dají naučit i bez znalostí C++ (tedy bez větších znalostí)
c) záhadně vecpat :smile19: :smile6:
Nejnižší je zvuk vytvářený přes okenní app (SDL či WinAPI).
Tohle je např. kód v SDL na přehrávání zvuku
Mix_Music *music;
Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2,1024)
music=Mix_LoadMUS("music.mp3");
int prehrat = Mix_PlayMusic(music, -1);
if (prehrat == -1) {
Mix_CloseAudio();
}
Pak to jde přes OGL i přes DX (kvůli 3D zvuku - v dálce slyšíš zvuk méně než v blízkosti)
d) Můžeš použít základní formáty, nebo si vytvořit vlastní knihovny a používat vlastní formát zvuku.
e)V konzoli zvuk nejde.
f) Vývojáři her...to je individální. Většina studií (lidí) však sáhne po existujícím řešení, než aby zbytečně (kvůli možnosti zpětně vytáhnout data) zvuky balila a kvůli tomu vydávala čas a prostředky na vytváření nových knihoven. Zkrátka ti, co dělají pod SDL (OGL) si raději vezmou existující knihovny (www.libsdl.org) a ti co mají WinAPI využijí základních funkcí pro přehrávání zvuku (=> využívají se jen základní formáty)
Pokud jsem otázku f) nepochopil, omlouvám se.
> ... e)V konzoli zvuk nejde. ...
ale coby nesiel, v konzolovej aplikacii mozte robit vsetko to, co v ostatnych typoch aplikacii, volat directx, opengl, winapi, (a ine) funkcie. ale spet ktomu zvuku, mrknite sa na win32 api funkciu PlaySound ms-help://MS.MSDNQTR.v90.en/multimed/htm/_win32_playsound.htm
To survik1 : hehe, nic take ako konzolove c++ neexistuje, taky program by sa dal tak maximalne oznacit za platform specific ale to je asi tak vsetko.
To survik1 : jak říkám, proti SDL mám že to nemá tak xtrémní název jako DirectX. to je vše. jinak co se teda naučím za 10 let když jsem mírně nadprůměrný člověk?
respektive vládce všech moří
To AdamHlavatovic :
To DanielP :
Myslel jsem tím samotnou práci v konzole... :smile11:
To RybaRak-WM : :smile19: :smile6:
Osobně mi to začíná připomínat kauzu VojtaK, pamatujete? :D
VojtaK...to byl Paking, ze jo? :D
co se teda můžu naučit za 10 let? btw. dá se nějak zařídit abych měl jak mám napsáno level: myška, aby tam bylo vládce všech moří?
To survik1 : z čeho si dělám srandu, ja chci programovat, je mi 14 a když všichni říkájí jak je to strašně těžké, tak sem se zeptal... teda to s tím přejmenováním sem až tak vážně nemyslel..
To survik1 : "Nejnižší zvuk" se dělá (dělal) v assembleru,
ťukáním přímo na membránu repráku, zápisem jedničky na správnou adresu zvukového čipu,
ve smyčce se zpožděním. Zpoždění určovalo kmitočet (tón).
Ale to jsem 20 let zpátky.
To Tomix : Osobně mě přes konzoli a s použitím C++ napadá jen \a
To RybaRak-WM : Vládce moří..hmmm...
Neptej se, jak je to těžké. Programuj. Za chvíli zjistíš, zda-li to těžké je nebo není ;)
To survik1 : budu
Prosím nevíte jsetli tady je někde návod na tvorbu 3d her v c plus plus?
To gfhghghghgh : konkretne na na tvorbu je toho malo. Treba isť:
konzola -> SDL -> OpenGL
-> Allegro -> Direct3D
najskor treba zvladnuť jazyk a zakladne programatorske myslenie. potom si osvojiť grafický výstup a chovanie programu. Potom vymyslieť nejaku hru a pokúšať sa tvoriť. Ina cesta tušim nie je.
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
Moderátoři diskuze