Мячик-в-ворота

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

Игра

В какой-то момент захотелось сделать что-то простое и понятное — игру, в которую могла бы
играть четырёхлетняя дочь.

Цель — чтобы было весело, чтобы можно было трогать (тащить трубки), и чтобы не было проигрыша:
только «попробуй ещё раз».

Получилась головоломка на сетке:

— из пушки вылетает мячик,
— нужно, чтобы он попал в ворота,
— на поле можно двигать изогнутые трубки, чтобы менять направление,
— есть камни, от которых мячик отскакивает обратно (иногда они помогают, иногда мешают),
— есть вода, в которой мячик тонет (там проходить нельзя).

Первые уровни простые, последние — уже посложнее. Некоторые говорили, что дошли только до 7-го уровня —
а всего их 10.

Как это делалось

Изначально была идея. Думал о каких-то древних играх, в которые играл в дестве, типа Pipemania.

Дальше - работа с LLM:

  • Формулировал задачу, получал код, проверял, правил, улучшал.
  • Что-то переписывал, что-то просил его отрефакторить с учетом проблем.

В целом, это был эксперимент в взаимодействии с ИИ

Выбрал Phaser 3, потому что:

  • он хорошо подходит для 2D-игр
  • работает в браузере без установки
  • поддерживает и мышь, и тач - важно для игры на планшета для ребенка

Использовал TypeScript, потому что:

  • проект рос постепенно
  • типы помогали не запутаться в логике движения мячика, трубок и уровней
  • проще было рефакторить

Сборка - через Webpack, без лишних зависимостей.
Код компилируется в статику, можно положить на любой хостинг.

LLM как инструмент

Хотел посмотреть, насколько реально использовать LLM как инструмент в повседневной работе.

Вполне реально.

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

Видео