← Laika līnija
2008 · C++, OpenGL un savi dzinēji

Labyrinth

Mans maģistra darbs Latvijas Universitātē (2008, vadītājs doc. Kārlis Freivalds): Steel Engine, kas izaudzis līdz apmēram 30 000 C++ rindām, un Labyrinth — tīkla sacīkstes pa ģenerētu labirintu — kā tā demonstrācija. Es nodibināju un vadīju mūsu DiVision komandu un uzrakstīju visu, izņemot skaņu, ko veidoja Andrejs Movļaiko. Svarīgākais: pikseļu līmeņa apgaismojums GLSL, kur katrai gaismas avotu skaita un materiāla karodziņu kombinācijai vienreiz tiek nokompilēts savs šeiders, kas pēc tam tiek kešots; ēnu tilpumi ar Carmack’s reverse, izvēlēti shadow mapping vietā precīzu ēnu dēļ; redzamības algoritms labirintiem, kas ļāva spēlēt 100×100 labirintu 14×14 vietā, jo zīmēto objektu skaits vairs nebija atkarīgs no labirinta izmēra; un tīkla protokols virs enet bibliotēkas ar paša izdomātu sinhronizācijas metodi, penalty synchronization: dažādu spēlētāju ķermeņi uz brīdi var pārklāties, un spēki tos atgrūž vienu no otra.

C++OpenGLGLSLNetworking

Video

Attēli