Тесты для кода, который пишет ИИ: контракты вместо ассертов — создание сервера для онлайн ММО игр на PHP, ч. 20

#Тесты #Половину #Рассказываю #Читать
Тесты для кода, который пишет ИИ: контракты вместо ассертов — создание сервера для онлайн ММО игр на PHP, ч. 20

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

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

А проверять надо постоянно: код пишет ИИ, и делает он это быстрее, чем я успеваю перечитывать диффы. Расскажу, как устроен контур проверки, который у меня из этого вырос.

Коротко о проекте

С 2022 года я в одиночку веду дневник разработки авторитарного сервера для 2D MMO RPG — игры с открытым бесшовным миром, где сотни игроков и существ живут в реальном времени. Сервер на PHP и Symfony, клиент на Unity, правду о мире считает только сервер. С семнадцатой части в проекте работает ИИ: игровую механику я описываю словами, а собирает её он — и на сервере, и в клиенте. Как устроен мост, по которому он это делает, разбиралось там же, здесь повторяться не буду.

Похожие статьи

Российская газета
Российская газета

Как швейная фабрика в Мстиславле стала одним из индустриальных флагманов

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

Российская газета
Двач
Двач

Сегодня отмечается День вина «Просекко»

Сегодня отмечается День вина «Просекко» С планами на вечер определились

Двач
CNews
CNews

«Группа Астра» выходит на рынок Юго-Восточной Азии: российский вендор построит в Мьянме национальную систему «Единого окна»

ООО «Астра Консалтинг» (входит в «Группу Астра») и уполномоченный государственный орган Республики Союз Мьянма...

CNews
Российская газета
Российская газета

Мошенники за полгода выманили у жителей Алтайского края почти миллиард

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

Российская газета
Аргументы и Факты
Аргументы и Факты

Последствия отпуска. Как спасти кожу после чрезмерного загара

Как после отпуска вернуть здоровье коже.

Аргументы и Факты
РИА
РИА

Сальдо рассказал, как обеспечивают безопасность трассы "Новороссия"

Дроны-перехватчики обеспечивают безопасность передвижения по трассе

РИА