Давно вам игрокейсы не показывали — вот новенький Автор в детстве много играл в World of Tanks Blitz и в какой-то моме
Давно вам игрокейсы не показывали — вот новенький Автор в детстве много играл в World of Tanks Blitz и в какой-то момент решил: а почему бы теперь не собрать свою версию танчиков прямо в браузере. В итоге получился Claude of Tanks — полноценная мультиплеерная игра на Three.js. Там больше сотни танков, куча карт, разные типы снарядов, броня по отдельным зонам, повреждения экипажа и внутренних модулей, управляемые ракеты, подвеска, разрушаемые объекты и отлетающие после попадания башни. Автор собирал все это через Claude Code и Codex как небольшую команду. Все важное он выносил из чатов в репозиторий. В AGENTS.md хранилась вся самая важная информация: постоянные правила проекта: единицы измерения, фиксированные 60 Гц для симуляции, требования к детерминированности, проверки для новых машин и т. д. А в отдельных файлах — инструкции для симуляции, танков, сети, интерфейса, звука, эффектов и генерации мира. Агентам он давал очень узкую ответственность. Например, парк танков он разбил на отдельные семейства. Один агент получал конкретную машину или группу машин, правил только свои файлы, запускал проверки и делал скриншоты. Потом отдельный агент-критик смотрел на рендер и искал кривые пропорции, пересечения деталей, отсутствующие поверхности, проблемы с гусеницами и узнаваемостью модели. И только после этого главный агент повторно прогонял проверки и принимал изменения. Причем параллельных агентов он специально разводил по отдельным Git worktree и файлам. Иначе две сессии могли одновременно переписать одно и то же или сгенерировать ассеты поверх грязного рабочего дерева. А еще автор заметил, что Claude стал гораздо надежнее, когда у каждой системы появились конкретные инварианты и условия, при которых проверка должна упасть. Но для графики этого оказалось недостаточно. Визуал он доводил циклом: изменил → отрендерил → посмотрел → измерил → снова прогнал проверки. Причем готового игрового движка он специально не использовал. Three.js здесь нужен был только для ре