Játékmotor-programozás és a programozási nyelvek
2020-06-17T10:47:42+02:00
2020-06-19T20:42:27+02:00
2022-07-20T14:42:40+02:00
  • Igazából ezzel az a probléma mint a 8K-s TV-vel. Az átlagpolgár meg sem látja a különbséget, nem hogy értékelje. Egy bizonyos szintig hozzá tud adni a játékélményhez hogy szebben csillog a napfény a rád kilőtt puskagolyón, de egy idő után már nem annyira.

    Másrészt, Pl. nekem a kedvenc játékom a Kings's Bounty Legends, illetve a Warriros of the North. Nagyon jó grafikája van: egyrészt elég szép, másrészt nem annyira reális, hogy na szúrjam ki a pálya sarkában kószáló ellenfelet játék közben. Szóval, nem biztos hogy minden játék esetében a realisztikus grafika a végső fejlődési irány.

    Félig OFF:
    Amúgy egyébként a King's Bounty legnagyobb baja pont az egyedileg írt játékmotor: a mai napig jönnek rá a frissítések, de bizonyos gépeken a mai napig fejreáll időnként (sőt, igazából minden gépen, csak más-más szitukban). Most viszont a Pillars Of Ethernityvel játszok (minek után a fentieket már vagy 20x végigtoltam). Ez is viszonylag kis költségvetésű játék, de Unity motorral: na, ez egyszer sem szállt szét még véletlenül sem. És nem ez az első eset, amikor egy-egy kisebb csapat egyedi játékmotorja vicces dolgokat művel, Pl. anno a SpellForce2-ben kb. a játék közepén kellett feladnom mert egy ponton olyan állapotba került a motor, hogy onnan nem volt tovább. A játékmotor fejlesztés szégyene pedig a Gothic 3 volt: már az első 10 percben lehetett vele olyat csinálni, hogy adtál egy tockost egy orknak, az pedig felrepült a ház tetejére, fejjel beleállt a tetőbe mint egy kémény, és ott remegett egy helyben... Persze, amúgy még az olyan nagy cégek is tudnak vicceset csinálni mint a Bethesda: gondolom nem csak én láttam még a Skyrimban égből a földre hulló mammutokat, bár az ott lehet, hogy inkább pályatervezés lehetett
    /Félig OFF
    Mutasd a teljes hozzászólást!
  • Re: Unreal 5:
    Igen, nem semmi az új tech demo. Amúgy már most sejhető nagyjából, hogy milyen technikák vannak a háttérben. (pl. a digital foundry-nak van egy jó elemzése.)  Szerintem a versenytársak már dolgoznak hasonló rendszereken. A hatalmas detail-el megáldott rigid body-k fényelését szépen megoldották, viszont azt nem tudni, hogy mi a helyzet a sok skeletal-animált modellt, sok hajat, füvet, fákat tartalmazó scene-ekkel.
    Állítólag nagyon határeset a teljesítmény a PS5-ön is, de ha tegyük fel kipipálnak minden renderelési problémát és teljes művészi szabadságot biztosítanak (tehát high-detail sculptokat szórnak korlátlanul a művészek a map-ekre) (szertinem még nem lesz ez teljesen korlátlan ebben a generációban), akkor egyébként még mindig van hova tovább: az új hatalmas probléma az assetek és a mapek mérete lesz. Itt nem gigabyte-okról lesz szó, hanem szerintem terabyte-okról. Az egyik leforróbb kutatási terület szerintem a 3d asset compression-decompression és on the fly procedural generálás lesz.
    Mutasd a teljes hozzászólást!
  • Vannak bizakodóbb hangok is: Microsoft: Rust Is the Industry’s ‘Best Chance’ at Safe Systems Programming – The New Stack

    Aztán majd meglátjuk. Végülis fiatal, mindössze 5 éves az 1.0-tól számítva, tehát még bármi lehet.
    Mutasd a teljes hozzászólást!
  • Azért alacsonyszintű, erős optimalizálást igénylő rendszerekből van annyi, és nagyon úgy tűnik, hogy lesz is, hogy azok, akiket ez érdel bőven találjanak munkát. Most az mindegy, hogy a munkaerőpiacnak ez a 10 vagy 20%-a: ez nem halott. És nem is lesz, mert Moore törvénye már nem annyira működik, ezért az optimalizálásra, pláne a core-ok számának növekedésével a multicore-ra optimalizálni tudó emberekre szükség van. Azt ugye te sem gondolod komolyan, hogy az a jobb karrier, amiből több kell? Nyilván több webfejlesztő kell, mint alacsonyszintű programozó, de azokból több is van. Én most pont munkahelyet váltok, és ahogy a munkaerőpiacon végignézek, pont azokat a tudásaimat értékelik, amiatt keresnek meg, ami nem annyira tipikus (pl. a C++ miatt elég érdekes cégek kerestek meg).
    Amúgy ha a nagyobb cégeket végignézed, rengeteg C/C++ munkát fogsz találni: Google, Facebook, Apple, Microsoft, Amazon. Ezenkívül kapásból ott van a játékipar, az embedded világ, és ezen kívül a pénzügyi szektor egy része is (trading rendszerek). Ezeket konkrétan láttam a napokban, amikor jobban végignéztem a munkaerőpiacon (hazai és külföldi állásokat is nézve, és meg is kerestek több szektorból ezek közül).  Ezek egy bizonyos típusú mérnöknek egy jó karriert adnak. Ez nem azt jelenti, hogy a többségnek ebben kellene dolgoznia. Én sem döntöttem el véglegesen, hogy teljesen elmegyek C++ irányba, nem akarom teljesen elfelejteni az egyéb területeken (pl. Java, Web) megszerzett tudásomat, de nagyon úgy tűnik, most a C/C++ területen találnak meg érdekesebb és nem rosszul jövedelmező feladatokkal. 

    Re Rust: Azt karrier szempontból nem tanultam volna meg, egyszeűren azért tanultam meg, mert érdekelt, hogy valóban lehet-e biztonságosabb, jobb architektúrájú (és jól optimalizált) programokat írni benne, mint C++-ban. Még nincs akkora tapasztalatom benne, hogy egyértelműen állást foglaljak, de eléggé az 'igen' felé billen a mérleg nyelve.
    Mutasd a teljes hozzászólást!
  • Őszintén szólva, nekem amúgy a Rust elég halott ügynek tűnik. Nem tudom, lesznek-e még annyira nagy alacsony szintű rendszerek fejlesztve. A windows, linux és BSD mellett szerintem már egy újabb OS-nek nem nagyon lenne esélye - az Apple sem kezdett saját OS fejlesztésbe, hanem fogta és lenyúlta a BSD kernelét, az Android is Linux kernelen lett megvalósítva, a Microsoft is az azúrban a saját rendszere mellett - sőt, néha inkább helyett - a linux vonalat tolja. Játékmotorban sem nagyon látom, hogy az Unreal legutóbbi demójához képest annyira nagyon lenne hova tovább. És a C/C++ azért annyira nem biztos, hogy annyira rossz, hogy érdemes legyen egy teljesen új nyelvbe és infrastruktúrába kezdeni, miközben az egész világ C/C++-ban van írva.
    Mutasd a teljes hozzászólást!
  • Nézd, az AAA kategória nagyon fasza dolog, de egyrészt a fene se akarna ilyet fejleszteni, másrészt igazából játszani sem feltétlenül jó velük. Az igazán jó játéknak nem kell feltétlenül eget rengető grafika, a másik oldalon nem annyira jó ha túl bonyolult. A legjobb játék anno a Heroes of Might and Magic III volt, elég egyszerű grafikával, és pofonegyeszerű játékmenettel. Az ellenpélda a Heroes V volt, mondjuk az sem bonyolult, de sikerült úgy elszúrni a játékmenetét (Pl. hatszög helyetti négyzet alapú pálya), és olyan csúf lett a grafika az akkori "szuper" 3D mellett, hogy úgy pár órán túl nemigen tudtam játszani vele.
    Mutasd a teljes hozzászólást!
  • Egyébként re Godot:
    Nekem is szimpatikus hobby fejlesztésre, de egy picit talán túl van értékelve (nyilván azért, mert erősen a kezdőkre fókuszál). Ha most lenne időm hobby fejlesztésre, kicsit jobban megnézném az Amethyst nevű Rust-ban írt open source game engine-t. Nem annyira ismert, mint a Godot, újabb is, de első ránézésre van benne fantázia:

    Twitter
    Mutasd a teljes hozzászólást!
  • Valamennyire belelátok ebbe: a legfejlettebb enginek kizárólag C++-ban íródnak. AAA studiók azért írnak saját engine-t, hogy még az Unreal-t és Unity-t is felülmúlják legalábbis egy-egy részterületen, ehhez pedig a legkisebb dolog, hogy ne kelljen garbage collectorral szórakozni, igazából ezen a területen teljesen másképp gondolkodnak, mint a hagyományos szoftverfejlesztésnél: minden a cache locality-ről, data driven programing-ról, az összes core kihasználásáról, lock-free algoritmusokról, direkt grafikus API-król, több threadből való render command encodeolásról szól. Igazából nem is hagyományos C++ fejlesztés, hanem hardware architektúrához igazodó fejlesztés. A Frostbite engine például az összes core-t maximálisan kihasználó job system-el rendlekezik, épp azokon a core-okon renderel, amelyeken épp van időszelet, általános framegraph rendszerrel és memory aliasinggal minimalizálja a használt videómemóriát: egy ennyire alacsonyszinten kontrollált rendszer semmit nem nyer egy külső virtual machine-el, csak borzalmasan behatárolná a mérnöki megoldásokat.
    A godot sehol nincs ezekhez képest, valamennyire ismerem a forrását: Juan Linietsky egy tehetséges programozó, de se a feature-ök mennyisége sem az optimalizálásba beletett munka  nem közelíti meg az AAA engine-ek szintjét. Pl. még most írják át Vulkan-ra a renderet, amikor máshol ez már rég alap.
    Ha valaki professzionálisan engine fejlesztéssel akar foglalkozni, akkor azt majdnem biztos, hogy C++-ban fogja tenni. Az más kérdés, hogy a Rust lehet, hogy jobb választás lenne: hogy miért nem Rust-ban vannak írva a nagy engine-ek, annak történelmi okai vannak: kevés az új engine, a legtöbb nagy engine elég régi. Akármilyen jó is az Unreal vagy a Unity, ma már senki nem úgy írná meg őket, ahogy most vannak megírva. Pl. ismert példa, hogy mindkét rendszerben mindenki elégedetlen az entity componen system megvalósítással: sokkal gyorsabb cuccokat lehetne tervezni mai tudással (a Unity dolgozik is egy új data driven entity componen system-en, de óriási munka átvezetni az egész rendszeren)
    Mutasd a teljes hozzászólást!
  • A Godot továbbra is hobbi és indie kategória fényévekre van még a többitől.

    Másik piac. A Godot nem az Unreal kihívója, hanem Pl. a Corona, GameMaker, Defold, stb. ligájában játszik. Ahová amúgy a Unity3D is próbál betörni, de szerintem eléggé ágyúval verébre dolog Unity-vel 2D játékot fejleszteni. A másik oldalon Pl. egy Pathfindert vagy egy Pillars of Eternity-t simán meg lehetne csinálni Godot-tal is, bár ezek eléggé a határán vannak az indie játékoknak.
    De az AAA kategóriás dolog egy másik liga, ott az intróba tolt grafika gyakran többe van, mint egy indie játék egész költségvetése.
    Mutasd a teljes hozzászólást!
  • A Godot továbbra is hobbi és indie kategória fényévekre van még a többitől.
    Mutasd a teljes hozzászólást!
  • Azért ez sem annyira lehetetlen küldetés, lásd Stride3d (ex xenko), JMonkeyEngine, libGDX Más kérdés, hogy a Godot mellett szerintem csak a nagy játékmotorok rúgnak igazán labdába (Unity3D, Unreal, stb). De ennek szvsz nem annyira technológiai oka van, hanem inkább az, hogy sok fejlesztõ = fejlett motor + környezet = sok felhasználó = még több fejlesztõ. A fenti cuccok (legalábbis a Stride és a GDX) eléggé egyszemélyes hadseregek. Pedig amúgy ez utóbbival elég sok minden készült anno.
    A Godot azért tudott kilőni, mert már eleve egy nagyobb játékstúdió által használt motor volt, ráadásul találtak olyanokat akik megfinanszírozták hogy főállású fejlesztőik legyenek.
    Mutasd a teljes hozzászólást!
  • Bizonyos területeken (pl. engine programozás), olyan garbage collectált nyelvek mint a a Go és a C# nem igazán jöhetnek szóba. A Rust viszont valóban érdekes alternatíva. A C++ tudásom még sokkal nagyobb mint a Rust tudásom, de igyekszem a Rust tudásomat felhozni, hogy objektívebb képem legyen egy esetleges zöldmezős döntésnél.

    Ez a hozzászólás és a rá adott válaszok a moderátor által lett átmozgatva a(z) "Új, 168 oldalas áttekintő esszét publikált a C++-ról a nyelv atyja, Bjarne Stroustrup" témából.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd