------ controle visão de design jogo quadrado

------ controle visão de design jogo quadrado

URL de referência: https: //blog.csdn.net/qq_36748278/article/details/102787225

fundo

fundo jogadores perspectiva

AOI (Área de Interesse), isto é, a região de interesse. Ele pode ser considerado como jogadores de área no jogo em tempo real, onde a cena para ver, que, com o movimento de AOI do jogador vai mudar. No jogo, haverá muitas cenas (PAM), cada mapa tem um monte de jogador ou NPC, os dados de vista é mútua, podemos ver que o Jogador B Jogador A, o jogador B também verá que o jogador A. Quando os jogadores fazer algum comportamento quando operando no mapa, se você quiser o comportamento do jogador para ser visto, é necessário para transmitir o comportamento do jogador para todos os jogadores no mapa. A cena em que os jogadores agir enquanto as modificações para a cena transmitida para todos os outros jogadores desta maneira é a melhor maneira?

  • Para alguns de menor número de cenas jogadores, tais como uma cópia da equipe e assim por diante. Os jogadores vão ver todos os jogadores e NPC mapa, ele pode ser chamado cena de campo total. Neste cenário, não há uma única ação jogador a tomar outros jogadores o caminho para a cena transmitida é viável.
  • Por algum jogo PVP em grande escala, mesma cena há centenas ou mesmo milhares de pessoas para participar, quando, assumindo um total de 1000 pessoas assistiram à cena. Qualquer jogador, desde que o movimento é necessário para transmitir para o resto das 999 pessoas, quando 1.000 pessoas que se deslocam ao mesmo tempo, as necessidades do servidor para lidar com 999 * 999 (milhões de nível) mensagens, o equivalente a n * n. Todos na cena mudou-se para produzir um milhão de dados de nível, não considerando a operação síncrona de outros atos, como a liberação de habilidade do jogador, assim que a acumulação de grandes quantidades de dados facilmente causar a mensagem de servidor, não respondem em tempo hábil. Ao mesmo tempo, o cliente cada jogador irá lidar com mensagens em tempo real outros 1.000 jogadores, susceptível de induzir o cliente Caton, se o identificador de mensagem, os pacotes de dados no entanto perderam também vai aparecer. Enquanto o grande número de pacotes enviados para o cliente, mas também consumir uma grande quantidade de tráfego. Isto certamente não é do jeito que queremos, a experiência de jogo será muito pobre.

Podemos ver que no jogo, os jogadores vão sempre aparecer no centro da tela, juntamente com o movimento do jogador, a visão se moverá simultaneamente com o movimento dos jogadores, mas os jogadores sempre estão no centro. Os jogadores podem ver a tela do jogo é centrado no jogador extensão vista de 360 graus das informações circundante. Então, se o jogador para modificar a AOI, o jogador-controlado no centro da tela pode ver todos os objectos referidos como dados de vista de um jogador, outros comportamento quando o jogador tenha operado, o jogador só precisa informar o campo de visão, com respeito à cena notificação todos os jogadores podem reduzir a um monte de mensagens de envio desnecessários, mas também pode salvar uma grande quantidade de tráfego. Porque outros usuários estão muito longe não está na tela atual, operacional o comportamento do jogador dentro do âmbito da comunicação a estes jogadores há sentido dos jogadores.
Mas se este cenário todos os jogadores estão jogando um chefe, a cena todos os jogadores juntos, então tela de visualização de dados atual do jogador tornou-se todos os jogadores na cena. Ao mesmo tempo, limitado pelo desempenho do cliente, o cliente tem o maior número de pessoas com tela teto, por isso temos de limitar o limite superior do campo de visão do jogador. Quando todos os jogadores juntos no conjunto de cena para filtrar por prioridade (relações sociais, relações hostis, distância, etc.), exibido um número especificado de objetos contados no campo de objetos de visão do jogador.

Portanto, para atividades lúdicas PVP em grande escala, quando o número de cenas em uma grande parte do tempo, campo de visão usando limite de teto visão e faixa especificada pelo jogador de campo de 360 ​​graus de visão do jogador do jogador está definido para o centro do caminho. Jogador-centrado, estendido para a 360 graus em torno, o jogador pode estender-se para o centro da região quadrado, o jogador pode basear-se no centro da área circular. No entanto, devido ao quadrado quando o mapa, não é adequado para calcular as coordenadas do intervalo circular do ponto crítico, de modo que de acordo com a melhor região quadrada centrada no leitor 360 estendidos para fora. Podemos descobrir exatamente ao redor é uma área quadrada jogador-centric. Portanto, é concebível de acordo com sua respectiva divisão do mapa, o jogador no centro da grelha, com o jogador, assim como a área quadrada centro pode ser dividido em 3 * 3 quadrados. E maior ou igual área quadrada exige uma área de exibição tela do jogo, dependendo das circunstâncias de comprimento desenho racional de cada grade mapa. Assim armazenamento de exibição de dados do jogador pode assumir a forma de quadrados.

Aqui Insert Picture Descrição

mapa

Mapa divisão grade

No jogo, o tamanho do mapa são quadrados, e é o eixo X, eixo-Z em um plano horizontal (em tanto o jogo em cm). O mapa de grade numa pluralidade de tamanho especificado, tal como em 7M (MAP de acordo com o tamanho real de um único comprimento de tamanho da grade) em unidades dos blocos divididos. Depois que o mapa é dividido em uma pluralidade de mosaicos de mapas, que o jogador pode ser calculada pela telha coordenar pontos do jogador.
Divididos na direcção do eixo X, do eixo X mapear um comprimento total de 256m, assumindo que o tamanho de cada bloco é 7m, então o eixo X, o número total de tartan? 256/7 = 36,57142857142857, uma estrutura não está satisfeito directamente calculado de acordo com uma estrutura, o eixo X total de 36 + 1 = 37 grelha, Z eixos empatia. Partindo do princípio de que o tamanho de cada bloco é 8m, 256/8 = 32, apenas podem ser divididos em 32 blocos. Quando o mapa fixo tamanho, blocos de tamanhos diferentes, não dará o número da malha, e alguns podem ser divisível, alguns não divisível (não divisível contado não satisfaz um tamanho 1), isto é, o arredondamento para cima. Para evitar condição divisível julgar se, a aplicação uniforme mais um, isto é, utilizando o comprimento mapa / comprimento + 1 para o número de grade estrutura é calculada para cada divisão. Então dividimos o número total de grade será sempre maior do que a cena do mapa. Partindo do princípio de que o tamanho do mapa é 256m 256m *, o tamanho de cada grelha é 7m 7m *, é discutida a seguir são, em conformidade com o tamanho.

  • Número total de grade X_AREA_NUM_PER_MAP X-eixo do comprimento da estrutura de cada um dos eixos X = Mapa Comprimento eixo X-/ + 1
  • Número total de grade = Z_AREA_NUM_PER_MAP Z-eixo do comprimento do eixo Z de cada grelha Mapa Comprimento / eixo Z + 1
  • Há toda mapa número grade MAX_DYN_AREA_NUM = X_AREA_NUM_PER_MAP * Z_AREA_NUM_PER_MAP + 1 (aqui adicionar uma rede por motivos de segurança)

Jogo matriz unidimensional para armazenar toda a grade de mapa pode ser usado. Estrutura Número --1 = subscrito de matriz, em seguida, são armazenados na matriz correspondente da memória partilhada pelo ID de índice, que pode obter um bloco correspondente do campo de destino de visão (um campo de vista da estrutura pode ser considerado como um bloco alvo).

Bloco de campo mapa de vista (grade) array e o assunto relacionado como segue:
Aqui Insert Picture Descrição

Coordenadas de localização dos jogadores bloco de posicionamento ponto

Como encontrar a que os jogadores estão na grade de acordo com as coordenadas específicas do ponto de ele?
Coluna de direcção do eixo-X: uma primeira gama de estrutura [0,7), a segunda faixa de treliça [7,14), o intervalo terceira grade [14,21) ...
a direcção da linha do eixo Z: uma primeira gama de treliça [0,7), a segunda gama de estrutura [7,14), a terceira grade no intervalo [14, 21) ...

Jogadores coordenadas conhecidas pos (8, 100, 15) , o tamanho do mapa é assumido 256m 256m *, o tamanho da grelha é 7m * 7m.
Uma matriz bidimensional pode primeiro subscrito Análise:
eixo X, onde X é o número de estrutura X = 8/7 = 1, isto é, no plano X-eixo da estrutura da coluna 2 (Figura), o eixo X-matriz subscrito 1
, em eixo Z, o número de estrutura em que Z é Z = 15/7 = 2, isto é, a camada de estrutura 3 no eixo Z (Fig.), Z-eixo matriz subscrito de 2
, onde uma variedade de jogadores de acordo com uma bidimensionais subscritos de matriz calculado o subscritos: Z * X_AREA_NUM_PER_MAP + X = 2 * 37 + 1 = 75
Aqui Insert Picture Descrição

mapa de relações, blocos de visão, os jogadores

Aqui Insert Picture Descrição
O jogo vai ter um monte de cenas;
cada cena corresponde a um recurso de mapa;
será dividido em uma pluralidade de células em cada mapa, cada objeto bloco de grade é uma visão;
haverá muitos jogadores em cada bloco campo ou NPC.

vista do jogador

vista do jogador estão sujeitos a alteração após dois casos

  • Ativo: operação do leitor Visão causados atualização:
    Os jogadores entram no mapa, campo de visão do jogador irá procurar informações.
    Os movimentos do jogador, movendo-se a partir de um campo para outro bloco do campo de bloco de vista (Se o mesmo é movido em uma grade, o campo de visão não é actualizada).
  • Passivo: Outras causas de mudanças no campo do jogador de visão:
    outros jogadores para entrar / sair do campo de visão, pode causar alterações na sua visão.

Jogadores movimento pode levar à situação do campo de visão de atualização

Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição
Aqui Insert Picture Descrição

implementação de código

Relacionada com a lógica de exibição atualização do jogador específico, consulte consulte o URL dado acima

endereço github

Publicado 155 artigos originais · Louvor obteve 15 · vista 160 000 +

Acho que você gosta

Origin blog.csdn.net/wangdamingll/article/details/105207975
Recomendado
Clasificación