В настоящее время я читаю книгу «Программирование игры AI по примерам».
В книге упоминается о присвоении уникальных идентификационных номеров каждой сущности в игре. Часто , когда объект A необходимо связаться с лицом B , получает ссылку на B , посылая B «s идентификационного номера к EntityDatabase классу. Этот класс получает идентификационные номера и возвращает ссылки на объекты.
Идентификационные номера некоторых сущностей также могут быть получены из файла, содержащего идентификаторы некоторых сущностей (главных игровых персонажей).
Мой вопрос: зачем мне это делать? Почему я не могу работать напрямую со ссылками? Иногда трудно получить прямую ссылку? Является ли использование системы идентификации общим подходом? Есть ли игры, которые не используют идентификаторы?
Я новичок в разработке игр. Пожалуйста, объясните преимущества работы с системой идентификации объекта. Преимущества и недостатки. Конкретные примеры были бы великолепны. Благодарность
источник
И последнее: если вы используете шаблон «Пул объектов» и объект сбрасывается, потому что существо умерло (например) и появилось в другом месте, ссылка все равно будет указывать на ту же сущность (ошибку), и идентификатор больше не будет оставаться действительный.
Идентификатор 5067 указывает на адрес 0x8765, существо умирает, а другое порождает новый идентификатор существа, сбрасываемый на 7073. Кто-то проверяет идентификатор 5067, он указывает на 0x8765, но это существо теперь зарегистрировано с идентификатором 7073, поэтому база данных идентификаторов сущностей знает, что вы использовали устаревший идентификатор и сообщает, что существо, которого вы пытались достичь, больше не активно.
Это и все замечательные причины, о которых упоминал Байт56, - это хороший дизайн, позволяющий избегать прямого использования ссылок.
источник