LINUX.ORG.RU

Посоветуйте алгоритмы поведения персонажей в игре

 , ,


0

4

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



Последнее исправление: Voviandr (всего исправлений: 2)
Ответ на: комментарий от Voviandr

Тогда почему у тебя пост набран так, будто ты школьник. Похоже на ту копипасту про «грабить корованы».

/* с подозрением */ наверное этот аккаунт угнали у настоящего владельца.

geekless ★★
()
Ответ на: комментарий от AITap

State machine, переключающийся по заданным событиям, разбавленным рандомом.

geekless ★★
()

Сегодня день пробелов перед знаками препинания?

fmap
()

есть несколько путей: грид патч финдет сюстем тебе о чем нибудь говорит? райтрейсинг? Можно поступить еще легче, отслеживать положение юнита на карте, и ставить таск движения к этой координате через опр промежуток времени. Можно нейросетку заюзать, что бы бот мог по ходу учиться. А вообще начни с теории, скажем с алгоритма поиск A*

makeB
()
Ответ на: комментарий от makeB

в общем-то , я двигаюсь в направлении к реализации state machine , реализация (убогонькая) есть и работает. но мне надо не просто реализация, а грамотно спроектированная реализация , с возможностью наследования и расширения. в хорошей, правильной проектировке у меня как раз самая большая проблема. вообще интересен подход более опытных кодеров к этому вопросу, парочка исходников совсем не помешала бы.

Voviandr
() автор топика
Последнее исправление: Voviandr (всего исправлений: 1)

алгоритмы поведения персонажей в игре

-1. Кастовать Свиборга
0. Набегать
1. Грабить корованы
2. Совершать развратные действия с гусями
...
4. PROFIT!

devl547 ★★★★★
()
Ответ на: комментарий от makeB

генератор действий на основе входящих условий - подходящее определение. но я не совсем понимаю что вы имеете ввиду под ботом.

Voviandr
() автор топика
Ответ на: комментарий от Voviandr

Бот это целостная система, у тебя же получается только часть.
Представим бота:
класс известных условий->простейшее ядро для обработки входящих условий->класс известных действий на известные условия.

А то что ты хочешь, это не простейшее, а сложное, модульное ядро, к которому уже сами программисты пишут/добавляют классы условий и действий, что бы ядро о них знало и соответственно обработало запрос — верно?

makeB
()
Ответ на: комментарий от makeB

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

makeB
()
Ответ на: комментарий от makeB

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

Voviandr
() автор топика
Последнее исправление: Voviandr (всего исправлений: 1)

Сходи в лес, посмотри как медведи будут реагировать на тебя при разном расстоянии между вами.

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

buddhist ★★★★★
()

сущность ходит туда-сюда по полю

Состояние «Патрулирование». Допустим, перемещение шагом из А в Б и обратно. Возможно, рандомная остановка, чтобы «оглядеться». Накапливает уровень агрессии.

при приближении главного героя идёт в его сторону, нападает

Состояние «Атака». При появлении на некотором расстоянии игрока в случае, если уровень агрессии максимальный, AI переключается в состояние атаки: переходит на бег, стремится приблизиться к игроку и тем или иным способом его убить (если атакует в ближнем бою, то приближается вплотную, если атакует на расстоянии, то стремится остаться на допустимом для атаки расстоянии). Уровень агрессии постоянно снижается.

потом уходит, некоторое время игнорирует

При падении агрессии до нуля переходит в состояние патрулирования. Цикл повторяется.

static_lab ★★★★★
()

мне нужна не конкретная реализация этого поведения, а что-то вроде паттернов, чужих примеров грамотного проектирования

это же гейм-дизайн, а не программирование

stevejobs ★★★★☆
()

И да, в Марио всё тупо. А в Пакмане, например, каждое привиденьеце имеет только одно своё состояние

HNO-Arzt_
()
Ответ на: комментарий от HNO-Arzt_

И да, в Марио всё тупо.

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

makeB
()
Ответ на: комментарий от makeB

то есть, некую прослойку между интеллектом бота и окружающим «миром».

makeB
()
Ответ на: комментарий от Voviandr

там где я работаю, такой сценарий не предусмотрен.

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

anonymous
()

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

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.