Искусственный интеллект в онлайн-игре с использованием Google App Engine - PullRequest
1 голос
/ 17 марта 2010

В настоящее время я нахожусь на стадии планирования игры для движка приложений Google, но не могу понять, как я собираюсь обращаться с ИИ. Я намерен иметь постоянных NPC, которые будут перемещаться по карте, но если не написать программу, которая генерирует те же XML-запросы, которые я использую для управления действиями игрока, чем запускать ее на другом сервере, я застрял на том, как это сделать. Я посмотрел на функцию «Очередь задач», но из-за того, что долго запущенные процессы не доступны в движке приложения, я немного застрял.

Я намереваюсь запустить несколько экземпляров сервера с 200+ постоянными объектами NPC, которые мне нужно будет обновить. Большая часть действий медленно перемещается, основываясь на движениях / концентрациях игроков, и атакует игроков с близкого расстояния ... (вы можете догадаться, какой тип игры я разрабатываю)

Ответы [ 3 ]

3 голосов
/ 17 марта 2010

Будет ли ваша игра пошаговой или в реальном времени?

В любом случае, я думаю, у вас есть 2 варианта для изучения. Один из них - использовать функцию Cron, чтобы вы могли планировать обновления NPC через регулярные промежутки времени, а другой - вставлять задачу «Обновить NPC» в очередь задач каждый раз, когда игрок движется.

2 голосов
/ 18 марта 2010

Имейте в виду, что вы также можете разбить свои обновления на несколько запросов (внутренне): проделайте немного работы, перенаправьте на тот же обработчик, но в другое состояние; делать больше работы; и т. д. (я не могу как-то прокомментировать ответ Питера Рекора, к которому это действительно относится.)

Я вижу, что бесплатный сервис разрешает только вызовы из 100 тыс. Заданий в день, поэтому 1 задание / NPC, вероятно, слишком быстро израсходуют ваши ресурсы. Задание Cron для выполнения некоторой работы / создания очередей задач для обновления NPC в группах соответствующего размера?

Во всяком случае, только некоторые мысли; удачи.

2 голосов
/ 18 марта 2010

Если игра пошаговая, то лучше всего избегать задания Крона и просто обновлять NPC каждый раз, когда игрок движется. Я не уверен, насколько велика карта, которую вы планируете, но вы можете даже подумать о том, чтобы объект игрока находил находящихся рядом с ним неигровых персонажей и вызывал их ИИ. Таким образом, персонажи, находящиеся вне досягаемости игрока, вообще не будут двигаться, что может сэкономить ресурсы. Не уверен, что если это имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...