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

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

Игра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Видео