Tole je pogon, ki ga počasi razvijam že precej let (najstarejše vrstice kode verjetno segajo v 2002 ali 2003) in je zdaj že dovolj dozorel, da se da nekaj pokazat.
http://www.youtube.com/watch?v=2oGt7gFrV84Izvorna koda:
git://github.com/ducakar/openzone.gitPodatki:
http://users.volja.net/d_ucakar/oz/data.mini.tar.bz2Pogon naj bi bil čim bolj pregledno zasnovan, prenosljiv med platformami in univerzalen. Ciljam, da bi bil neposredno uporaben za FPS, RPG in RTS (npr. klon Battlezone, od tu ime). V trenutni obliki bi bil primeren predvsem za single player FPS, ob nekaj dodelave morda za RPG. Pogon je strogo razbit na layerje: matrix - simulacija sveta (update objektov in fizika), nirvana - AI, client - prikaz sveta (renderiranje, igranje zvokov) in manipulacija s svetom (kontrola igralca). Zaradi prenosljivosti med sistemi, se ne kliče nobenih API od OS (razen standardnih C-jevskih klicev, ki so na UNIX-ih del sistemskih API-jev), ampak gre vse preko knjižnic, kot so SDL, OpenGL in OpenAL. Development platforma je Arch Linux z orodji GNU (gcc 4.4.1 & co), KDevelop 3.5, NetRadiant za BSP in Blender za OBJ modele. Načeloma pa bi se morala koda (verjetno s parimi manjšimi popravki) skompajlat tudi na Windowsu z MinGW (priporočam Dev-C++, pa ustvarit nov projekt in ročno vse parametre nastavt tako kot je v CMakeLists.txt + Win posebnosti).
Zaenkrat podpira modele MD2 (z animacijami), MD3 (brez animacij), OBJ, stavbe so Quake3 BSP leveli (obdani s škatlo, da se skompajlajo (stopnje morajo biti zaprte za q3map2 BSP kompajler), v nastavitvah BSP-ja se nastavi max. dimenzijo, ki poreže vse kar je izven, torej škatlo). Zvoki so v formatih, ki jih podpira podpira ALUT (.au in .wave) in Ogg Vorbis, teksture pa, kar podpira SDL_image (.png, .jpeg, .bmp, ...).
Glavne prednosti so, da teče tudi na precej slabih računalnikih in velikost mape (trenutno 4 km x 4 km), časovna zahtevnost updejta sveta je O(površina mape), ob predpostavki, da imamo konstantno št. predmetov na enoto mape in so ti približno homogeno razporejeni. Renderiranje je ob tej predpostavki O(1), ne glede na velikost mape.
Trenutno manjka še networking in AI, in precejšen del UI. Osnova za AI (nirvana) in UI (client::ui) je že narejena, networking pa tudi ne bi smel biti problem vključiti, ker je bile pogon že od začetka zasnovan tako, da se ga bo dalo čim enostavneje sinhronizirati preko mreže.
Pogon je pod licenco GNU GPL 3.0, glede podatkov pa je malo nejasno, ker nekateri nimajo readme-jev, a so v glavnem vsi pobrani iz Cube ali pa moje delo.