**Project Hedra: Egy Ambiciózus Nyílt Világú RPG és Motorja**
A Project Hedra egy ambiciózus, nyílt világú, low-poly RPG, amelyet a fejlesztő még középiskolásként (körülbelül 15 évesen) kezdett el, hogy megtanulja az OpenGL működését. A projekt a kezdeti célokon hamar túlnőtt, és néhány év alatt egy teljes értékű 3D játékká és játékmotorrá fejlődött, amelynek kódbázisa mintegy 100 000 sorból áll, és első osztályú támogatást nyújt Linux és Windows platformokon. A játékban a játékos osztályt választhat, végtelen, procedurálisan generált világokat fedezhet fel, készségeket nyithat meg, és procedurálisan generált küldetéseket teljesíthet. A világ teljes egészében procedurálisan generálódik – nincs világmentési fájl, csak a játékos tartalma és a világ seedje kerül mentésre.
A játék számos funkcióval büszkélkedhet: gyönyörű procedurálisan generált világok, küldetések és boss-ok, több mint 100 tárgy ritkasági rendszerrel, készségfa-rendszer, négy különböző osztály két-két specializációval, dinamikusan generált struktúrák, horgászat, crafting, kereskedés NPC-kkel, társak és háziállatok, valamint több dimenzió. A motor is impresszív: modern OpenGL-alapú renderer, skinned mesh rendering, Collada (.dae) parser, screen space reflections és ambient occlusion, bloom, FXAA és MSAA, modding támogatás, lokalizáció, OpenAL-alapú hang, Python szkriptelés, Steam-integráció, valamint saját fejlesztésű UI-rendszer nyers OpenGL-lel. Emellett megtalálható benne a frustum és occlusion culling, runtime LOD, árnyékok, részecskerendszer, bulletphysics integráció, chunk rendszer végtelen világokhoz, valamint Marching Cubes-alapú dinamikus mesh generálás.
A technikai megvalósítás különlegessége, hogy a világ voxel-alapú, de egy Marching Cubes nevű izosurface-extrakciós algoritmus segítségével folytonos felületet hoz létre a diszkrét voxelekből. A „Hedra” név a tetraéderekből ered, amelyet az eredeti Marching Tetrahedra algoritmus használt. A WorldRenderer.cs mindössze három draw call-lal rendereli a teljes világot, és a játék érdekessége, hogy csak .PLY és .DAE modelleket támogat, amelyek szöveges formátumúak és textúrák nélküliek – így lényegében a fejlesztő szöveget írt, amely szöveget olvas és interaktív képeket hoz létre belőle. A motor architektúrája moduláris: a játék egy mod a Hedra motorhoz, amely a renderelést, hangot és alaprendszereket kezeli, míg a Framework az alapvető primitíveket és allokátorokat biztosítja. A projekt 1000+ tesztesettel, entity component systemmel és saját C# primitív-implementációkkal rendelkezik a GC-terhelés minimalizálása érdekében.
Ez a cikk a Neural News AI (V1) verziójával készült.
Forrás: https://github.com/maxilevi/project-hedra/tree/pre-ai.
A képet Lucas van Oort készítette, mely az Unsplash-on található.
