O Iris introduz vários conceitos novos ao sistema de replicação da Unreal Engine (UE). Esta página é um glossário de termos usados com frequência para fazer referência à organização e operação do sistema de replicação do Iris.
Glossário
- Blob de rede
Blob de rede é a classe base para algo que pode ser replicado com um objeto. No momento, não há nada além do próprio Iris que faça uso dele, mas você pode usar para enviar a maioria dos tipos de dados ou eventos, por exemplo, dados de depurar ou RPCs.
- Cache de referência de objeto
O cache de referência de objeto armazena referências a
UObjectsreplicados e com nomes estáticos. O funcionamento é semelhante ao cache NetGUID e ao mapa de pacotes do cliente.- Construtor de descritor de estado de replicação
Um construtor de descritor de estado de replicação cria descritores de estado de replicação para todos os tipos suportados com base em dados de reflexo.
- Descritor do estado de replicação
Um descritor de estado de replicação descreve todos os aspectos de um estado de replicação, incluindo:
Layout de memória para representações internas e externas.
Como serializar cada membro do estado.
Operações obrigatórias.
- Estado de replicação
Um estado de replicação é uma struct que contém dados que devem ser replicados ou transmitidos pela rede.
- Estado de replicação de propriedade
Um estado de replicação de propriedade é um estado de replicação dinâmico usado para interagir com o sistema de reflexo atual.
- Estado de replicação tipado
Um estado de replicação tipado é um estado de replicação baseado em uma struct com acessadores para todos os membros e membros internos que armazenam o ID do objeto de rede proprietário juntamente com um campo de bits que rastreia a sujeira de cada membro.
- Fragmento de replicação
Um fragmento de replicação é um objeto proprietário de um estado de replicação. Para transferir dados entre o sistema de replicação e o código de jogabilidade, os estados de replicação devem estar vinculados a um objeto proprietário. Os fragmentos de replicação atuam como esse objeto proprietário para estados de replicação.
- Fragmento de replicação de propriedade
Um fragmento de replicação de propriedade é o objeto proprietário de um estado de replicação de propriedade.
- Fragmento de replicação rápida de matriz
Fragmento de replicação de matriz rápida é o objeto proprietário de um estado de replicação de matriz rápida. Esta é uma implementação específica de um fragmento de replicação para matrizes rápidas.
- Gerenciador de identificadores de referência de rede
O gerenciador de identificadores de referência de rede atribui IDs internos e armazenamento de estado para todos os objetos de rede.
- Gravador de replicação
O gravador de replicação é responsável por rastrear e serializar o estado de todos os objetos replicados para todas as conexões.
Isso inclui:
Como agendar dados de replicação com base em:
Prioridade.
Prioridade de agendamento.
Status de replicação de objetos replicados.
Dependências
Subobjetos
Serialização
- Identificador de referência de rede
O manipulador de referência de rede é um identificador único de um objeto no servidor e nos clientes, de conceito semelhante a um NetGUID (identificador globalmente único de rede). Identificadores de rede são usados para referências de objeto para:
Objetos endereçáveis estaticamente
Objetos replicados
- Interno do sistema de replicação
O sistema interno de replicação é a interface interna do sistema de replicação e só fica exposto ao código interno do Iris.
- Leitor de replicação
Um leitor de replicação é um sistema interno responsável pelos dados recebidos. Ele aciona a desserialização e o aplicativo de estado usando a ponte de replicação.
- Leitor de transmissão de bits de rede
Um leitor de transmissão de bits de rede facilita a desserialização eficiente de bits de um buffer de memória.
- Manipulador de RPC de rede
O manipulador de RPC de rede processa a lógica envolvida na criação e processamento de RPCs recebidas. Por exemplo, o manipulador de RPC de rede determina se um ator ainda é válido para fazer uma chamada de RPC.
- Mascará de alteração
Mascará de alteração é uma matriz de bits usada para rastrear a sujeira dos dados replicados. O Iris usa máscaras de alteração de duas maneiras:
Todos os estados de replicação têm armazenamento em linha usado para rastreamento local e compatível com cache de membros alterados.
O sistema de replicação mantém máscaras de alteração combinadas para todos os estados de replicação nos protocolos de replicação.
- Objeto de rede
Um objeto de rede é a representação interna em rede de um objeto replicado instanciado no código de jogabilidade. Um objeto está associado a um identificador de referência de rede único e a um índice interno.
- Ponte de replicação
A ponte de replicação transfere dados entre o código de jogabilidade e o código de rede. A ponte de replicação fornece a interface específica do jogo e tem a funcionalidade de criar protocolos de replicação e protocolos de instância de replicação a partir dos dados. A ponte de replicação também é responsável por instanciar objetos de jogabilidade, como atores e outros tipos suportados, mediante solicitação do sistema de replicação.
- Ponte de replicação de ator
A ponte de replicação de ator implementa a interface da ponte de replicação. A ponte de replicação de ator constrói protocolos de replicação e protocolos de instância de replicação a partir de atores e componentes de ator. Ele também implementa código para consultar dados de estado com base nas propriedades e emitir retornos de chamada legado necessários.
- Protocolo de instância de replicação
Um protocolo de instância de replicação é criado para cada instância de objeto. É uma matriz de todos os fragmentos de replicação de uma instância e é usada sempre que houver troca de dados de estado entre o código do jogabilidade e o sistema de replicação.
- Protocolo de replicação
Um protocolo de replicação define como replicar dados para um objeto. Um protocolo de replicação é uma matriz de todos os estados de replicação que descrevem os dados a serem replicados.
- Registro de replicação
Um registro de replicação é uma lista de dados em andamento do gravador de replicação. Um aspecto crucial do gravador de replicação é faixa todos os dados em trânsito. Isso é feito para que medidas possam ser tomadas de forma adequada e eficiente em caso de perda ou entrega de dados. O registro de replicação mantém listas vinculadas de todos os objetos com dados em andamento que ainda aguardam notificação de entrega.
- RPC da rede
Um blob de rede implementado especificamente para processar RPCs padrão.
- Sistema de replicação
O sistema de replicação é a interface principal para interagir com o Iris no código de jogabilidade.
- Token de rede
Um token de rede é um objeto de rede para vários tipos de dados que não estão necessariamente relacionados à rede, mas que ainda podem servir para a comunicação entre o servidor e o cliente.
Exemplos do que pode ser expresso como um token de rede:
Strings
Blobs de dados
Pacotes
Você pode enviar dados de token a clientes ao usar uma transmissão de dados de token de rede, carregada na inicialização ou exportada durante a serialização. Você pode consultar o gerenciador de tokens de rede para saber o status de todos os tokens no lado remoto.
- Transmissão de dados
Transmissão de dados é o equivalente no Iris a um canal de dados no sistema de replicação genérico. As transmissões de dados são responsáveis pela serialização de dados. Você também pode usar uma transmissão de dados para implementar garantias específicas de entrega de dados para diferentes tipos de dados.
- Transmissão de dados de replicação
O transmissão de dados de replicação é responsável por serializar e desserializar dados de replicação.
A implementação é dividida em duas partes:
Leitor de replicação
Gravador de replicação
- Transmissão de dados do token de rede
A transmissão de dados dos tokens de rede serializa os dados deles.