Читаем Создание игр для мобильных телефонов полностью

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

Решение в данном случае – это метод «достаточно хороший ход», а не «лучший ход». Один из лучших способов поиска «достаточно хорошего хода» – это заставить компьютер играть за обе стороны, используя различные алгоритмы веса для каждой из сторон. Затем откиньтесь в кресле и понаблюдайте, кто одержит победу. Такой подход обычно требует большого числа экспериментов и изменений кода, однако в результате можно создать действительно сильного компьютерного противника, а понаблюдать за баталиями крайне интересно.

Разработка стратегии

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

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

С чего начинать работу? Многие программисты любят писать код непосредственно при разработке алгоритма. Хотя такой подход может давать хорошие результаты в некоторых случаях, все же лучше предварительно провести разработку на листе бумаги. Кроме того, постарайтесь ограничить разработку областью игрового ИИ. Начните с небольшой карты или сетки с простыми правилами совершения ходов. Напишите код, проводящий одного оппонента из точки А в точку Б.

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

Хороший способ попрактиковаться с созданием ИИ – это написать алгоритм игры компьютерного противника в настольной игре, например, шашки. Для большинства популярных игр есть подробные описания ИИ, которые вы можете найти в сети. Другой хороший способ потренироваться – это модифицировать уже существующую игру, попробовать сделать управляемых компьютером персонажей немного умнее. Например, вы могли бы изменить игру Henway так, чтобы спрайты ускорялись или замедлялись, тем самым, усложняя задачу цыпленку. Или вы можете создать собственный спрайт, который знает, как преследовать другие спрайты на различных уровнях агрессии… экспериментируйте!

Учим спрайты думать…

Ранее в этой главе речь шла о преследующем блуждающем искусственном интеллекте. Объект достаточно умен, чтобы преследовать другие объекты, обычно управляемые игроком. Теперь вы готовы создать и реализовать спрайт, который будет преследовать другие объекты. Вы сможете улучшить игру High Seas, разработанную в предыдущей главе, сделать ее интереснее.

Разработка преследующего спрайта

Условия для разработки преследующего спрайта таковы: есть целевой спрайт, преследователь, преследователь постоянно движется в направлении цели. Представьте игру в салки, в которой вы – догоняющий, точно так же себя ведет и преследующий спрайт. Чтобы понять, как может работать такой спрайт, вы должны представить себе игру в салки в заторможенном состоянии. Например, предположим, что вы расположены в точке с координатами XY, например, недалеко от крыльца дома. Вы можете использовать любую единицу измерения, которую пожелаете, – метры, аршины, попугаи. все что угодно! Пусть тот, кого вы будете догонять, будет расположен в другой точке с координатами XY относительно крыльца дома.

Зная координаты преследователя и преследуемого, вы обладаете всем необходимым для планирования дальнейших действий. Чтобы определить в каком направлении следует двигаться относительно оси X, из координаты X преследуемого вычтите координату X вашего положения. Отрицательное значение говорит о том, что вы должны двигаться на запад, а положительное – на восток. Аналогичные вычисления следует сделать с координатами Y. Отрицательный результат говорит о том, что вы должны двигаться на север, а положительный – на восток.

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных