Akkor kezdeném is egy kis helyzetjelentéssel.
Mivel kb. 4-5 hónapja teljesen elölről kezdtem az egészet, és most az utolsó év (és érettségi) miatt nem volt túl sok időm, ezért még nincs túl sok minden. De elég is a kifogásokból, ráadásul itt a nyár, aktivizálom magam :)
Most fejeztem be egy (ál-)Godrays effektet (aminek a blur részével ugyan még van egy kis bug, de működik), emellett a következő dolgok találhatóak meg jelenleg:
- sortolt modellek technika szerint: diffuse, diffuse+specular, normal, normal+specular, mindez statikus és animált meshre egyaránt. Alphatest egyelőre csak statikus meshre van
- alap, heightmap alapú talaj, ezen még nagyon sokat kell dolgozni, mert a jelenlegi main-stream egy TPS, ahova nem árt egy kicsivel nagyobb talaj... :)
Ezeken kívül rengeteg dolog már le van implementálva egy-egy korábbi verzióban, azokat csak átdolgozni / komplexebbé tenni kell, majd integrálni a jelenlegi enginebe:
- postprocessing: nem akarom túlzásba vinni, még egy bloom és később talán dof és ssao
- részecskerendszer: egy alap volt meg (pointsprite); emitterek tudtak különböző tulajdonságok alapján, különféle részecskéket létrehozni, és "kilőni" őket egy adott irányba. Kiegészíteni talán csak annyival kell, hogy (afféle script-szerű) fájlból lehessen beolvasni egy effektet, a részecskéket tekintve pedig súlyt és szélirányt belevinni a számolásba.
- árnyék: CSM; ez egész jól sikerült már anno is, nyilván lesz még rajta mit dolgozni (főleg, hogy most kicsit más a renderelés). Viszont TPSbe ideális, mert nem csak a közeli részek vetnek árnyékot, hanem (ha jól tudom alap technika szerint) ameddig "ellátunk", azaz a camera far planejéig minden.
Feladatok, amikre még nincs megoldásom:
- az editor: nagyon fontos, hiszen a map-filet binárisba mentem, így jelenleg kódból építem a "pályát"
- az alap shading egy Napfény (azaz egy darab directional light), viszont ha bemegyünk egy belső térbe, ezt már nem igazán tudom használni, erre kell kitalálni valamit. Sok fényre az idális megoldás a deferred shading, de mivel nincs túl erős gépem (sőt, egyenesen már őskövületnek tekinthető), és szeretném, hogy legalább nálam is elinduljon (azaz ne legyen túl nagy gépigénye), így azt elvetettem (annak ellenére, hogy leimplementáltam).
- ütközésdetektálás: egy AABB-AABB ütközésen kívül, egyelőre semmi más nincs, és mivel ez elég játéktípus függő, még kérdéses is marad (igencsak tervezési fázis :))
- hangkezelés: egyáltalán nincs, nem is jártam még utána
- hálózat: egy alap udp-kapcsolat létrehozása már megvan, azonban ez korántsem elég. Viszont az első célkitűzés egy singleplayeres játék (hacsak nem táltosodok meg, és veszem rá magam, hogy belemélyüljek a hálózat világába :))
Továbbá:
- az animációkezelést még fejleszteni kell, többek között animation blendinggel, inverz kinematikával, ragdollal és még hasonló finomságokkal
- optimalizálás! - persze amennyire csak tudom optimálisan írom meg, de mindig tanul valamit az ember. Nyilván kompromisszumokat is kell kötni, a legideálisabb megoldás a kevés (vagy 0) minőségvesztés nagyobb sebességért cserébe.
Hosszú az elkészítendő dolgok listája, de igyekszik az ember, remélem nem fogom feladni! :)
Végül egy kép arról, hogy mi van most:
Ajánlott bejegyzések:
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.