Зальцман М.
Компьютерные игры: как это делается
стр. 186

100 [Указатель на следующий элемент (062)]

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

При использовании массива реализация может выглядеть следующим образом:

Заголовок списка:

Первый [индекс первого объекта - 001]

Последний [индекс последнего объекта - 003]

Список:

Индекс массива - данные - индекс следующего элемента

001    Данные    объекта    1    002

002    Данные    объекта    4    004

003    Данные    объекта    2    -1

004    Данные    объекта    3    003

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

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

И еще несколько слов о гибкости:

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

Чтобы знать все о компании Dreamforge Intertainment, ее служащих и играх, обратитесь на веб-сайт www.dreamforge.com.


Новости
В GTA Online появились локации, мгновенно убивающие игроков
В GTA Online всегда были забагованные локации, попав в которые вы могли моментально умереть, но появившиеся недавно в игре «точки смерти» - не случайная ошибка, а специально созданные разработчиками игры смертельно опасные зоны.
Утечка: Diablo 3 выйдет на Nintendo Switch уже в этом году
Diablo 3 должна выйти на Nintendo Switch уже в этом году, но точной даты релиза пока что нет.