Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Алгоритмы используемые в играх.

В этих играх вы выступаете в роли тренера, определяющего тактическое задание команде на игру. К примеру, в игре "Playmaker" "Football" вы оперируете огромным количеством информации, касающейся игроков вашей команды, такой как скорость бега, точность паса, сила, выносливость и другие. Вы определяете тактическую расстановку игроков перед каждым матчем, детализируя ее до схем передачи мяча, персональной опеки и так далее. Кроме того, в процессе самого матча вы можете вносить некоторые коррективы в тактические расстановки с помощью мышки или клавиш, например, меняя направление паса или давая указание на прорыв по флангу.

Внутри программы порядок распасовки или дриблинга на территории противника устанавливается некоторым распределением вероятностей между задачами игрока. Для футбола в тактические параметры игрока могут входить: пас, дриблинг, удар по воротам. Вы задаете расстановку игроков на футбольном поле (например, по системе 4+4+2) и указываете для каждого игрока цель для паса, частоту ударов по воротам для нападающих или попытку дриблинга для сольного прохода. В программе каждому объекту-игроку соответствует список параметров, описывающий его поведение. Например, для защитника, когда он оказывается с мячом, указываются номера игроков, которым он должен будет отдавать пас:

{ Количество игроков, которым третий номер будет пасовать (два): }
Player[ 3 ].NTargets := 2;
{ Номер первого игрока-5: }
Player[ 3 ].Target := 5;
{ Вероятность в процентах частоты пасования этому игроку-30% }
Player[ 3 ].TargetRnd := 30;
{ Номер второго игрока-7: }
Player[ 3 ].Target := 7;
{ Вероятность в процентах частоты пасования этому игроку-70% }
Player[ 3 ].TargetRnd := 70;

Визуально эти параметры задаются с помощью диалогового окна или другими графическими элементами типа управляющих линеек.

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

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

Непростым является настройка скорости прохождения игры. Количество событий за один квант времени требует точного регулирования, чтобы за игру не забивалось слишком много или слишком мало голов. Это достигается лишь практическими экспериментами с готовой моделью, когда количество действий за одну минуту игрового времени, например, определяется исходя из счета игры при встречах различных по силе команд. Количество забитых мячей подвержено нормальному распределению. За 90 квантов игры равные по силе команды могут забивать друг другу до 2-3 мячей, преимущественно 2, реже 0,1,3, очень редко 4. Слабые команды в состоянии забить более сильной команде обычно один мяч, реже 2, а чаще ноль, а пропустить от 2 до 6-7. Точная балансировка параметров этого типа компьютерных игр является неотъемлемой частью их разработки.

Возможный алгоритм спортивных стратегических игр на примере футбола:

  1. Проинициализировать начальные параметры и расстановки игроков каждой команды.
  2. Если мяч находится у i-го игрока j-й команды, то определить его действия с мячом - дриблинг, пас или удар по воротам.
    • дриблинг: для траектории до конечной точки перемещения игрока определить возможных защитников противника, находящихся в некоторой эпсилон-окрестности траектории дриблинга, и для каждого из них проверить факт отбора мяча в соответствии с индивидуальными характеристиками игрока и защитника. В случае отбора поменять хозяина мяча;
    • пас: в соответствии с индивидуальной точностью паса рассчитать точку приземления мяча; определить ближайших к мячу игроков в некотором радиусе приземления, и если игроков окажется несколько из разных команд, то начать борьбу за мяч, как в дриблинге. При необходимости поменять хозяина мяча;
    • удар по воротам: с учетом технической характеристики игрока “точность удара по воротам”, расстояния до ворот и угла удара определить вероятность попадания мяча в створ ворот. При удачном раскладе учесть качество “непробиваемости” вратаря и уже в случае пропуска мяча вратарем засчитать гол.
  1. Если мяч не находится ни у одного из игроков, то вступить в борьбу за него (см.выше). Определить обладателя мяча и перейти к п.2.
  2. Увеличить время на некоторый квант. Проверить окончание игры. Перейти к п.2.
  3. Если забит гол, то изменить счет, передать мяч определенному игроку пропустившей гол команды в центре поля и перейти к п.2.

Оценка сложности программирования - 6 из 10.

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

[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
20K
09 июля 2006 года
Russell
0 / / 09.07.2006
Мне нравитсяМне не нравится
9 июля 2006, 14:43:12
Интересно, но хотелось бы более развернутую статью. Здесь все по поверхности.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог