Как я заставил ESP8266 рисовать 3D, стрелять и летать: полный технический разбор кода

Wait 5 sec.

Привет, Хабр!В первой части я рассказал про железо, сборку корпуса и немного затронул программную реализацию. Сегодня — самое вкусное. Мы заглянем в исходники проекта и разберем математику, алгоритмы и оптимизацию под слабое железо.Код написан на C++ в Arduino IDE, весь проект живет в одном файле. У нас три игры (но в исходнике их уже пять), которые переключаются конечным автоматом через gameState.Блок 1: Raycast — 3D на коленкеСердце движка — DDA-алгоритм (Digital Differential Analyzer). Мы не рендерим 3D-полигоны, мы пускаем 320 лучей из точки игрока и смотрим, где они пересекают сетку 32x32.Хранение карты Читать далее