[Behavior] MultiPlayer + Online demo [Portuguese]

Post your completed addons to share with the community

Post » Mon May 06, 2013 7:34 pm

(AVISO: Velojet escreveu este [plugin / behavior] como um meio de explorar os aspectos prticos da utilizao Construct 2 em um contexto multiplayer. oferecido aqui com esse esprito, e no como uma maneira totalmente funcional de fazer jogos multiplayer com Construct 2.)

NOTA: No sensvel ao toque e s foi testado em navegadores de PC (Firefox, Chrome, Safari).

Ento, pela primeira vez, aqui est o meu MultiPlayer em ao , atravs da internet, em um jogo realmente simples de dois jogadores, Cleaners. Voc move o seu mop em volta da mesa, tentando limpar mais peas do que seu oponente. Se voc colidir com ele / ela / ele, voc perde.

NOTA: Voc pode achar que h um grande lag entre as teclas pressionadas e seu movimento mop. Esse atraso depende de uma variedade de factores, que ser discutido mais tarde num post.


Primeiro, voc vai ver:


Felizmente, voc no ter muito tempo para esperar antes de voc ver, se voc for o primeiro a entrar no jogo:


Se j outro jogador que est esperando por voc para aparecer, voc ver:


... e agora voc pode comear a se mover seu mop (setas) e limpeza -, enquanto o outro jogador, com o mop cinza, faz a mesma coisa - e tenta limpar mais peas do que voc.

Se voc foi o primeiro a entrar, voc vai ter que esperar por um outro jogador - se ningum aparecer, voc pode disparar at outro navegador e tentar mover duas mops de uma s vez. Existem vrias salas de jogos, ento uma srie de jogos pode ser jogado simultaneamente.

Agora, para dar uma olhada nos bastidores. Meu objetivo principal foi o de explorar as possibilidades de jogos multiplayer usando um front end para o Construct 2. Eu tambm queria fazer um plugin/behavior MultiPlayer para que os Construtores pudessem usar num nvel mais elevado, IOW eles / voc no deve ter para manipular mensagens Socket.IO e separ-las, a fim de extrair o seu significado.
Voc pode ver isso em como o cdigo do Cleaners C2 funciona com a actualizao de um jogador de web:



Uma maneira em que eu consegui simplificar o front end C2 era fazer meu MultiPlayer um comportamento que se anexa a um objeto (normalmente um Sprite), ao invs de um plug-in separado para atuar como um controlador. Originalmente, eu comecei a estudar a estrada do plugin Photon com meu plugin PhotonPlayer . Isso combinado com o controlador de um Sprite em uma nica unidade, mas isso significava que tinha de lidar com todas as rotinas de desenho complexo em si. Agora, meus MultiPlayer esto ligados a um comportamento que mais complicado para o objeto a que est ligado, deixando-o livre para enviar apenas a movimentos para o servidor do jogo e voltar a partir do servidor as informaes de localizao actualizado e outros dados (como a pontuao). (Mais detalhes mais tarde sobre suas relaes com o servidor.)

OK, ento voc est querendo experimentar o meu comportamento multiplayer para si mesmo, em seu prprio servidor. Aqui est o que voc precisa fazer (voc j deve ter feito os passos 1 e 2):

1) Configure um servidor NodeJS - voc encontrar como baixar e configurar nas instrues aqui . (Aviso:. Estou disposto de oferecer alguma ajuda com este passo - se voc precisar, voc pode encontrar muitos na interweb)
2) Instale estes mdulos: Install Express, NodeJS (axo que now)NowJS. (O mesmo aviso se aplica aqui.)
3) Download meu servidor do Cleaners.
4) Descompacte-o em uma subpasta de sua instalao NodeJS.
5) Execute o servidor do jogo, digitando na linha de comando nessa pasta: node server.js.
6) Abra uma janela do navegador neste local: localhost:7000 (escolher uma porta diferente, se voc tem 7000 j est em uso por outro aplicativo - voc tambm vai precisar alterar o nmero da porta na linha 34 de server.js). Voc dever ver a primeira imagem acima (com 'localhost:7000' como o endereo neste momento).
7) Abra outra janela do navegador no mesmo local: localhost:7000. Voc dever ver a terceira imagem acima, com as posies dos jogadores invertidos.
8) Mova o mop em uma janela e voc tambm ver seu movimento contrapartida cinza na outra.
9) Mudar de janela em janela e veja se voc pode bater-se!

Ento, onde que isto est a ser construdo para os dois? Podero vocs estar a perguntar. Bem, se voc olhar na pasta 'public', voc vai ver c2runtime.js. Isso Construir a contribuio de 2 a Cleaners. Ela veio do [URL = https://www.dropbox.com/s/f8vzjllxq9qs2oh/Cleaners.capx "rel =" nofollow]meu projecto Cleaners Construct 2[/URL].

Voc pode transferir agora o meu capx do Cleaners e olhar para sua folha de eventos no Construct 2, voc vai achar que no h nenhuma lgica do jogo l. Num jogo multiplayer industrial, um servidor com autoridade lida com toda a lgica. Os nicos dados de localizao que o Construct 2 "jogo" envia para o servidor a direco de um movimento (esquerda / direita / cima / baixo) feito pelo objecto que o comportamento multiplayer anexado. Ele no envia suas coordenadas x / y, pois esta seria uma maneira muito fcil para um cliente desonesto do "jogo" enganar.

Da mesma forma, o servidor mantm a pontuao e os dados de sade e envia-los para os jogadores do cliente (juntamente com quaisquer outros dados necessrios sobre o estado do jogo). Isso no deixa muito para o Construct 2 "jogo" para fazer! Na verdade, voc vai ver que ele realmente tem apenas duas tarefas:
1) enviar movimentos para o servidor do jogo, e
2) apresentar o estado actual do jogo.

Eu fiz um demo em Multiplayer mais simples para voc usar como base para experimentar por si mesmo. Veja como:
1) Download o meu behavior MultiPlayer e colocar ele na pasta que acaba em Construct 2\exporters\html5\behaviors.
2) Download o meu Multiplayer Workout capx .
3) Download meu servidor NodeJS Workout Multiplayer ] e descompact-lo em uma outra subpasta de seus nodejs instalao.
4) Abra uma janela do navegador em localhost:7700.
5) Abra as janelas do navegador (quantos voc quiser) no mesmo endereo.
6) Mova o sprite em uma janela e voc tambm ver as suas congneres de cores diferentes mover nos outros:



No um jogo! (Eu disse que era mais simples.) Por um lado, no nenhum jogo so quartos separados, e, como voc acabou de ver, no h nenhum limite imposto ao nmero de jogadores.

Eleve a sua imaginao para experimentar. Mas note que voc no ser capaz de visualiz-lo da maneira normal! Isso porque ele no sabe o que fazer se ele no se poder conectar ao servidor do jogo. Ento aqui est o fluxo de trabalho que voc precisa seguir:
1) Edite Multiplayer Workout em Construct 2 (claro!).
2) Exportar seu projecto como um site HTML5 para a pasta pblica da subpasta nodejs que voc criou no passo 3 acima. NO fazer "minify" do script - porque agora o objecto NowJS confunde o Google Closure Compiler.
3) Edite server.js para implementar a lgica de jogo. Voc precisa estar familiarizado com JavaScript para fazer isso, claro, mas eu liberalmente comentou o meu cdigo para ajud-lo a acompanhar o que se passa.
4) Os passos seguintes so os mesmos que os passos 5-9 do primeiro conjunto de instrues numerados acima.

Para fazer um jogo de seu prprio a partir do zero usando o meu comportamento multiplayer, voc precisa saber o que ele oferece - aqui esto as suas condies (eventos), aes e expresses que voc pode fazer uso de:
- Condio: Novo jogador web juntou
- Estado: jogador Web foi atualizado
- Estado: em caso de coliso com outro jogador
- Estado: jogador Web / s para ser criado
- Condio: No meu jogador mudou
- Estado: Web jogador deixou (usar isso para destruir o sprite associada)
- Estado: Servidor do jogo est pronto
- Ao: Definir o ID do jogador na web (a partir do C2-alocado UID)
- Ao: Inicializar dados do jogador na web para criar (a partir do servidor alocado ID do cliente e sua atual coordenadas X / Y)
- Expresso: Obter atual X coordenada de web jogador
- Expresso: Obter Y atual coordenada de web jogador
- Expresso: Obter web jogador C2 UID
- Expresso: Obter nmero de jogadores da web para fazer
- Expresso: Obter servidor alocado UID do jogador
- Expresso: Obter o nome do jogador
- Expresso: Obter pontuao atual do jogador
- Expresso: Obter sade atual do jogador

(Os trs ltimos no so expresses usadas nos meus projectos da amostra.)

H muitos problemas com vrios jogadores que eu no sei lidar. Por exemplo, eu no tenho tentado compensar a latncia (o tempo gasto na movimentao de dados de e para o servidor) ou lag (atraso entre a ao de um jogador e seu resultado - em parte causado pela latncia). Aqui est uma explicao muito til para essas questes por Rob Hawkes num Google TechTalk, falando sobre as suas tentativas de criar um MMOG em HTML5 (ele particularmente bom em lidar com fraudes, ele carrega as cicatrizes de vrios encontros).

E eu vou discutir essas questes como elas afectam o meu comportamento MultiPlayer em um post mais tarde, bem como explicar por que isso um comportamento baseado em azulejo, em vez de uma que permite o movimento pixel-por-pixel (voc provavelmente pode adivinhar o porqu).

Meu objectivo tem sido o de criar um contexto experimental prtico em que podemos explorar e discutir as possibilidades e os problemas do uso de Construct 2 no desenvolvimento de jogos multiplayer. Deixe-me saber se isso ajuda.

Ateno todos os crditos deste tutorial vo para o utilizador Velojet!
Thread Original: Comportamento Multiplayer + Demo Online


Atention all the credits for this tutorial goes to Velojet!
Original Thread: Behavior Multiplayer + Online Demo
DarkevilPT2013-05-06 23:32:41
B
5
S
1
Posts: 16
Reputation: 957

Post » Thu May 09, 2013 2:48 am

muito bom ver Brasileiros aqui tambm cara, e parabns pelo plugin!
B
9
S
1
Posts: 7
Reputation: 949

Post » Thu May 09, 2013 3:57 pm

[QUOTE=rangelrmorais] muito bom ver Brasileiros aqui tambm cara, e parabns pelo plugin![/QUOTE]
Eu sou Portugus de Portugal, estou apenas a tentar ajudar quero ver estas ferramentas do multiplayer mais exploradas. O Brasil parece dar bastante uso ao Construct tm muita informao e vdeos.
Ateno o plugin do user Velojet, no fui eu que o desenvolvi.DarkevilPT2013-05-09 16:10:45
B
5
S
1
Posts: 16
Reputation: 957

Post » Fri Dec 27, 2013 10:33 pm

ola obrigado pela tua partilha desconhecia por completo isto. tambem sou de portugal :)
yolinux
B
16
S
5
Posts: 19
Reputation: 1,495

Post » Sun Dec 13, 2015 2:03 am

Legal vou dar uma olhada tbm
B
18
S
5
Posts: 72
Reputation: 1,284


Return to Completed Addons

Who is online

Users browsing this forum: No registered users and 1 guest