Tutorial - Como fazer um jogo multiplayer online - Parte I

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

Qualidade Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Janx em Qui 13 Jan 2011, 14:47

Tutorial – Como fazer um jogo multiplayer online
Por Janx
Parte I: Teoria

Antes de iniciar:
Antes de iniciar o tutorial propriamente dito, precisamos saber com o que estamos lidando e entender como funciona um jogo online.
A criação de um game online é muito mais complicada do que parece, um pequeno erro já pode causar diversos desastres. Não pense que você conseguirá fazer um MMORPG de sucesso de primeira. Um simples jogo de pong já é trabalhoso, um RPG massivo com centenas de jogadores online ao mesmo tempo não só exige um sistema mais complexo e poderoso como também de Banco de Dados (DB), servidor dedicado 24h com alta velocidade de conexão e largura de banda, muito trabalho e provavelmente conhecimento de outras linguagens (De programação, claro que saber inglês também ajuda muito). Então comece com projetos pequenos, ok?

Funcionamento:
Como muitos já sabem, um jogo online é baseado na troca de informações entre Client e Server. O servidor é o responsável por maior parte do trabalho, pois precisa cuidar das mensagens de todos os Clients conectados a ele e repassar as mensagens necessárias para os outros jogadores (Clients). A troca de mensagens é praticamente constante dependendo do jogo e isso pode causar lags, congestionamento e outros problemas. Por isso é necessário saber exatamente o que precisa ser atualizado constantemente e o que não precisa.

Como é feita a conexão:


O que é “download”:
Sabemos que quando estamos baixando algo estamos fazendo o “download”, correto? O download é quando você recebe pacotes/mensagens de informação. Ou seja, para baixar você usa o seu Download. Cada velocidade de conexão possui uma taxa de download e outra de upload. Pelo menos aqui no Brasil, a velocidade da conexão é dada pela velocidade de download, a velocidade de upload é muito mais baixa. Uma internet de 1mb baixa em até 128kb/s, (Divida a quantidade em KB da sua conexão por Cool, isso significa que somos capazes de receber até 128kb de informação por segundo. Não é muito, mas em um jogo isso já é suficiente, claro que existem outros programas que usam internet, então ter um pouco a mais é sempre bom para garantir um espaço.

O que é “upload”:
Upload é muito parecido com Download, mas é a capacidade de você Enviar informações, fazer “Upload”. Cada conexão também tem uma taxa de upload por segundo, mas normalmente ela é muito mais baixa que a de download (Pelo menos no Brasil. Não sei dizer como é em outros países.). Uma internet de 3mb tem upload próximo de 60kb/s. Esse valor é muito menor, se comparado que a taxa de Download de uma internet de 1mb é 128kbs, imagine quanto seria o Upload? 20kb/s? Isso já é um número muito mais baixo...

A conexão:
A conexão é feita apenas entre Client e Servidor, nunca Client – Client – Servidor.
Na imagem 1, cada computador estaria conectado a outros 2, mas isso é um exemplo pequeno, imagine que são 10 computadores, cada um estaria conectado a outros 9! A melhor forma é todos estarem conectados apenas no servidor.
Por que a 2º maneira é a melhor? Porque dessa forma, os clients devem ter uma conexão de “Upload” muito mais baixa, pois terão que enviar mensagens apenas para o servidor. Quais a chance de todos em um jogo terem bom upload para não atrasar as mensagens que ele deveria enviar para os outros usuários? Normalmente o Servidor é aquele que tem melhor taxa de upload e download, justamente porque ele pode repassar e receber muito mais mensagens ao mesmo tempo. Outro motivo para não usar o primeiro método é a segurança sobre as informações que nunca sabemos se alguém não está arranjando uma forma de mudar apenas alguns pacotes para prejudicar outra pessoa. Claro que com criptografia é mais difícil ocorrer esses problemas, mas sempre existe alguém que consegue burlar, então quanto mais segurança melhor.

Teoria básica do jogo online:
Ao conectar no servidor, ele primeiro recebe sua conexão, depois verifica por espaço no servidor e outras circunstâncias dependendo do que for necessário. Depois ele envia uma mensagem de volta para o client com informações e dados necessários para que ele possa “avançar”.
Por exemplo: Ao conectar-se em um servidor o client recebe quantos jogadores já estão conectados, qual o nick de cada um, regras de jogo e outros dados.

Mas não acaba ai, você já está conectado, sabe quem está no jogo e tem todos os dados que precisa, porém os outros jogadores ainda não sabem que você “Existe”. Então o servidor inicia outra rotina: Enviar seus dados para os outros jogadores. Muito bem, simples, não é? Bom, mas estamos esquecendo algo, ainda não enviamos os nossos dados para o servidor para que ele possa repassá-los para os demais jogadores. Ou seja, precisamos enviar nossos dados antes, para que ele saiba quem nós somos e então possa falar para os outros.

Depois disso estamos conectados. O que fazer depois? Isso depende do que está sendo feito no jogo. Digamos que seja um game que antes temos a sala de espera e depois quando a partida é iniciada vamos para o jogo. Digamos que na tela de espera você tem a opção de trocar de time. Você está no time A, mas quer passar para o B. Você simplesmente aperta um botão ou o que for necessário para mudar de time, superficialmente é assim, mas não adianta se isso só mudar para você. Ao clicar para mudar de time o jogo envia uma mensagem para o servidor avisando que você está mudando para o time X (no caso, time B). O servidor pega essa informação, “anota” e repassa para todos os demais jogadores, o jogo deles recebe a mensagem, processa e faz as alterações necessárias, assim eles podem ver que você mudou de time.
É basicamente dessa forma que são feitas as comunicações entre Client e Server, mas isso não é de forma alguma uma “Regra”, podem ser um pouco diferentes para cada caso ou preferência do programador.

Agora já temos uma idéia do que vamos fazer, pelo menos a teoria é simples, mas vamos ver que a parte prática não é tão problemática assim se você organizar bem o seu sistema.

O que vamos fazer?
A próxima e [provável] última parte do tutorial será totalmente prática e vamos fazer um simples jogo de plataforma, só para sair do padrão de um jogo de “pong” onde o limite são 2 jogadores. Vamos fazer um jogo onde várias pessoas podem se conectar ao mesmo tempo, aprenderemos a colocar um limite de jogadores e também faremos um chat! No jogo será possível andar para os lados e pular. Muito simples, apenas para mostrar o funcionamento. Não vai ser um jogo pronto e espero que ninguém simplesmente copie e adicione outras coisas só para falar que fez um jogo.


Última edição por Janx em Seg 07 Fev 2011, 18:10, editado 3 vez(es)

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por vinians em Qui 13 Jan 2011, 14:49

Ae!!! Agora sim JanX! Acho ser este o tutorial mais esperado do ano hehehheh. Muito bom ! Parabéns!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Darknex em Qui 13 Jan 2011, 14:58

isso erra exatamente o que eu precisava Happy

Darknex

Número de Mensagens : 174
Idade : 20
Data de inscrição : 08/12/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://inventaku.forumeiros.com/

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Furious God em Qui 13 Jan 2011, 15:08

uhull, é só isso que eu queria, agora simm \o/
tom ara que a próxima parte do tutorial saia logo, digo, amanhã

Furious God

Número de Mensagens : 62
Idade : 18
Data de inscrição : 10/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Mystery_boy_maker em Qui 13 Jan 2011, 15:21

Otimo tutorial Janx ta deixando tudo muito bem explicado
até um completo leigo no assunto ( eu ) entende tudo com
perfeição parabens espero a continuação ! sorrindo2

Mystery_boy_maker

Número de Mensagens : 908
Idade : 23
Data de inscrição : 25/01/2010
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por fonetico em Qui 13 Jan 2011, 15:27

Agora assim Janx! Dá pra ver que a próxima parte vai ser um show como essa também foi. Está bem explicado, tanto que eu li tudo.

Espero a próxima parte!

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

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Mr. Kaleb em Qui 13 Jan 2011, 16:02

Já que todo mundo tá ansioso, também to na espera da próxima aula.
Parabéns!

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Joker em Qui 13 Jan 2011, 20:50

Esperei di mais esse tuto feito por vc depois de ver o guerra 2 eu tava pensando si vc fizese tuto como criar um jogo online e imaginei que seria o melhor tuto....vo esperar a segunda parte Smile Laughing Laughing Laughing Laughing Laughing

Joker

Ranking : Sem avaliações
Número de Mensagens : 206
Idade : 21
Data de inscrição : 08/11/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://the-jokergames.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Gabreel em Sex 14 Jan 2011, 03:25

Ae Janz.. Continuidade plx!! Very Happy

Tipo, a média de upload varia de net pra net.. até mesmo pq as operadoras só são obrigadas a dar 20% da velocidade do plano.. ai vc já sae comé né... Aki é 2MB e faz uploads de 200 ~ 600 MB, depende do servidor que lhe envia também.. Razz

Parabens pelas explicações.. agora sim da pra intender O_O

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Janx em Sex 21 Jan 2011, 18:42

Pessoal, desculpa a demora para postar a segunda parte, está demorando um pouco mais do planejado. Houve alguns imprevistos aqui.
Estou trabalhando no tutorial. Ele está ficando comprido, estou fazendo no Word e já tem 6 páginas, mas ainda não está nem na metade. Parece que vou ter que dividir em mais 2 ou mais partes...

Postei só para falar que não desisti de fazer a continuação!

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Super Games em Sex 21 Jan 2011, 18:49

Finalmente!
Mais um tutorial de Multiplayer Online, irei segui as aulas.


Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por !!Game Play!! em Qui 21 Jun 2012, 14:29

Smile

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

Voltar ao Topo Ir em baixo

Qualidade Re: Tutorial - Como fazer um jogo multiplayer online - Parte I

Mensagem por Conteúdo patrocinado Hoje à(s) 15:59


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