Эссе о разработке игр, мышлении и книгах

Donna готова к использованию

Как работает Donna.

Как работает Donna.

В феврале я выпустил Donna(оригинальный пост) — CLI-утилиту для запуска агентных сценариев как стейт-машин и их описания в Markdown-файлах.

Поскольку я разрабатывал её одновременно разбираясь как работать с агентами, у меня получился переусложнённый, универсальный монстр. Donna имела много полезных функций, но совместно они слишком сильно ограничивали окружение разработчика и требовали слишком много времени на изучение.

Поэтому, набравшись опыта, я решил следовать философии Unix и отрефакторить монолит в набор меньших инструментов, каждый с отдельной чёткой зоной ответственности. Новая Donna — это первый из них (второй — это depmesh — я расскажу о нём в отдельном посте).

Новая Donna решает проблемы управления потоком исполнения агентов при длительной работе. Логика следующая:

  • Большая часть разработки на мета-уровне повторяема: «запусти этот инструмент, что-то сделай с его выводом, запусти другой инструмент» или «реализуй функцию A, реализуй тесты для функции A, реализуй функцию B, …».
  • Одни части этой работы требуют сложных рассуждений, другие — нет.
  • Агенты почти хороши в рассуждениях, но плохо держат в голове весь процесс: что уже сделали, что нужно сделать, в каком порядке, etc.
  • Поэтому логично отделить рассуждение от контроля потока исполнения — пусть агенты сосредоточатся на том, в чём они хороши, а поток можно отдать традиционным инструментам автоматизации.

Donna исполняет сценарии как детерминированные конечные автоматы, поэтому агент может сосредоточиться на рассуждении, генерации кода и другой агентной работе.

Далее

Rust — язык, на который переписывают

Rust медленно, но неотвратимо, перерабатывает кодовую базу человечества.

Rust медленно, но неотвратимо, перерабатывает кодовую базу человечества.

Лет 5 назад я изучал документацию Rust и решил, что Rust мне не нравится.

В прошлом году мне потребовалось прототипировать игровую логику и я выбрал для этого Rust, так как ничего лучше не нашёл: Zig выглядел сырым, а C++ с каждым стандартом становится всё мертвее сложнее и сложнее.

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

Однако, я всё ещё придерживаюсь своего мнения из предыдущего поста:

Хороший инструмент не ограничивает своего пользователя, поскольку разработчик инструмента никогда не предугадает все варианты использования.

Согласно моим представлениям о прекрасном о том, как работают технологии, вероятность успеха языка программирования, построенного на принципах Rust, стремится к нулю. Однако de facto ситуация совершенно противоположная — Rust стремительно набирает популярность и поработав с ним, я признаю, что это хороший и мощный инструмент. Но, ё-моё, неправильный, ну кто ж так делает-то.

На мой взгляд, успех Rust — это следствие двух факторов:

  • Огромного профессионализма и опыта его создателей и core-команды.
  • Зрелости индустрии разработки софта.

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

Этот пост основан на строго субъективном опыте

Я использовал Rust только год; для прототипирования и экспериментирования; в геймдеве.

Соответственно, я никаким образом не могу претендовать на экспертность в языке и иметь сколь-нибудь объективное мнение на его счёт.

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

В то же время у меня достаточно опыта разработки, чтобы экстраполировать этот год на более общие случаи и сформировать своё субъективное мнение о Rust. Этим я в этом эссе и займусь.

Далее

Организуем стартап? Впишусь в проект

Life is like a hurricane here in Ham-burg…

Life is like a hurricane here in Ham-burg…

Как вы можете знать, я заканчиваю творческий отпуск. Чем буду заниматься дальше, пока неизвестно, но у меня накопился список возможных проектов, которые мне очень интересны. По этим проектам я готов обсуждать партнёрство прямо сейчас.

Если вы молодой стартап или только собираетесь его создавать, то я хорошо впишусь в роль CTO / технического Co-Founder (менеджерство и продуктовую часть тоже могу взять на себя). Если вы более зрелая компания, начинающая новый проект, то могу его вести под ролью с любым названием, которое вам будет по душе.

Если вы следите за моим блогом, то уже имеете представление обо мне. Но на всякий случай вот моё CV. У меня 19 лет опыта в разработке софта: от геймдева на C++ до платёжных бэкендов на Python, от гаражной независимой разработки до крупных проектов.

Для удобства я разбил интересные мне проекты на несколько групп:

  • LLM-лопаты и лопаты для LLM.
  • Virtual characters, virtual influencers.
  • Gamedev.

Далее

Сходил в гости в подкаст «Две Столицы — Уютный IT Подкаст»

Запись подкаста на YouTube

Приятно пообщались про агентов, LLM и прочие ИИ штуки.

Заметки про coding agents

Агенты чегой-то кодят (с) ChatGPT

Агенты чегой-то кодят (с) ChatGPT

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

Формально, coding agents — это подмножество ИИ агентов, но для простоты в этом тексте они будут использоваться как синонимы.

Как я использовал агентов:

  • Рефакторил и немного писал код на Rust в экспериментальном движке для игровой логики.
  • Использовал их для стандартных задач разработки при работе над Feeds Fun (Python/TypeScript).
  • Как трушный хакер решил: чтобы разобраться с чем-то, надо что-нибудь для этого накодить, поэтому за месяц навайбкодил Donna — планировщик для агентов (Python).

Поскольку агенты — штука новая, то:

  • Никто не знает как их использовать — мы в процессе нарабатывания опыта, собирания сценариев использования.
  • Ни у кого нет разностороннего опыта их использования — либо ты выбираешь один-два подхода и работаешь свою работу ими, либо ты бесконечно экспериментируешь без нанесения пользы.

Поэтому этот пост будет в форме субъективных заметок-тезисов.

Далее