Jogos Online

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Jogos Online

Mensagem por PedroX em Sex 23 Dez 2011, 15:39

Jogos Online

Requerimentos: Ainda nenhum.

É o inicio de uma série de tutoriais sobre jogos online. Você aprenderá a criar contas, logar, deslogar, movimentar, etc.

Para começar, vamos dizer que os jogos online se baseiam em mensagens.

O que são e para que servem as mensagens?

Cada player manda mensagens para o servidor, que repassa as mesmas para todos os outros players. Por que eles trocam mensagens? Para comunicar que eles estão fazendo alguma coisa, como andar ou pular. Em cada máquina, há um clone para cada jogador. Esses clones vão reproduzir o que os players estão fazendo nas suas máquinas.

Cada mensagem terá um número que a represente. Esses números geralmente são gravados em constantes. Por exemplo, a mensagem de movimento pode ser uma constante msg_move. Essa constante terá um valor numérico. Os valores nunca podem ser iguais, pois assim uma mensagem seria igual a outra e geraria problemas na interpretação das mesmas.

Como definir uma constante?
Vá no menu Resources e clique em Define Constants.
Você verá uma tabela, onde poderá adicionar os nomes e valores das constants.
Durante os tutoriais, o nome e valor ficarão ao seu critério.

Resumo: Aprendemos que mensagens são uma forma de os jogadores dizerem o que estão fazendo, para que seus clones reproduzam seus passos. Cada constante tem um valor inalterável e identifica uma mensagem.

Envio de mensagens

- Cliente para cliente:
Vantagens: a conexão é mais rápida, a programação é mais simples.
Desvantagens: só podem jogar duas pessoas o mesmo jogo.

- Cliente para servidor para cliente:
Vantagens: mais controlável (pode ter moderadores), mais jogadores.
Desvantagens: conexão mais lenta, programação mais complexa.

Tópico atualizado.

Vamos ver algumas informações sobre a 39dll.

Criador: Luke Graham
Detalhes: Por ser a melhor e mais rápida do gênero, a 39dll é altamente recomendada para a criação de jogos online no Game Maker.
Página: http://gmc.yoyogames.com/index.php?showtopic=90437

Agora, vamos ver como ela funciona.

Existem diferentes tipos de dados que podem ser enviados. Sendo os mais comuns:
Byte (0 a 255)
Short (-32768 a +32767) 2 bytes
Unsigned Short (0 a 65535) 2 bytes
Integer (-2147483648 a +2147483647) 4 bytes
Unsigned Integer (0 a +4294967295) 4 bytes
Float (-2147483648 a +2147483647) Incluindo números quebrados.
Double (-9223372036854775808 a +9223372036854775807) Incluindo float.
Character ('A', 'b', 'c', 'D', '8', '1')
String ('ABC', 'Meu nome', 'Game Maker', 'senha123')

Cuidado ao fazer essa escolha.

Vamos a um exemplo. Se você tiver um limite de download de 128 KB/s, você pode baixar 131072 B/s. Agora pense que, por exagero do programador, cada player mande 50 bytes por step, com 60 step/s isso totaliza 3000 B/s. Você poderia ter no máximo 40 players rodando. Com certeza, nesse caso você teria lentidão, pois a sua conexão ficaria sobrecarregada. Isso sem considerar que você navegasse na internet.

No próximo tutorial já iremos ver como criar um sistema de cadastro e outro de movimento.


Última edição por Pedrø em Sex 23 Dez 2011, 17:31, editado 1 vez(es)

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por fonetico em Sex 23 Dez 2011, 15:49

Ótimo Pedro. Daqui há alguns meses eu estava com um planejamento para um jogo online porque quero definir minha carreira (administração ou programação) e o GM é o meu primeiro passo. Suas aulas vão dar um pé na roda.

Só uma pergunta: Que tipo de sistema você vai usar pra implantar? mplay ou 39 dll?

E outra: Usando o mplay, ainda é possívvel estabelecer conexão com outro computador nos dias de hoje com firewalls e talz? Teria que usar um hamachi e fazer uma rede local?

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por Mr.Brum em Sex 23 Dez 2011, 15:50

Excelente tuto.
Mas acredito eu que seje possível enviar mensagens: clientexcliente ,com mais de 2players.E assim dividiria a carga do server.
A desvantagem, é que haveriam muito mais comunicação, do que o outro modo, que é o serverxcliente,o que poderia deixar o jogo mais lento para o player..

Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por fonetico em Sex 23 Dez 2011, 15:53

mrbrum22 escreveu:Excelente tuto.
Mas acredito eu que seje possível enviar mensagens: clientexcliente ,com mais de 2players.E assim dividiria a carga do server.
A desvantagem, é que haveriam muito mais comunicação, do que o outro modo, que é o serverxcliente,o que poderia deixar o jogo mais lento para o player..

Eu tinha uma idéia parecida Razz Tipo, uma conexão direta com o servidor, ai o servidor direcionava vc para outro player e a conexão ficava entre os dois apenas, ai depois que um "ganhasse" a informação voltava para o servidor, sem sobrecarregá-lo... O problema é que é mais fácil burlar o sistema ...

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por Mr.Brum em Sex 23 Dez 2011, 16:04

@fonetico: Realmente.
Eu já fiz um jogo online no gm, usando a 39dll e muitos tutos da net.
Porém, deu pra perceber como fica lento o servidor caseiro.
Por isso, passei a pensar em jogos online,onde o player loga no server,e depois toda a comunicação do jogo passa a ser entre Players.
Seguro,não é, mas para quem não tem um server dedicado, seria a melhor saída.
A minha birutice idéia vai mais além, pois eu queria fazer a comunicação Playerxserver inicial através de html e php,pra hospedar o server em forma de site.
Ainda não fiz experimentos,preciso elaborar um plano ainda.
Mas seria algo realmente interessante.




Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por PedroX em Sex 23 Dez 2011, 17:33


Só uma pergunta: Que tipo de sistema você vai usar pra implantar? mplay ou 39 dll?

E outra: Usando o mplay, ainda é possível estabelecer conexão com outro computador nos dias de hoje com firewalls e talz? Teria que usar um hamachi e fazer uma rede local?
Vou usar a 39DLL, por ser bem mais rápida.
Acredito que é possivel sim, pois o firewall vai perguntar se você aceita, aí é só confirmar.

Estou escrevendo a segunda parte. Espero não demorar muito para terminar a série toda. Estou pensando em fazer também um arquivo de ajuda (help), para facilitar mais ainda. E vou fazer scripts para facilitar as coisas. Mas tudo isso depois dos tutoriais.

Tópico atualizado.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por irlansn em Dom 05 Fev 2012, 23:18

Num vale, estava desenvolvendo a mesma ideia computador ! kkkkkk...
Eu já tava até testando a engine: prova! Se quiser ajuda estou a disposição! Happy Rolling Eyes


Bom, ficou muito Bom! feliz2

EDITE:
mrbrum22 escreveu:Excelente tuto.
Mas acredito eu que seje possível enviar mensagens: clientexcliente ,com mais de 2players.E assim dividiria a carga do server.
A desvantagem, é que haveriam muito mais comunicação, do que o outro modo, que é o serverxcliente,o que poderia deixar o jogo mais lento para o player..
Nunca se deve ter uma conexão cliente X cliente, e por vários motivos:
  1. Um deles terá que precisa organizar os códigos e enviar para os outros jogadores! O que seria a função do server, mas qual? E se o escolhido ficar off, todos os outros terão que sair do jogo?
  2. Mensagens de cliente para cliente provocaram uma enorme confusão nas mensagens:

  3. A internet de qualquer pessoa é muito mais potente recebendo do que enviando dados uma conexão cliente X cliente fará com que os clientes enviem mensagens muito mais do que enviarião em uma conexão cliente X server. Por isso o server tem que ser um computador de alta potencia e uma boa banda larga!
  4. Em resumo uma conexão cliente X cliente provocaria lags com muito mais facilidade do que uma conexão cliente X server!

Não é recomendado e os códigos seriam diferentes, mas da sim para fazer uma conexão cliente X cliente, é bem alertar que nesse caso não seria cliente X cliente e sim Server X Server, pois todos passariam a ser serves!

irlansn

Ranking : Nota C
Número de Mensagens : 482
Idade : 18
Data de inscrição : 18/01/2011
Notas recebidas : B+D
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Jogos Online

Mensagem por Conteúdo patrocinado Hoje à(s) 06:04


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum