Теория игр на основе плитки

Я ищу статьи о плиточных играх, таких как старые ultima 6 и 7, или даже о пиратах-головоломках. Конкретно:

  1. Как они отслеживают объекты на карте. Такие объекты, как другие персонажи, деревья или вещи, которые персонаж может перемещать.
  2. AI за персонажами. Как игра обрабатывает поведение персонажей на карте, которые находятся за пределами экрана. Особенно с очень большими картами и многочисленными персонажами.

Ответов (5)

RogueBasin посвящен играм, похожим на Rogue (например, Rogue, NetHack,). Все эти игры были основаны на простой квадратной сетке. На сайте есть обширный раздел, посвященный разработке подобных игр: http://roguebasin.roguelikedevelopment.org/index.php?title=Articles

Вы найдете там как предложения, так и код, которые можно использовать для создания игры, как вы описываете. В конце концов, единственная реальная разница между Rogue / Larn / NetHack / и т. Д. а Diablo или серия Ultima использует простые текстовые символы для изображения карты и игрового процесса по сравнению с изометрическими спрайтами.

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

Проверьте Гамасутру . У них есть множество статей по всем видам разработки игр.

Карта будет массивом значений. Его можно было разделить на отдельные части. Будут загружены только части в пределах досягаемости игрока, а объекты & npc в этих частях будут активными.

Поскольку у старого оборудования было очень мало памяти и ЦП, эти игры могли загружать и обрабатывать только части карт.

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

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

Я помню, как заходил на страницу разработки игр Амита, когда писал несколько игр. У него есть отличный подраздел на плитках, в котором есть все, что вы хотите.