Atualmente, estou lendo o livro Programming Game AI By Example.
O livro menciona a atribuição de números de identificação exclusivos para cada entidade no jogo. Freqüentemente, quando a entidade A precisa entrar em contato com a entidade B , A obtém uma referência a B enviando o número de identificação de B para uma classe EntityDatabase . Essa classe recebe números de identificação e retorna referências às entidades.
Os números de ID de algumas entidades também podem ser buscados a partir de um arquivo que contém os IDs de algumas das entidades (os principais personagens do jogo).
Minha pergunta é: por que eu faria isso? Por que não posso trabalhar diretamente com referências? Às vezes é difícil obter uma referência direta? O uso de um sistema de identificação é uma abordagem comum? Existem jogos que não usam IDs?
Eu sou novo no desenvolvimento de jogos. Explique os benefícios de trabalhar com um sistema de identificação de entidade. As vantagens e desvantagens. Exemplos concretos seriam ótimos. obrigado
fonte
Uma última coisa é que se você estiver usando o padrão Pool de Objetos e uma entidade for redefinida porque a criatura morreu (por exemplo) e reapareceu em outro lugar, uma referência ainda apontará para a mesma entidade (falha) e um ID não permanecerá mais válido.
O ID 5067 aponta para o endereço 0x8765, a criatura morre e outro gera o novo ID da criatura é redefinido para 7073 Alguém verifica o ID 5067, mas aponta para 0x8765, mas agora a criatura está registrada com o ID 7073, para que o banco de dados de ID da entidade saiba que você usou um ID obsoleto e informa que a criatura que você tentou alcançar não está mais ativa.
Essa e todas as maravilhosas razões mencionadas pelo Byte56 são por que é um bom design evitar o uso de referências diretamente.
fonte