Normal view

Картинку в моей игре вытянули не шейдеры. Самой полезной правкой оказались две строки конфига

Я честно пошёл изучать шейдеры, чтобы сделать игру красивее. Получилось. А потом посмотрел на два скриншота рядом и понял: большую часть разницы дали не шейдеры.

Её дали пять довольно тупых правок от двух до тридцати строк каждая. Самая полезная - две строки в конфиге камеры.

Внутри: таблица «цена / что чинит», формулы контактной тени, детерминированный хэш против одинаковых плиток, запечённый AO на стыках. И честный список того, что стоило дорого, а дало меньше.

Читать далее

У моего героя нет здоровья, ключей и очков. Есть масса, и это всё сразу

Умереть в моей игре нельзя. Можно только похудеть.

У героя нет полоски здоровья, ключей и очков - есть масса. Она же здоровье, она же размер, она же ключ от двери, она же оценка за уровень. Одно число вместо трёх систем.

Внутри: как из этого правила сами собой выросли все механики, почему прыжок специально не зависит от массы, и как безобидная просьба «сделай камни процентов на десять покрупнее» закончилась правкой геймдизайна.

Читать далее

Мой vault стал планетой: как я сделал 3D-граф знаний для Obsidian на Three.js

Встроенный граф Obsidian хорош ровно до момента, когда vault разрастается и превращается в клубок линий. Я решил сделать из базы знаний место, которое можно запомнить, — и собрал open-source плагин CosmoGraph 3D на Three.js и WebGL. В статье разбираю весь путь от metadataCache и wikilinks до сферической раскладки по золотому углу, процедурного рельефа, кратеров, bloom и нативного ItemView внутри Obsidian. Без облачной обработки заметок и без рассказов о «магии»: только код, архитектурные компромиссы и честный список того, что ещё предстоит ускорить.

Заглянуть под поверхность
❌