GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Rede entre pc

2 participantes

Ir para baixo

Rede entre pc Empty Rede entre pc

Mensagem por Dnmaster2 Ter 01 Jun 2010, 16:46

ola eu queria fazer um jogo em rede e vi este tutorial mas não consegui fazer.. não consigo entrar na mesma sessão que um amigo meu que posso fazer ?

Obrigado


Código:
Criando um jogo Multiplayer Online

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();
}
_______________________________________________________________________________

O código acima, faz com que caso a conexão com seu IP seja estabelecida,
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.

2.1- 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.")
}
_______________________________________________________________________________
No código acima, faz com que você digite seu nome,
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:


Citação
_______________________________________________________________________________
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
_______________________________________________________________________________

2.2- Entrar numa sessão já existente

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.")
}
_______________________________________________________________________________
O código "mplay_session_find()>0" checa se há alguma sessão,
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
_______________________________________________________________________________
Bom, pelo que você pode ver, ele só trabalha com movimento simples, de apenas 8 direções.

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)
_______________________________________________________________________________

Explicação:

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.
_______________________________________________________________________________

Agora, essa mensagem foi enviada para o outro jogador, então, o que iremos fazer agora, é "reproduzir" essa mensagem. Crie um objeto chamado "obj_controlador", ele irá controlar as mensagens do jogo.

Adicione isso no evento Create:


Código:
_______________________________________________________________________________
mplay_data_mode(true);
_______________________________________________________________________________


Adicione um evento Step nele e escreva:

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;
  }
}
_______________________________________________________________________________
Bom, aqui é simples, irei explicar apenas a parte da variável "messid" e a "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)
_______________________________________________________________________________
E então, no controlador:


Código:
_______________________________________________________________________________
if (messid == 3) obj_player2.sprite_index=val;
_______________________________________________________________________________

--------------------------------------------------------------------------------
Obs: Adicione os objetos obj_conectar, obj_novasessao e obj_entrarsessao na primeira room do jogo, o objeto obj_controlador e os dois jogadores adicione na segunda room do jogo.
Dnmaster2
Dnmaster2

Data de inscrição : 18/04/2009
Reputação : 0
Número de Mensagens : 104
Prêmios : Rede entre pc Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Rede entre pc Empty Re: Rede entre pc

Mensagem por Convidad Ter 01 Jun 2010, 16:57

muito bom esta tutorial Very Happy

Editado por Mystery_boy_maker

Você ja havia sido alertado por fazer posts assim, posts como muito bom , parabens são considerados floods, tente abordar assuntos especificos quando for postar seria de mais ajuda para o autor do tópico. Avisado
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Rede entre pc Empty Re: Rede entre pc

Mensagem por Dnmaster2 Qua 02 Jun 2010, 06:18

-.- este tutorial não é meu ... ( tava no forum ) mas eu queria se alguem me ajuda-se pois não consigo fazer o jogo em rede
Dnmaster2
Dnmaster2

Data de inscrição : 18/04/2009
Reputação : 0
Número de Mensagens : 104
Prêmios : Rede entre pc Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Rede entre pc Empty Re: Rede entre pc

Mensagem por O Isaque Qua 02 Jun 2010, 09:51

muito bom Dnmaster2

EDIT por rafasgb:
Você ja havia sido avisado por fazer posts assim, posts como "muito bom" , parabens são considerados floods, tente abordar assuntos especificos quando for postar seria de mais ajuda para o autor do tópico. Alertado.
O Isaque
O Isaque

Data de inscrição : 01/06/2010
Reputação : 0
Número de Mensagens : 74
Prêmios : Rede entre pc Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Rede entre pc Empty Re: Rede entre pc

Mensagem por Dnmaster2 Qui 03 Jun 2010, 08:11

????
Dnmaster2
Dnmaster2

Data de inscrição : 18/04/2009
Reputação : 0
Número de Mensagens : 104
Prêmios : Rede entre pc Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Rede entre pc Empty Re: Rede entre pc

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos