Duck the Rules
EN Discord (в новой вкладке) Хочу демо
Бортовой журнал

Неделя 4 · с 5 по 11 сентября 2026 · дни с 20 по 26

Школа встаёт за четыре секунды

5 сентября. Та самая «лесенка» на кромке тени
5 сентября. Та самая «лесенка» на кромке тени

Запись: день 20

Опять тени. На кромке тени от стула лесенка из ступенек. Третий заход за три дня. Я прислал три кадра и написал: «Мне кажется мы что-то не то чинили и не глобально. Вот от стула тоже лесенка. И растение в горшке и фонтанчик тоже! А от гардероба ровная, например». Разгадка была в моём же списке: ровная тень у гардероба была от солнца, а все ступенчатые от скрытого света внутри помещений. Бортинженер сделал полутень.

Я спросил прямо, добились ли мы чётких ровных линий. Ответ был честный: «Нет». Ступени ушли, но кромка стала мягкой. Пятым заходом тень попробовали положить на стену руками, и кромка вышла бритвенная.

Проба: тень фонтанчика на стене, кромка ровная
Проба: тень фонтанчика на стене, кромка ровная

У фонтанчика вообще было две тени. Нарисованная строилась от потолочных светильников, а настоящая падала от скрытого света помещения, который висел в другом месте и ниже. У одной вещи выходили две тени разной длины и в разные стороны. При этом сами светильники не светят вовсе.

Параллельно в другой сессии мы делали стиль и интерфейс. Я вспомнил, какие мощные звёзды розыска были в ГТА, а у нас вместо них хилые руки. Для шкалы внимания сравнили звезду и колокол. Я выбрал колокол: «Так уже лучше». Про звезду на холсте записали, что она взята из ГТА целиком и ничего не говорит о школе.

Хилые руки были пятью кулачками с поднятым пальцем. Их рисовал прямо код, прямоугольниками, без единого файла картинки.

Холст со шкалой: колокол выбран, звезда отвергнута
Холст со шкалой: колокол выбран, звезда отвергнута

Там же я сказал, что веру в призрака не надо показывать так мощно, а может, её и вовсе не стоит вводить. Вера проживёт в игре ещё месяц.

Под вечер я написал: «Устал я с этими тенями». И спросил, не слишком ли мы упоролись. Бортинженер пошёл смотреть, как плоские тени кладут другие игры: Toy Story 3, Oblivion, Sonic Adventure 2, «Танки Онлайн». Вывод: мы не упоролись, мы пришли к тому, что написано в учебниках.

Запись: день 21

Я написал: «мы переусложнили … со всеми этими тенями... можно вообще простейшую тень чёткую от предметов. У меня было когда-то». Бортинженер по моему кадру снял слой теней-«очертаний». Я посмотрел: в туалете теней не стало совсем, от стола тоже. Через 35 минут слой вернули. Записали честно: снимать было неверным ходом.

К вечеру тени снова висели в воздухе.

Уборщик выходит из санузла по луже
Уборщик выходит из санузла по луже

А вечером я сказал: делай коммит, потом разберёмся. Это ошибка недели, про неё ниже.

Запись: день 22

Утром в основную ветку легла работа с 2 сентября: 431 файл одним коммитом. Тени перестали висеть в воздухе. До этого «в классе поперёк парт висят чёрные плиты». Тень школьника ложилась на стенку парты высотой 11 сантиметров и растягивалась на семь с половиной метров вширь.

Вскоре выяснилось, что тот же коммит сломал модель школьника. Модель испортилась трижды за сутки одним и тем же способом. Защита от этого числилась включённой и не делала ничего.

Ещё одна проверка краснела 113 раз подряд, и ни разу по делу. Её мерка поворота на двух одинаковых поворотах выдавала крошечное число, а на настоящей разнице отвечала ровным нулём. Когда мерку заменили, из 113 жалоб остались две, и обе верные: на каждом теле висели два лишних обработчика позы.

Тут я спросил: а что если нам создавать модели в Blender? И через тринадцать минут написал, что поставил Blender. Открыл модель школьника и спросил, нормально ли, что на ней столько точек.

Школьник в Blender, весь в точках
Школьник в Blender, весь в точках

Полностью отдать модель в Blender не получилось: она на три четверти не геометрия, а программа. Договорились о круге: форму правим в Blender, числа возвращаются в игру. Первой вещью из Blender стала шапка-бини.

Круг проверили на голове. Подвинули её в Blender на пять сантиметров выше, и в модели изменилась ровно одна строка. Но Blender по дороге поменял местами шею и грудь, а восемь узлов с одинаковым именем вернулись пронумерованными. Пришлось завести перепись имён. А мост за первые сутки привёз только ту шапку, и её никто не носит. Приёмник подменял каждую привезённую сетку коробкой по габариту, так что бини легла в игру теми же тремя коробками, какими её набрали бы текстом. Модель за это время правили трижды, и все три раза руками, мимо моста.

Дальше был день гольфов. Белые гольфы торчали коробом над ботинками. Я написал: «ну носок же должен быть как бы частью голени и двигаться с ней». Их ушили, и между голенью и ботинком открылась щель почти в семь сантиметров, у всех пятнадцати обликов. Я предложил: «Может нам тупо по умолчанию сделать ноги до ботинка, а носок то поверх уж будет. Обезопасились бы подобным образом». Так и сделали.

Гольфы коробом над ботинками
Гольфы коробом над ботинками

Ещё у ботаника «сбоку какой-то остаток от чужой причёски», а у кого-то «козырёк из лба растёт». Вечером я запустил всю игру, и у всех моделей в голове снова торчали лишние бруски волос. Чужую прядь убрали у всех пятнадцати.

Лишние бруски волос у висков
Было. Лишние бруски волос у висков
Козырёк «из лба»
Стало. Козырёк «из лба»

Чужая прядь была коробкой у правого виска. Она жила отдельно от причёски и торчала сквозь любую надетую. У кота, учительницы и уборщика это вообще было единственное, что осталось от волос. Снести её было нельзя, на ней держалось качание волос. Поэтому прядь теперь гасят, а не сносят.

Хорошее за день тоже было. Все, кто стоит, теперь дышат. Постоял шесть с половиной секунд, переступил с ноги на ногу.

Для них собрали стенд простоя: шестеро учеников прямо в редакторе. Я открыл сцену, сохранил, и вместо шестерых не осталось никого. Бортинженер записал: «Это ровно та беда, что трижды за сутки портила модель школьника, и я завёл её своими руками в новом файле». Потом стенд ещё и развернули: шестеро стояли к камере затылками.

Запись: день 23

Утром бортинженер разбирал свет по слоям: гасил по одному солнце, лампы, свет помещений, тени, чтобы увидеть, что даёт каждый.

Один и тот же класс: каждый кадр без одного слоя света

Я написал: «Я боюсь что мой текущий подход это ту мач. И не бест практис.» И принёс два чужих отчёта, которые сделали другие нейросети. Бортинженер разобрал их по нашему коду. Большую часть советов отвергли, по каждому записали почему.

А потом нашлось главное. Школа при каждом запуске собиралась 23 секунды, и 18 из них уходили на то, чтобы найти место для мебели. Каждый пуф искал себе место по дереву из пятидесяти тысяч узлов. Теперь школа встаёт за четыре секунды. Пуфы расставлялись две с половиной секунды, теперь за девять тысячных.

И я сказал важную вещь: «Я как архитектор игры должен же расставить всё, создав нужную композицию». Класс 1А теперь можно расставить руками в редакторе. Место, поставленное руками, главнее расчёта.

Запись: день 24

Ни коммитов, ни сообщений.

Запись: день 25

Я спросил: «А точно ли нам нужно "собирать школу"». Бортинженер ответил, что не нужно, и я написал: «Да, наконец-то. давай начинай с первого и погнали.» Теперь школа печётся в сцену заранее: 50 147 узлов в файле на 5,8 мегабайта, ровно столько же, сколько при сборке.

Появился прогонщик проверок: одна команда запускает все. Проверок 118, и 18 из них немые, то есть не умеют краснеть.

Запись: день 26

Руками теперь расставляются 23 помещения: восемь кабинетов и пятнадцать санузлов. Первый полный прогон: 91 зелёная проверка, 4 красные, 12 немых. Я спросил, точно ли нужны все эти проверки, или мы ушли в оверинжиниринг.

Потом я поиграл: «затопил туалет и сел на место… по радио стало объявление звучать про затопление, и все такие призрак! призрак! — и учительница ещё одновременно пошла в окно смотреть на грозу, и всё это замерло в такой картинке, и камера замерла». Камера застряла на вставке. Теперь через тридцать секунд кадр возвращается сам.

Тот самый замерший кадр: класс на уроке
Тот самый замерший кадр: класс на уроке

Вечером я попросил проверить все условия конца демо. Выяснилось, что третью строку демо выполнить было нельзя: после фильма шторы не поднимались. Теперь демо проходится до конца. А две красные проверки оказались неправы сами: они лезли в первый ящик стола, а там по устройству лежат мел и ручка.

Шторы после фильма стали поднимать без звука шнура. Восемь щелчков створок оказались громче порога урока, и класс позвал бы свидетеля на игрока, который тихо сидит за партой.

Откуда ноги растут

ГТА 4 и 5: звёзды розыска как мерка интерфейса, от которой мы ушли к колоколу. Toy Story 3, Oblivion, Sonic Adventure 2 и «Танки Онлайн»: как другие кладут плоскую тень. Чужие видеоуроки про скелет и анимацию, которые я принёс. «Симс»: потолок и ближние стены снимаются, когда смотришь сверху.

Неделя в цифрах