Запись: 24 июля
Всё началось не со школы-кампуса, а с хоррора. Вечером 24 июля я попросил сделать ночную школу в духе игр на Roblox, где надо выжить. И сразу сказал, какой хочу её видеть: «Нужно что б школа по возможностям была как целый город, масштабная, много кабинетов, этажей, переходов, максимально приближен к реальным существующим школам».
Первая версия была одним коридором. Я написал: «Странно. Почему тут один коридор и всё. Не халтурь, сделай прям полноценную школу с хорошим геймплеем на 1,5 часа». И ещё: «И я как игрок должен быть, а не просто коробка какая-то».
К утру хоррор стал милым. Портреты на стенах превратились в котиков, одиннадцать жителей школы можно было покормить, а главной миссией стала лейка: полить шестнадцать растений. Мы называли это котошколой.

Запись: 25 июля
Днём я начал заново, уже в новом проекте. Первым делом появился промпт для бортинженера. Главное в нём: «у игры нет открытого мира. Весь мир игры — это одно здание школы и его двор». Значит, здание должно быть интересно исследовать, а не быть коробкой с комнатами. И строить его надо как данные, а не как геометрию.
В 17:03 ушёл первый коммит. Школа стала посёлком: восемь корпусов вокруг общего двора. Три дома по возрастам, четыре «цеха» для общих дел, науки, творчества и спорта, и павильон-кафе во дворе. Участок 190 на 140 метров, 24 класса.
К ночи кампус уже стоял в 3D, прямо в браузере, на three.js.
Запись: с 26 по 28 июля
По школе стало можно ходить. Бортинженер применил «Руководство по оформлению школ» Студии Лебедева и МАРХИ. Те самые 1126 страниц, которые потом переедут в Godot. Появились 133 выключателя, 2012 шкафчиков с содержимым и автоматы с кошельком.
Звук с первого дня собирался в браузере из формул, без единого файла. В Godot эта привычка переедет как есть.
Школьник поначалу бегал со скоростью 31 метр в секунду, это больше ста километров в час. Скорость урезали втрое. Потом урезали ещё раз: школьник всё равно бегал по коридору быстрее, чем во дворе едет машина.
Вечером 26-го появился список дел, «как в Goose Game»: десять строк «Дела на сегодня», которые зачёркиваются сами. Например: обчистить чужой шкафчик, купить что-нибудь в автомате, оставить кран открытым.
27-е ушло на лестницу. Восемнадцать коммитов, с половины второго ночи до половины пятого дня. Лестница упиралась в потолок, и бортинженер перебирал перекрытия, косоуры, площадки и будку выхода на крышу. Корень нашёлся в другом: этаж был высотой 5,5 метра, а над лестницей висела плоскость. Высоту этажа сделали 3,6.

В тот же день свет стал «живописным»: цветная тень, светлая кромка по краю. А через шесть с половиной часов его заменил мультяшный стиль с жёсткими ступенями света и чернильным контуром. Живописный остался запасным и потом целиком переехал в Godot.
28-го было 66 коммитов. Затенение в углах съедало девять десятых кадра, его выключили. Кран теперь течёт, пока его не закроют, иначе проказу «оставить кран открытым» нельзя было выполнить. Глобус стал шаром: оказалось, до этого во всём мире не было ни одной сферы. А про автомат я сказал: наш «просто шкаф, абсолютно не милый». Эти слова до сих пор записаны в правилах игры.
В тот же день появился файл «правила заказчика». Бортинженер записал туда главное: в игровой студии дизайнер расставляет вещи глазами, а у него глаз нет. Поэтому появилась проверка, которая смотрит за него. В первом корпусе она нашла 519 ошибок расстановки, и все их поправили.
Запись: с 29 июля по 6 августа
Десять коммитов подряд ушли на цветочный горшок и кружку. Появился 3D-каталог всех вещей: я открывал его, выбирал предмет и жал «взять в работу».
3 августа два раза откатили стулья. Бортинженер признал: «я вместо этого трижды менял форму и трижды делал хуже». Мне не нравились трубы стульев, и я спросил: «почему ты гнёшь трубу, добавляя тупые срезы вместо одной плавной линии». Так появилось правило скандинавского дизайна: одна плавная линия вместо набора деталей.
Вечером того же дня бортинженер собрал унитаз со стульчаком на петлях. Да, тот же сюжет, что через две недели повторится в Godot. А назавтра унитаз второй раз потерял куски на ровном месте.
5 августа я попросил настоящей физики: «Я бы даже хотел упереться в парту и чтоб она сдвинулась, и даже та парта, которую я двигаю, задела бы другую, и та тоже подвигалась». И ещё: «классно было бы, чтоб туалетной бумагой можно было кидаться и она бы разматывалась». Рулон стал разматываться на лету.
А 6-го мебель начала плясать. Стол, на который я наткнулся, отодвигался и ехал дальше, «не как в жизни». Мебель перевели на клавишу R, а остальное сделали каменным.
Снимки тех дней





Запись: с 7 по 16 августа
7 августа ушёл последний коммит. Дальше я играл и писал, что не так. Стул после броска дрожал, проваливался и прыгал обратно: «Взял стул, где я его бросил. Ещё раз бросаю, он летит, падает и хоп. Резко появляется там, откуда я его взял». По коридору гуляло светлое пятно, «как будто фонарик где-то далеко». А глаза школьника оказались на высоте 1,70 метра вместо 1,32: кампус, сделанный под рост ребёнка, я смотрел глазами взрослого.
8 августа я спросил: «Может мы зря в вебе это делаем…» Бортинженер ответил, что по замерам нет. Узкое место было в логике, а не в браузере.
Потом неделя тишины.
Запись: 17 августа, утро
В 7:17 я открыл старый проект и написал, что хочу переписать всё под Godot 4. А через пять минут, в новой папке, объяснил почему:
«ну вообще я хочу заново начать делать игру. А то там зданий слишком много и физику пришлось самому делать, хочу упростить, переписав заново, но сохранив цвета, например, и сюжетную линию этого проекта… Начать с чего-то простого: комната, стул, взять стул, бросить стул. Типа того»
Из старого проекта забрали то, что дороже кода: мои правила, замысел со списком проказ и палитру. Раскладку кампуса и код предметов оставили. Начали ровно с комнаты и стула. Что было дальше, в первой неделе.
Тот кампус сегодня





Эти кадры я снял сегодня, 16 октября: последняя сборка того проекта до сих пор запускается в браузере.
Откуда ноги растут
Игры на Roblox и Minecraft: школа как целый мир. Untitled Goose Game: список дел, который зачёркивается сам. MIT Building 20, Bell Labs, школа Шаруна, Херцбергер. Руководство Лебедева и МАРХИ. Японская игра с милым уличным автоматом. Скандинавский дизайн как мерка: одна плавная линия.
Пролог в цифрах
- 284коммита на three.js
- 66коммитов за 28 июля
- 112 км/чбегал школьник в первые дни
- 18коммитов ради одной лестницы
- 4023стула, 9083 корешка книг
- 26 039строк рендера, которые заменил Godot
