Criando um jogo Multiplayer Online
Criado por: Claudio Bruno
Game Maker: 6.1 (Ou superior)
Nível de experiência: Avançado
Descrição:
A algum tempo venho pensando em criar jogos multiplayer online,
mas acabei não criando por preguiça. E então o Near criou o jogo online dele,
e então tive vontade de fazer.
No início, usava a dll 39dll.dll, e não conseguia me conectar..
Então, vi que o Near usava o mplay, e nenhuma dll (calma, não decompilei o programa dele, apenas vi que não tinha nenhuma dll xD), então, resolvi estudar o help do gm e criar meu próprio jogo multiplayer online.
Em apenas 1 dia e meio de estudo, criei meu primeiro jogo multiplayer online.
E venho aqui, mostrar passo-a-passo como vocês criar seus próprios jogos online.
Aviso! O multiplayer online que consigo fazer até agora, é para duas pessoas, tentarei dar possibilidades infinitas de jogadores em breve.
1 - Estabelecendo uma conexão
Bom, eu uso a conexão TCP/IP, então ensinarei como se conectar com ela.
Primeiro crie um objeto chamado obj_conectar, adicione o seguinte código no evento Create:
ir para a próxima room, caso contrário, dê erro na conexão.
Pronto, a conexão já foi estabelecida.
2 - Criando uma sessão
Para jogos multiplayer online, são necessárias sessões (pelo menos no gm eh assim oO').
O dono do IP, servirá como um servidor, ou seja, abrindo uma nova sessão, para outros jogarem com você, você irá precisar enviar seu endereço IP para essas pessoas.
Então, irei dizer aqui como criar uma sessão e entrar numa sessão já existente.
Criando uma nova sessão
Para criar uma nova sessão, crie um objeto chamado obj_novasessao, e adicione uma sprite a ele, adicione o seguinte código ao evento Mouse Left Pressed:
e crie a sessão. Caso não dê para criar essa sessão por algum erro ocorrido,
a mensagem de erro será exibida.
Explicando o código:
Para entrar em uma sessão criada por um amigo, iremos checar se existe
essa sessão, e então entrar nela, caso contrário, exibir uma mensagem de erro, crie um objeto chamado obj_entrarsessao e digite o seguinte codigo no evento Mouse Left Pressed:
e se ela existir, entrar no jogo com o nome da variável "global.nome".
3 - Enviando mensagens
Bom, sua conexão já está estabelecida, e já dá para criar ou entrar em alguma sessão, o que iremos fazer agora, é enviar mensagens.
-Como assim, mensagens?
É isso mesmo, mensagens.
Tudo o que se faz na sua tela, tem que aparecer na tela do outro jogador,
e essas informações são as mensagens. Por exemplo, a posição X e Y do player 1, tem que aparecer para o player 2, e para isso, a mensagem do X e Y do player 1 é enviada para o player 2.
Iremos criar 2 players com a mesma sprite, crie um círculo simples apenas para testes, 1 terá o movimento que você irá programar (Pode ser movimento RPG, plataforma, etc...), e o 2, será um objeto sem ações, para que as ações do player 2 no outro computador, sejam reproduzidas nele.
Bom, irei programar um movimento simples no obj_player1, então, adicione isso no evento Step:
Agora iremos enviar a mensagem da posição do player 1 para o player 2, adicione no evento Step também:
Adicione isso no evento Create:
essa variável identifica o número de identificação de cada mensagem, a variável "val" identifica o valor de cada mensagem.
Veja a parte:
if (messid == 1) obj_player2.x=val;
if (messid == 2) obj_player2.y=val;
Lá em cima, você viu o envio das mensagens, o número 1 corresponde ao X do player 1, e o 2 correspondo ao Y do player 1. Os seus movimentos no seu computador, corresponde aos movimentos do player 2 no computador de seu amigo, ou seja, o que você fizer aqui como player 1, aparecerá lá como player 2.
Lembrando, que apenas a sua posição X e Y está sendo enviada para o outro jogador, caso você mude de sprite, deverá enviar a mensagem da sua sprite atual, é a mesma coisa do X e do Y:
By Froidz.
Pronto! terminamos pessoal, espero que tenham entendido como criar seu jogo Multiplayer Online.
Esse tutorial é original feito por mim, tive um certo trabalho para concluír o teste online, embora tenha feito em menos de 2 dias, não tinha conhecimento e aprendi, e espero que caso forem publicar esse tutorial em outros sites, apenas coloque os devidos créditos.
Criado por: Claudio Bruno
Game Maker: 6.1 (Ou superior)
Nível de experiência: Avançado
Descrição:
A algum tempo venho pensando em criar jogos multiplayer online,
mas acabei não criando por preguiça. E então o Near criou o jogo online dele,
e então tive vontade de fazer.
No início, usava a dll 39dll.dll, e não conseguia me conectar..
Então, vi que o Near usava o mplay, e nenhuma dll (calma, não decompilei o programa dele, apenas vi que não tinha nenhuma dll xD), então, resolvi estudar o help do gm e criar meu próprio jogo multiplayer online.
Em apenas 1 dia e meio de estudo, criei meu primeiro jogo multiplayer online.
E venho aqui, mostrar passo-a-passo como vocês criar seus próprios jogos online.
Aviso! O multiplayer online que consigo fazer até agora, é para duas pessoas, tentarei dar possibilidades infinitas de jogadores em breve.
1 - Estabelecendo uma conexão
Bom, eu uso a conexão TCP/IP, então ensinarei como se conectar com ela.
Primeiro crie um objeto chamado obj_conectar, adicione o seguinte código no evento Create:
- Código:
if !mplay_init_tcpip("Meu IP")
{
show_message("Erro na conexão")
game_end();
}
ir para a próxima room, caso contrário, dê erro na conexão.
Pronto, a conexão já foi estabelecida.
2 - Criando uma sessão
Para jogos multiplayer online, são necessárias sessões (pelo menos no gm eh assim oO').
O dono do IP, servirá como um servidor, ou seja, abrindo uma nova sessão, para outros jogarem com você, você irá precisar enviar seu endereço IP para essas pessoas.
Então, irei dizer aqui como criar uma sessão e entrar numa sessão já existente.
Criando uma nova sessão
Para criar uma nova sessão, crie um objeto chamado obj_novasessao, e adicione uma sprite a ele, adicione o seguinte código ao evento Mouse Left Pressed:
- Código:
global.nome = get_string("Seu nome:","")
if mplay_session_create('',2,global.nome)
{
room_goto_next();
}
else
{
show_message("Erro ao criar uma nova sessão.")
}
e crie a sessão. Caso não dê para criar essa sessão por algum erro ocorrido,
a mensagem de erro será exibida.
Explicando o código:
- Código:
mplay_session_create = Código para criar uma nova sessão
'' = aqui seria o nome da sessão, deixe em branco
2 = número de identificação do jogador
global.nome = variável do seu nome
Para entrar em uma sessão criada por um amigo, iremos checar se existe
essa sessão, e então entrar nela, caso contrário, exibir uma mensagem de erro, crie um objeto chamado obj_entrarsessao e digite o seguinte codigo no evento Mouse Left Pressed:
- Código:
global.nome=get_string("Seu nome:","")
if mplay_session_find()>0
{
if mplay_session_join(0,global.nome)
{
room_goto_next();
}
else
{
show_message("Erro ao entrar no jogo.")
}
}
else
{
show_message("Não há sessões disponíveis.")
}
e se ela existir, entrar no jogo com o nome da variável "global.nome".
3 - Enviando mensagens
Bom, sua conexão já está estabelecida, e já dá para criar ou entrar em alguma sessão, o que iremos fazer agora, é enviar mensagens.
-Como assim, mensagens?
É isso mesmo, mensagens.
Tudo o que se faz na sua tela, tem que aparecer na tela do outro jogador,
e essas informações são as mensagens. Por exemplo, a posição X e Y do player 1, tem que aparecer para o player 2, e para isso, a mensagem do X e Y do player 1 é enviada para o player 2.
Iremos criar 2 players com a mesma sprite, crie um círculo simples apenas para testes, 1 terá o movimento que você irá programar (Pode ser movimento RPG, plataforma, etc...), e o 2, será um objeto sem ações, para que as ações do player 2 no outro computador, sejam reproduzidas nele.
Bom, irei programar um movimento simples no obj_player1, então, adicione isso no evento Step:
- Código:
if keyboard_check(vk_up) then y-=4
if keyboard_check(vk_down) then y =4
if keyboard_check(vk_left) then x-=4
if keyboard_check(vk_right) then x =4
Agora iremos enviar a mensagem da posição do player 1 para o player 2, adicione no evento Step também:
- Código:
mplay_message_send(0,1,x)
mplay_message_send(0,2,y)
- Código:
mplay_message_send = Código para o envio de mensagens
0 = Número do jogador
1 = Número de identificação da mensagem (Explicarei mais tarde)
x = Valor da mensagem, isso é o que será enviado para o outro jogador, a mesma coisa do Y, enviando o X e o Y, é enviada a posição exata do player 1.
Adicione isso no evento Create:
- Código:
mplay_data_mode(true);
- Código:
//Lendo mensagens
{
while (mplay_message_receive(0))
{
messid = mplay_message_id();
val = mplay_message_value();
// Checando mensagens
if (messid == 1) obj_player2.x=val;
if (messid == 2) obj_player2.y=val;
}
}
essa variável identifica o número de identificação de cada mensagem, a variável "val" identifica o valor de cada mensagem.
Veja a parte:
if (messid == 1) obj_player2.x=val;
if (messid == 2) obj_player2.y=val;
Lá em cima, você viu o envio das mensagens, o número 1 corresponde ao X do player 1, e o 2 correspondo ao Y do player 1. Os seus movimentos no seu computador, corresponde aos movimentos do player 2 no computador de seu amigo, ou seja, o que você fizer aqui como player 1, aparecerá lá como player 2.
Lembrando, que apenas a sua posição X e Y está sendo enviada para o outro jogador, caso você mude de sprite, deverá enviar a mensagem da sua sprite atual, é a mesma coisa do X e do Y:
- Código:
mplay_message_send(0,3,sprite_index)
- Código:
if (messid == 3) obj_player2.sprite_index=val;
By Froidz.
Pronto! terminamos pessoal, espero que tenham entendido como criar seu jogo Multiplayer Online.
Esse tutorial é original feito por mim, tive um certo trabalho para concluír o teste online, embora tenha feito em menos de 2 dias, não tinha conhecimento e aprendi, e espero que caso forem publicar esse tutorial em outros sites, apenas coloque os devidos créditos.