Как сделать аналог Radiant AI(BGS) для создания "живого мира"

Это только кажется что ИИ имитирующий сложные действия делать сложно. Как добавить НПС жизни как добавить им расписание? Как дать им возможность ходить по разным местам? На самом деле все очень просто.Что бы создать игру сравнимую с играми Bethesda не нужно много народу.

(теперь это твоя работа)
4.9K4.9K показов
1.4K1.4K открытий
11 репост

Вспоминается статья, одного из разработчиков ecs фреймворка. Она как раз таки про то как организовать код, чтобы предоставить AI возможность быстро получать данные о мире через единый интерфейс, чем то напоминающий БД. Тут правда есть нюанс, можно ли это действительно провернуть и будет ли возможность заменить текущую архитектуру разработки игр основанную на сущностях и компонентах.
https://ajmmertens.medium.com/why-it-is-time-to-start-thinking-of-games-as-databases-e7971da33ac3

Ответить

Можно ли создать универсальное решение для всех игр? Наверное нет. Точнее можно, но оно будет избыточным.

Для каждого "жанра" игр - есть свой ... назовем это шаблон механик и инстурументов редактирования формат хранения данных, - поверх которых собственно игра и будет строится.

Тот же анрил это буквально в своей основе 3д шутерный движок - и чем дальше от шутера - тем больше всякого разного поверх него нужно накручивать. Создать на нем шутер можно на банальных БП без строчки С++ кода.

Для РПГ типа Скайрим - как написал в статье - нужно страндартное решение позволяющие вывести понятие ID у NPC и ID у локации. Причем жедательно простое и удобное и позволяющие редактировать геймдизам свободу расписания на ходу. Как в тес констракшн сет.

Скажем в анриле такого решения из коробки нет, его нужно будет создавать дополнительно, причем именно в коде C++ что бы оно работало с редактором движка. Что бы не делать этого ручками через ту же систему БП.

А для РТС скажем понадобится другое решение которое будет привязвать Навигационные меши юнитов и сам тип и неровности ландшафта - что позволит сразу получать игровые карты и расставлять на них юниты. Причем оно должно быть максимально оптимизированно.

В общем есть над чем думать.
Сначала вопрос - чего мы хотим,
Потом вопрос - кто мы и чего можем
а потом компромис между этими двумя понятиями.

Тут что бы не вышло как в анекдоте : че думать, тут трясти нужно!

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

Придется сначала подождать когда закончат базовую часть интерфейсов - прежде чем их геймдизам на расстерзание отдавать.

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

Ответить