← Путь
2008 · C++, OpenGL и свои движки

Labyrinth

Магистерская работа в Латвийском университете (2008, руководитель доц. Kārlis Freivalds): Steel Engine, выросший примерно до 30 000 строк на C++, и Labyrinth — сетевая гонка по сгенерированному лабиринту как его демонстрация. Я основал и вёл нашу команду DiVision и написал всё, кроме звука, который делал Андрей Мовляйко. Главное: попиксельное освещение на GLSL, где для каждой комбинации числа источников света и флагов материала шейдер компилируется один раз и кэшируется; теневые объёмы с Carmack’s reverse — выбраны вместо shadow mapping ради точных теней; алгоритм видимости для лабиринтов, после которого стал играбельным лабиринт 100×100 вместо 14×14, потому что число рисуемых объектов перестало зависеть от размера лабиринта; и сетевой протокол поверх библиотеки enet со своим методом синхронизации — penalty synchronization: тела разных игроков могут ненадолго пересечься, и силы расталкивают их.

C++OpenGLGLSLNetworking

Видео

Картинки

С моего первого сайта

Игра написана на C++, используя собственный движок Steel Engine.