Навайбкодил небольшую игрушку

В какой-то момент захотелось сделать что-то простое и понятное — игру, в которую могла бы
играть четырёхлетняя дочь.
Цель — чтобы было весело, чтобы можно было трогать (тащить трубки), и чтобы не было проигрыша:
только «попробуй ещё раз».
Получилась головоломка на сетке:
— из пушки вылетает мячик,
— нужно, чтобы он попал в ворота,
— на поле можно двигать изогнутые трубки, чтобы менять направление,
— есть камни, от которых мячик отскакивает обратно (иногда они помогают, иногда мешают),
— есть вода, в которой мячик тонет (там проходить нельзя).
Первые уровни простые, последние — уже посложнее. Некоторые говорили, что дошли только до 7-го уровня —
а всего их 10.
Как это делалось
Изначально была идея. Думал о каких-то древних играх, в которые играл в дестве, типа Pipemania.
Дальше - работа с LLM:
- Формулировал задачу, получал код, проверял, правил, улучшал.
- Что-то переписывал, что-то просил его отрефакторить с учетом проблем.
В целом, это был эксперимент в взаимодействии с ИИ
Выбрал Phaser 3, потому что:
- он хорошо подходит для 2D-игр
- работает в браузере без установки
- поддерживает и мышь, и тач - важно для игры на планшета для ребенка
Использовал TypeScript, потому что:
- проект рос постепенно
- типы помогали не запутаться в логике движения мячика, трубок и уровней
- проще было рефакторить
Сборка - через Webpack, без лишних зависимостей.
Код компилируется в статику, можно положить на любой хостинг.
LLM как инструмент
Хотел посмотреть, насколько реально использовать LLM как инструмент в повседневной работе.
Вполне реально.
Но все равно, требуется глубокое погружение в то, что он пишет. Иногда он вообще
не понимает суть проблемы. А иногда чинит проблему, и, заодно, парочку соседних. В общем, надо
внимательно следить за тем, что он делает