Programozó
ROB-O-TAP (android / ios) - Unity engine
Első játékom, játékfejlesztő/programozóként a ROB-O-TAP. 2014-ben készült, a teljes játékot ketten programoztuk. A kihívást az akkori mobil készülékek limitált erőforrása adta, de ennek ellenére megoldottuk, hogy szépen fusson a játék android-on és ios-en.
A fejlesztés legtöbb területén is dolgoztam:
Core gameplay
Játék logika implementálása
Csapdák mechanizmusának megvalósítása
Item felvétel
3D UI vezérlés
Robotok és csapdák animációi programozása
Játékzene, különböző elemek hangjainak lejátszása, robotok hangjainak animációkhoz illesztése és a teljes hanglejátszó rendszer implementálás
SDK integrációk (facebook, twitter, AD, stb.)
Optimalizáció
Daytona Rush (android / ios) - Unity engine
Nagy népszerűségnek örvendett a maga idejében, főleg amerikában a top listán volt a nascar időszakokban. Erről akkor sok hír meg is jelent. Egyszerű mechanika, de nagyon szórakoztató volt sokak számára.
Ebben a projektben kiadás előtt a következőkön dolgoztam:
Core gameplay feladatok
UI (a korábbi teljes UI kódot refaktoráltam)
Egyedi Achivement rendszer
Mentési rendszer és konfigurációs adatbázis
SDK integrációk (facebook, twitter, ADs, stb.)
Optimalizáció
Give It Up! (android / ios) - Unity engine
Az eredeti prototípus kódja teljesen le lett cserélve a Give It Up! 2 kódjára. A munkáimat ott részletezem. Később a grafika és a pálya az új játék kódjára lett visszahelyezve. Sok update-et (bugfix, content update, stb.) készítettem és adtam ki a játékhoz, mind PlayStore-ban és AppStore-ban is. Kínában nagyon népszerű lett a játék, a toplistákon volt hosszú ideig.
Give It Up! 2 (android / android tv / ios) - Unity engine
Az alapoktól kezdve a fejlesztésén dolgoztam. A legnagyobb kihívást, az akkor android rendszerek hangcsúszása okozta, minden unity-s zene (android-on ez a native zenelejátszó) elindítása után készülékenként változó időtartamban csúszással indult el a zene, ami egy ritmusjátéknál egyenlő a katasztrófával. Erre készítettem egy saját megoldást, egyedi megközelítéssel, ami lehetővé tette, hogy csúszás nélkül a paca a megfelelő ütemre érkezzen a platformokra.
Főbb feladatiam:
Játéklogika működés, core gameplay
UI működése
Editor tool-ok (lásd lenn az UMU tool-oknál) és pályaszerkesztő a fejlesztők számára
Csúszásmentes hangrendszer
SDK integrációk (facebook, twitter, ADs, stb.)
Mentési rendszer és konfigurációs adatbázis
Optimalizáció
Give It Up! 3 (android / ios) - Unity engine
Részben az előző játék alapjaira épült, de nagyon sok új dologra volt szükség.
Feladataim:
Fejlesztőbarát, több modulos 3d pályaszerkesztő (2d, 3d, görbe, környezet, platform tulajdonság szerkesztő) tervezése és implementálása.
Automatikus görbe generálás, műveletek görbékkel.
Prezentációs rétege a moduloknak.
Automatikus környezet generáló, és környezet szerkesztő, ingame környezet betöltő.
Automatikus OS függő csúszásmentes hangrendszer, 3d-s hangrendszerrel kiegészítve, automatikus audió adatbázissal, részletes audió beállítás lehetőségek hangonként.
Ingame pályák dinamikus bepadlózása, minimum magasság, téma és pálya területétől függően.
Ingame platfomok alatti “vonal/árnyék”, line renderer-el.
Újra felhasználható hardverdetektáló eszköz, különböző erősségű eszközökön más-más quality beállításokon indul a játék.
Saját UI plugin rendszer használata az egész játékban, ami támogatja a 2d és a 3d UI-t is.
GIU2-es mentési rendszer átalakítása (játékmentés és pályamentések átalakítása, görbék mentése, környezet mentése)
Zenék vágása, később zenevágás automatizása saját pluginnal.
Játék optimalizálása:
Ingame platformok és környezeti elemek lod-ozása,
Pályák betöltésének optimalizálása
Programozói munkák összefogása.
Malazard (steam VR) - Unity engine
Ketten programoztuk a játékot, 3 hónap fejlesztési idő alatt. Inkább afféle technológiai demo-nak szántuk, mint első VR játékunk.
Főbb feladataim:
3D UI működése
Játék elemek működése
Ellenfél karakterek:
Támadási hullámok generálása hangolható módon
Viselkedésük programozása (AI): HP, támadások, védekezés
Scene áttöltés és főmenü működés
Kontroller működése a VR-ban
Optimalizáció
Ennek a játéknak, egyedül végeztem el a teljes játék portolását xbox-ra (beadással együtt). Optimalizáltam helyenként a PC verziót és több átalakítás is szükséges volt az xbox irányelveinek támogatása miatt (például a kontrollerhez kapcsolt felhasználói profilok támogatása). Az xbox sdk integrálásával, a korábbi funkciók teljes támogatását megoldottam a platformon.
Gummy Heroes (android / ios) - Unity engine
A fejlesztés második felében csatlakoztam be a projektbe.
Főbb feladataim:
Core gameplay elemek lefejlesztése
Mentési rendszer
UI működésének programozása
Optimalizáció
Give It Up! Plus (steam) - Unity engine
A népszerű Give It Up! játék portolása volt a cél PC plartformra. Itt a játékosok számára egyszerűen használható pályaszerkesztő implementálása volt a fő feladatatom, steam integráció, adatok mentése és cloud sync. Eredetileg a Give It Up! 2 kódjára épült, arról írtam korábban.
Give It Up! Bouncy (android / ios / nitendo switch) - Unity engine
A népszerű Give It Up! brandá-re építve, egy új mechanikát próbáltunk ki.
A következő feladatokon dolgoztam:
Team lead
Részlegek közötti kommunikáció
Programozói feladatok kiosztása és visszaellenőrzése, követelmények betartatása, kód minőség fenntartása
Játék struktúra kialakítása
Platformok működése és a hozzá kapcsolódó adatszerkezetek felépítése
Pályaszerkesztő és pálya adatok mentése
SDK integrációk (Playfab, ADs, stb.)
PlayFab cloud sync és egyéb live funkciók támogatása (üzenet küldés a játékosoknak, promóciók, játékverzió ellenőrzés, stb.)
Saját UI plugin rendszer használata és fejlesztése (időzített animált panelváltások, körmentes back funkció, stb.)
Újra felhasználható hardverdetektáló eszköz, különböző erősségű eszközökön más-más quality beállításokon indul a játék.
Egyedi mentési rendszer és konfigurációs adatbázis
Multi Battle (mobile game prototype) - Unity engine
Ebben a játékban a multiplayer megvalósításán dolgoztam, lobby, adat szinkronizáció, core gameplay. A játék nem jelent meg, inkább csak érdekesség képpen tüntetem fel.
Deeprealm Odyssey EA (android / ios) - Unity engine
A következő feladatokon dolgoztam:
Project manager / Team lead
Részlegek közötti kommunikáció
Programozói feladatok kiosztása és visszaellenőrzése, követelmények betartatása, kód minőség fenntartása.
Előrehaladás, költségek folyamatos mérése és jelentése
Ellenfelek (AI):
Viselkedésük programozása: HP, támadás, védekezés..
Mentés és konfigurációs adatbázisok
Optimalizáció
Flåklypa Grand Prix (steam, nintendo switch) - Unreal engine
A népszerű norvég bábfilm ihlette story játék, autóversenyzős részeit készítettük el. A teljes játékon több studió is dolgozott, hogy minél jobb minőséget tudjunk elérni.
Itt a következő feladatokon dolgoztam:
Project manager / Team lead
Részlegek közötti kommunikáció
Programozói feladatok kiosztása és visszaellenőrzése, követelmények betartatása, kód minőség fenntartása.
Előrehaladás, költségek folyamatos mérése és jelentése
Racing AI:
Hangolható erősség (easy, medium, hard)
Pályán felvehető itemek használata (olajfolt, villám, stb.)
Útvonalak optimális és változatos bejárása. Alapvetően spline követéssel működik és az út adatok alapján előre nézi, hogy mikor kell lassítania és mennyivel mehet az adott útszakaszon. Mindig az optimális íven próbál haladni, ha nincs semmi akadály az úton, hogy minél hatékonyabb legyen.
Cath-up system (játékosfigyelés, multiplayer támogatással), azaz több játékos esetén is minden játékos körül lesznek AI autók, hogy érezhető legyen a verseny hangulat.
Ütközés védelem, hatékony előzés, AI csapatkommunikáció. Folyamatosan figyeli az AI a körülötte lévő autókat és a pálya lehetőségeit próbálja kihasználni, hogy elkerülje az ütközéseket, például sokkal jobban lehúzódik.
Minden pályára / játékmódra / autóra, hangoltam az általam implementált AI-t a design kérésnek megfelelően.
Optimalizáció (blueprintek nativizálása vagy átírása c++-ba).
Maximum Football - Unreal engine
Az amerikai foci fejlesztésébe később kapcsolódtam bele. Ebben a fő feladatom a foci AI-ok fejlesztése és a meglévő rendszerek hibajavítása volt.
Pár dolog ezekből:
AI inicializáció megfelelő időzítése, hogy a GameMode-ból minden szükséges adat rendelkezés álljon.
Bevezettem az AI-ok számára egy külön commonData réteget, ahol megfelelő játékeseményekre frissülnek az adatok és minden AI közvetlen módon csak innen kér ki játék adatot. Így nincs szükség mindenféle réteg elérésére.
Behavior tree-k egyszerűsítése és generikusabb BT taskok, BT service-ek programozása az újabb kérésekre.
Különböző játékmódok támogatása az AI által, szerepkörök szerint felosztva.
Mudfest - Unreal engine
Sárban dagonyázó, egyedi fejlesztésű technológiákra épülő autós játék.
Itt a következő feladatokon dolgoztam:
Team lead
Programozói feladatok kiosztása és visszaellenőrzése, követelmények betartatása, kód minőség fenntartása.
Autó AI fejlesztés
Egyedi fizikát használó autók vezetése, általam meghatározott interfacen keresztül. Ehhez egy egyedi AI plugint terveztem (teljesen c++ oldalon leprogramozva, nem használ blueprint-eket). Ezt az AI plugint részletezem az egyéni céges fejlesztéseknél, lentebb. Elég sok hasznos funkciót kapott, az unreal meglévő összes AI feature-ét támogatja.
Karakter AI fejlesztés
Egyedi viselkedéssel rendelkező, pályákon mászkáló és szurkoló AI karakterek implementálása, akik reagálnak a környezetükre.
A fenn említett projektek során és más projekteken végeztem portolást is, beadási folyamatokkal együtt, a következő platformokra: XBOX, AndroidTV, PlayStore, AppleStore, Steam. Feladataim között szerepelt különböző SDK integrálása a játékokba, például: AD, Cloud services (playfab), MultiPlayer (photon). A munkafolyamatok egyszerűsítése/automatizálása miatt gyakran készítettem editor tool-okat.
A fejlesztők munkáját gyorsítása és egyszerűsítése végett, Unity editor tool-okat készítettem.
Unity fejlesztői tool-ok (UMU - Unity Mikuci Utility)
Unreal engine AI plugin
A cél az volt, hogy egy egyedi AI plugin készüljön, unreal engine AI technológiákat felhasználva, mint például: Navigation mesh, Behavior tree, Perception, RVO, stb.
A plugin több modulból áll, a generic része a legnagyobb, ami pawn típusától függetlenül képes dolgozi, az unreal AI eszközöket kiterjesztve. A többi feladatot a pawn specifikus AI rétegek végzik. Rövid összefoglaló itt: LINK
The VR készített velünk videót