‹ Все записи

Привет. Зачем мне всё это

Кто я, почему я строю этот мир, как с ним работают рои ИИ-агентов и что из задуманного уже работает, а что нет.

Привет. Это первая запись девлога, и начать я хочу с главного: зачем всё это.

Я хочу в это играть

Если совсем коротко, то потому, что я сам хочу в это играть. Perfect World забрал у меня много вечеров, а потом началась взрослая жизнь, и «сходить в данж» превратилось в «найти того, кто сходит в данж». Я играл Воином и Жрецом одновременно, в двух окнах, потому что напарников по вечерам не было. Это работает, но удовольствия от такой игры меньше, чем хотелось бы.

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

Ещё одна причина, чуть более личная. Свой онлайн-мир я хотел сделать с детства, это моя давняя мечта. Сначала я назвал этот сервер своим первым бизнесом. Поправка от 27 октября: я отношусь к нему как к хобби и мечте, которые позволяет оплачивать основная работа. Хочу поделиться миром, в котором самому интересно играть, покрывать расходы и сохранить бесплатный доступ, если добровольной поддержки хватит. Сейчас это направление и возможность подписки описаны в принципах поддержки; заметки о разработке ниже относятся к 25 октября.

Кто я

Днём я специалист по кибербезопасности в компании, которую называть не буду. Сервер для меня — вторая работа, а начиналась она как хобби: поднять сервер, залезть внутрь, понять, как он устроен. Серверы Perfect World я раньше не администрировал, поэтому почти всё здесь я делаю впервые и ошибаюсь вслух. Эти ошибки я буду описывать в девлоге.

Работа в безопасности повлияла на то, как я строю проект. Я не верю словам, в том числе своим, поэтому сначала измеряю, а уже потом пишу. Так же устроен и сайт: каждая цифра идёт с сервера, у каждой возможности честная пометка, а там, где данных нет, стоит «нет данных», а не красивый ноль.

Как с этим работают агенты

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

Чтобы эта скорость не превращалась в хаос, я стараюсь работать как нормальная инженерная команда:

  • Автотесты. В репозитории около 470 файлов с тестами, порядка 8 000 проверок. Их гоняют перед релизами.
  • Релизы по версиям. Боты запускаются только на выпущенных, зафиксированных версиях кода. «Залил и посмотрел на живых» у меня не работает.
  • Телеметрия и A/B. Каждый час автоматика собирает здоровье сервера, темп прокачки классов, качество чата и экономику. Новое включаю на части ботов и сравниваю с остальными.
  • Безопасность. Пакет сервера я не писал, поэтому первым делом сделал его аудит: нашёл слабые пароли по умолчанию и опасную панель управления. Пока всё закрыто внутри моей сети. Перед тем как пускать чужих людей, пройду отдельный список исправлений: он уже составлен.
  • Бэкапы. Копии мира делаются каждый час, и я проверил, что копия разворачивается в отдельную папку. Полную репетицию восстановления живого мира ещё проведу.

Чего пока нет, так это проверки на каждый коммит (CI). Её я сейчас настраиваю. До тех пор тесты запускаю сам перед каждой выкаткой.

Что работает, а что нет

ЧтоСостояние
Мир и ИИ-игрокиработает. Потолок, который я измерил на своём ноутбуке, около 400 одновременно. Сколько сейчас, видно на странице «Живой мир»
Кланы с рангамиработает. Раздача званий падала с ошибкой, я исправил и проверил вживую
Мировой чатработает по-русски, английский в разработке
Пати по ролямв разработке. ИИ-игрок зовёт недостающую роль, и жрец откликается. Босса такой группой пока не убили
Лавки и аукционв разработке. Лавки открывать умеют, живого рынка пока нет
Смена эпох без вайпав разработке. Проверена на файлах, на живом мире не применялась
Живые игроки, оплата, арендованный серверпока нет

Что дальше

Сначала мир, потом всё остальное. Пока мир не ощущается живым, я никого в него не зову. В следующей записи расскажу про ночную репетицию запуска.

Если вам интересно, чем это кончится, заходите в сообщество или просто оставьте контакт: я напишу, когда начнутся тесты.