Multiplayer tutorial 1: Conceitos

3

Index

Taggé

Contributeurs

Statistiques

23,835 visites, 37,354 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 14 Aug, 2015. Last updated 25 Feb, 2019

O Construct 2 Multiplayer plugin de

A concepção geral de um jogo multiplayer em Construct 2 é algo como isto.

Flow De um jogo multiplayer

O ciclo de vida de um jogo multiplayer será mais ou menos assim:

1. Conecte-se ao servidor de sinalização e log in

2. Junte-se a um quarto

3. Outros colegas podem entrar e sair do jogo enquanto ele é executado

4. Os dados de objeto e outras mensagens como bate-papo são trocados com outros peers conectados

5. Finalmente, o jogo termina, todo mundo sai da sala, e pode, talvez, olhar para uma nova sala (de volta para o passo 2).

Observe o jogo termina quando as desconexões de acolhimento. Eles estão agindo como o servidor para o jogo, assim que se desligar, em seguida, o jogo não é mais executado. Esta é uma razão para considerar a execução de um servidor dedicado em um servidor central, particularmente para jogos maiores, com mais jogadores. No entanto, não faz diferença para os jogos de dois jogadores - o jogo iria acabar de qualquer maneira se o outro jogador para a esquerda.

O plugin Multiplayer tem características que cobrem a fase de sinalização (passos 1-2), bem como "quarto" características cobrindo a jogabilidade em si, tais como gatilhos para quando pares entrar e sair, as mensagens são recebidas, e assim por diante.

design Resumo

Pretende-se que os jogos são projetados com um [tipo de objeto] [9] que representa ambos os objetos controlados do jogador e todos os outros jogadores no jogo. Em seguida, o mesmo objeto é usado igualmente para todos no jogo, incluindo-se (e mesmo quando o host). É sábio para nomear esse objeto Par , uma vez que é o que ele representa. Se você tem jogadores compostas de vários objetos, como uma arma e corpo separado, tem uma base de Pares objeto e colocá-lo em um [recipiente] [10] com os outros objetos. Isso garante que os jogadores são criadas e destruídas como um todo, e que os seus objetos relacionados são auto-escolhido em eventos com o objeto de base, para que possa tratar em grande parte o objeto de base como a representação de todo o jogador.

Tanto o anfitrião e os colegas estão executando o mesmo projeto. Isso significa que seu um projeto tem que ser capaz de lidar com eventos para tanto o anfitrião, que tem a versão oficial do jogo, e os colegas, que estão vendo uma versão atrasada e só enviam seus insumos. A maneira mais conveniente de lidar com isso é ter dois grupos de eventos dedicados ao anfitrião e o Par, e para ativar somente o apropriado depois de entrar numa sala e determinar se você se tornou host.

Sincronização ação do objeto Multiplayer objeto é o caminho fundamental para indicar que você deseja enviar dados sobre objetos através da rede. Isto diz o anfitrião para enviar informações sobre esses objetos para os seus pares, e diz aos colegas que esperar para receber informações sobre esses objetos. O motor de multijogador automaticamente cria e destrói objetos que representam pares como eles entram e saem. (A Sincronização ação de objeto também pode ser usado para outros objetos que não representam pares, mas mais comumente é usado para pares.)

Cada par tem um ID de Pares atribuído pelo servidor de sinalização. Esta é uma string com uma pequena sequência de caracteres aleatórios para identificá-los de forma exclusiva. IDs de pares são geralmente usados ​​para ser capaz de se referir de forma consistente para o mesmo jogador, mesmo que suas mudanças de alias. O ID peer precisa ser armazenado em uma variável de instância para que você saiba que perscrutar um determinado objeto está representando. Quando um objeto para um peer é criado pelo motor multiplayer, o Multiplayer.PeerID expressão está definida para o seu ID de pares, para que ele possa ser armazenado em sua variável de instância. Desde que você está no controle de seu próprio objeto de pares, você pode facilmente pegá-lo, testando se a sua variável de instância é igual a Multiplayer.MyID e modifique apenas essa instância.

Modos

Reliability

A última coisa a mencionar é que existem três modos de transmissão dos dados. Estes trade off confiabilidade para o desempenho.

O modo mais confiável é Reliable ordenou . Isso envia uma mensagem de que é controlado: se ele fica caiu na rede, ele vai voltar a enviá-lo até que ele verifica se ele chega ao destino. Ele também ordens mensagens, para que eles são garantidos para chegar na mesma ordem em que foram enviados. Isso é útil, mas não é o mais rápido: se uma mensagem é descartado e levantou, que irá realizar-se todas as mensagens subsequentes até que mensagem seja através de. Significa, também, mensagens individuais podem ter múltiplos da latência para chegar, uma vez que deve esperar pelo menos o tempo de ida e volta para saber se a mensagem chegou

  • 0 Comments

Want to leave a comment? Login or Register an account!