Criando um jogo Multiplayer Online

    Compartilhe
    avatar
    rodrigo1434
    Admin
    Admin

    Masculino
    Idade : 24
    Número de Mensagens : 782
    Advertencias : 0%

    Reputação Reputação : 14

    Criando um jogo Multiplayer Online

    Mensagem por rodrigo1434 em Qua 31 Dez - 11:42

    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:
    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.
    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:
    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
    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)
    Bom, irei explicar:
    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.
    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.
    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.
    avatar
    Ilan Ramos
    Colaborador
    Colaborador

    Masculino
    Idade : 25
    Número de Mensagens : 115
    Advertencias : 0%

    Reputação Reputação : 0

    Re: Criando um jogo Multiplayer Online

    Mensagem por Ilan Ramos em Qua 31 Dez - 12:20

    Uia. Esse tutorial vai ajudar a bastante gente, inclusive a mim. 8)
    avatar
    Cardume
    Membro
    Membro

    Masculino
    Idade : 19
    Número de Mensagens : 139
    Advertencias : 25%

    Habilidade :
    Reputação Reputação : -2

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 17 Jul - 12:38

    será que dava pra ti dar o link pra baixar o obj_conectar?é que procurei e não achei.
    avatar
    rodrigo1434
    Admin
    Admin

    Masculino
    Idade : 24
    Número de Mensagens : 782
    Advertencias : 0%

    Reputação Reputação : 14

    Re: Criando um jogo Multiplayer Online

    Mensagem por rodrigo1434 em Sex 17 Jul - 19:12

    Bem, o obj_conectar não é um resouce ( sprite, background ou sounds) objetos, no caso do obj_conectar, é um objeto, e que vc cria no próprio Game Maker, é só em Add, add object, vc irá criar um objeto, renomeie para '' obj_conectar '' como descrito a cima :D
    avatar
    Cardume
    Membro
    Membro

    Masculino
    Idade : 19
    Número de Mensagens : 139
    Advertencias : 25%

    Habilidade :
    Reputação Reputação : -2

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 24 Jul - 20:45

    onde fica esse add 😕 não sei dessas coisas complpicadas :evil:
    avatar
    Cardume
    Membro
    Membro

    Masculino
    Idade : 19
    Número de Mensagens : 139
    Advertencias : 25%

    Habilidade :
    Reputação Reputação : -2

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sab 25 Jul - 14:42

    isso funciona com windows XP profissional?
    avatar
    patoki
    Novato
    Novato

    Número de Mensagens : 15
    Advertencias : 0%

    Reputação Reputação : 0

    Re: Criando um jogo Multiplayer Online

    Mensagem por patoki em Sab 25 Jul - 15:39

    Adorei o tutorial, deu-me vontade de estudar um pouco do help do GM, depois de estudar voltei aqui ao tuto para aprender a usar os comandos que aprendi >>>>>>>>>amigo, se nao sabe criar um objecto é melhor começar por tutoriais com uma maior facilidade, como ta no inicio este tuto é de avançado, eu n me considero avançado, mas tenho de começar por algum lado para 1 dia o ser, tal como voce tem que começar por tutos basicos para começar fazendo jogos mais dificeis...>>>>>>>>>Nao tou conseguindo fazer smiles nem quotes, nem paragrafos neste forum
    avatar
    Cardume
    Membro
    Membro

    Masculino
    Idade : 19
    Número de Mensagens : 139
    Advertencias : 25%

    Habilidade :
    Reputação Reputação : -2

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Dom 26 Jul - 18:04

    o resto tudo eu sei fazer só criar um objeto não.
    avatar
    rodrigo1434
    Admin
    Admin

    Masculino
    Idade : 24
    Número de Mensagens : 782
    Advertencias : 0%

    Reputação Reputação : 14

    Re: Criando um jogo Multiplayer Online

    Mensagem por rodrigo1434 em Qui 30 Jul - 12:06

    Donte procure aprender do básico primeiro, veja as coisas mais simples depois vá aperfeiçoando: