Játékfejlesztéshez: C++ vagy C#?
Itt most nem 2d-s játékokról beszélek, hanem rendes, "nagy" játékokról. A C#-nak ott a .net meg hasonlók, ami nagy segítség, meg az XNA, de ugyanakkor külföldi oldalakon sokan a C++-t ajánlják. Java egyértelműen kilőve, mert túl rendszerigényes.
Szóval ki szavaz a C#-ra és ki a c++-ra?
És melyiket melyikkel érdemesebb? OpenGL vagy DirectX?
Valóban igaz az, hogy a C# nyelven írt kód némileg lassabb, de nem azért, mert managed (ez egyszerűen annyit jelent, hogy a memóriát automatikusan szabadítja fel ún. garbage collector segítségével), hanem mert virtuális gép futtatja, a CLR (Common Language Runtime).
Nos, hogy ezen átestünk, jöhet a következő hátbatámadás: C++ nyelven is lehet .NET-re fejleszteni.
De gondolom te úgy értetted, hogy a C++-szal natív kódot írsz (az oprendszeren kívül nem kell semmi más futtatókörnyezet), míg C#-pal a .NET futtatókörnyezetre. Mindkettővel lehet játékot fejleszteni, sőt, ott van a Unity is, ami úgy tudom, hogy létezik .NET-re is. Tény, hogy a C++-ban írt kód gyorsabban fog neked számolgatni, éppen ezért írják ezen a nyelven a játékokat leginkább.
Ha már C++-t használsz, érdemes az OpenGL mellett letenni a voksot. Mégpedig azért, mert a szabványos C++ kód (már ha nem használsz egy adott operációs rendszer által támogatott eszközt, pl. függvényt) az bármilyen platformon újrafordítható, és az OpenGL is létezik kb. minden platformra. Így a játékod menni fog Windows, Linux, stb. rendszerek alatt is.
"Itt most nem 2d-s játékokról beszélek, hanem rendes, "nagy" játékokról."
Ha ilyeneket akarsz csinálni azt úgy is csapatban fogtok.Egyedül lehetetlen.Minek akarnál a nulláról megírni valamit.Az előző kommentelőre ne hallgass szerintem mert nem grafikus motort akarsz írni hanem játékot.Minek kezdenél ez esetben egy olyan alacsony szintű könyvtárral mint az opengl?Ha nem akarsz grafikus motrot használni akkor is választhatnál magasabb szintű libet.
Például ogre3D ha ennyire ragaszkodsz a c++ hoz.
mindig ezt hozom fel, de ott a Minecraft, vagy az iRacing. Mindkettőt kis csapat csinálja/csinálta, és évről évre fejlődött. Az iRacing egy versenyszimulátor, és nem is tudom mikor adták ki, de az akkori és a mai változat között óriási a különbség.
Én inkább így gondolkodok, hogy kis csapatban, lassabban, de minőséget. Ha az embereknek tetszik már az elején, akkor mindvégig velünk fognak maradni.
Most nem akarok belemenni a játékokba, mert kitudja mennyire ismeritek, de létezik egy Dayz nevű játék, olyan bugos mint a fene, fagyogat, törlődik a karakter stb... de a legtöbbet eladott játék a digitális piacon, és az emberek szeretik.
És bevallom, kezdő vagyok még a szakmában, de ha tehetem szabadidőmben csak a könyveket és videókat bújom, még a c++ bibliáját is megvettem, nem sokat értek belőle vagyis mert annyira belemegy az egészbe, amit a tutorialokban nem mondanak el, de mindig utánanézek és tanulgatom, szóval ambiciózus vagyok, és ezért is teszek fel ilyen kérdéseket.
És köszi a válaszokat!
Mint mondták is, ne találd fel újra a kereket, indulj ki meglévő libekből.
Lehet ez Unity, vagy valami C++ grafikus könyvtár. (Az Ogre3D mondjuk kifejezetten jó.)
Akkor nagyrészt csak a játék "logikáját" kell kitalálni.
DE kis csapat ide-vagy oda, ha tényleg kezdő vagy, akkor arra készülj fel, hogy csak az alapok tényleges, jó megtanulására is lehet évek mennek rá.
Szóval az első, "ténylegesen valamennyire működő" demót se várd nagyon 1-2 évnél korábban.
persze, tudom :)
Nem akarok értetlennek tűnni, de akkor azt mondjátok, hogy az Opengl helyett valami mást lenne érdemesebb?
Nem, ezek a rendszerek is többnyire az OpenGL-re vagy a DirectX-re építenek (Ogre-nál választható pl), pusztán azt mondjuk, hogy tök fölösleges lemenni és nulláról megírni mindent újra, ugyanis tök jó, hogy van OpenGL, de attól még nem leszel meg egyhamar.
Az utasítások elég alapak, már 1-1 modell megrajzolása sem olyan triviális.
Ezért jók a kész könyvtárak, mivel jelentősen megkönnyítik a munkát.
Azt azért hozzá kell tenni hogy a minecraft-nak lényegében nincsen fizikája, grafikája is inkább a paint színvonalán mozog, nincs hangja, cselekménye se nagyon, és alapvetően csak arra jó hogy az ember megideologizáljon egy bár valószínűleg nagy játékélménnyel bíró, de haszontalan időtöltést. Merthogy "hű de faxa dolgokat lehet építeni", csak annyi energiával és egy normális 3D tervező programmal már normális dolgokat is alkothatsz.
Ennyit a minecraftról.
Érdekes, hogy az MC-t hoztad fel, amit Java-ban írtak :D
Ha a játékokat egy egyenesen helyezzük el, akkor az egyenes két végén vannak azok a játékok, amik fejlesztői szempontból kevesebb erőforrást igényeltek, ugyanakkor lényegesen több újdonságot és kreativitásra volt szükség hozzájuk (MC, és az indie vonal), illetve a másik oldalon, amik semmi újdonságot nem hoznak, de mégis hatalmas fejlesztői gárda van mögötte, mert egy kicsit kerekebb a lövedék, egy kicsit jobban elbújik az ellenség, stb (COD 1234. része és hasonlók).
A pixelenkénti rajzolgatást el kell felejteni, arra ott a Dx és az OpenGL (persze nem árt tudni, hogy ezek hogy rajzolják ki azokat a bizonyos pixeleket). Még mielőtt bármelyik mellett letennéd a voksod érdemes elgondolni, hogy tényleg 0-ról kell-e elkezdeni megírni a játék motort, vagy esetleg a meglévő motorok scriptelésével is meg lehet oldani a feladatot. Egy meglévő motor használta produktívabb, ha tudod mit kell csinálni. Viszont ha akkor látod életedben először, akkor sokat hátráltat, mert egyrészt meg kell tanulni, az alap grafikus cuccokat, aztán meg még a motor működését is.
A helyedben megtanulnék C++-ban nagyon jól programozni. Ha ez megvan (2-3 év), akkor már lehet a játékok felé fordulni.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!