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 : 24
    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 : 18
    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 : 18
    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 : 18
    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 : 18
    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:


    E Patoki, no fim de cada tópico há um campo de resposta rápida, e em cima tem alguns icones como do smileis, clique nele e aparecerá vários para vc escolher, e se quizer responder completamente clique em Responder, é fácil :D
    avatar
    Cardume
    Membro
    Membro

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

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

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 31 Jul - 13:51

    dei uma olhada nos foruns e descobri que tem que fazer o download do game maker no yoyo games.
    avatar
    Cardume
    Membro
    Membro

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

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

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 31 Jul - 13:51

    foi vc quem criou esse forum rodrigo?
    avatar
    Cardume
    Membro
    Membro

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

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

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 31 Jul - 13:52

    a unica coisa que não sei criar é jogo que raiva :x
    avatar
    Cardume
    Membro
    Membro

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

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

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sex 31 Jul - 14:45

    agora to aprendendo. :cheers:
    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 Dom 2 Ago - 13:44

    Donte, cuidado com o numero de post seguidos que vc manda, se vc ver vc fez 4 post seguidos, irei te punir, leia as regras, o fórum foi criado por mim mesmo, e apoio de todos nossos membros que ajudam a manter ele, inclusive vc tambem, é só ler as regras correto What a Face
    avatar
    Cardume
    Membro
    Membro

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

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

    Re: Criando um jogo Multiplayer Online

    Mensagem por Cardume em Sab 16 Jan - 19:45

    rodrigo agora que ja evolui mais quero criar um jogo de guerra vermelho vs azul multiplayer mais não consegui fazer a variavel do messid me explica como é esse negocio de variaveis
    avatar
    ArandyIlhay
    Ocasional
    Ocasional

    Masculino
    Idade : 16
    Número de Mensagens : 325
    Advertencias : 0%

    Habilidade :
    Reputação Reputação : 1

    Re: Criando um jogo Multiplayer Online

    Mensagem por ArandyIlhay em Dom 25 Abr - 8:42

    legal rodrigo ajudou muito eu com meu projeto atual.
    avatar
    falbo
    Novato
    Novato

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

    Habilidade :
    Reputação Reputação : 0

    Re: Criando um jogo Multiplayer Online

    Mensagem por falbo em Qui 20 Maio - 22:43

    Desculpe de estar revivendo o tópico, mais estou com um grande problema.
    Tipoi fiz tudo igual ae.Consigo fazer a conexão no meu pc com o mesmo executavel.
    Mas quando coloco o executavel em 2 pcs diferentes o server entra tranquilo, mais o cliente não consegui conectar ae servidor e eu coloco o mesmo ip.
    Acho q o problema e no
    Código:
    mplay_session_find ()
    porque não passa dai.
    Espero que me ajudem! =D
    Abraços
    avatar
    S erre. Matt
    Novato
    Novato

    Masculino
    Número de Mensagens : 1
    Advertencias : 0%

    Reputação Reputação : 0

    Re: Criando um jogo Multiplayer Online

    Mensagem por S erre. Matt em Seg 17 Jan - 19:53

    Tuto bom, eu soh tava querendo saber como o player 2 vai se mexer. É só eu da as funções? ou oq?
    avatar
    lixiaodong
    Novato
    Novato

    Feminino
    Idade : 28
    Número de Mensagens : 4
    Advertencias : 0%

    Habilidade :
    Reputação Reputação : 0

    Re: Criando um jogo Multiplayer Online

    Mensagem por lixiaodong em Qui 7 Jul - 21:40

    Apexis network camera campaign in Brazil
    --2,011 Shenzhen World University Games, the wonderful scene how can you miss?
    Apexis is a professional IP Camera company with strong R & D team, production and sales. Our mission is defending the human life safety, building a harmonious world. We participate in national public security division in positive, obtain a good reputation ,stand at the core of the industry.
    2008 Beijing Olympic Games, 2010 Shanghai World Expo 2010 Guangzhou Asian Games has been passed with exciting cheers, 2011 Shenzhen Universidad is going to show a different China in the cool summer, APEXIS network cameras will monitor the Universidad safely, welcome to China and view the Universidad, see the world.
    1、Time:
    June 22, 2011 - July 20, 2011
    2、The Activities:
    (1) Send your own creativity through the Internet to publicize apexis company information, product information and investment information.
    (2) Download the desired text and pictures for promotion from apexis website http://www.apexis.com.cn
    3、The Awards Criteria:
    (1) Each participant should compile the entire design proposal in Excel spreadsheet before the deadline and send to apexisdesigner3@hotmail.com; such as: site name, website, user name, password, and notes;
    (2) July 20 2011, all the Excel spreadsheet and participant’s contact information should be sent to apexis designated mailbox;
    (3) Awards base on the amount and effectiveness of information for promotion;
    (4) Award belongs to the top 10 of participants.
    4、Awards:
    (1) Two tickets for Shenzhen Universidad Games, included all the fee of room and board during the Universidad provided by the apexis;
    (2)The most popular gift of a network camera which is model APM-J011-WS.
    (3 10pcs APM-J011-WS for the person who will not come to china and attend Universidad.
    5、Award-winning results:
    Winners will be informed through email directly, Be sure to fill out personal information accurately.
    6、Contact us:
    Website: http://www.apexis.com.cn
    E_mail: apexisdesigner3@hotmail.com
    Shenzhen Apexis Electronics Co., Ltd.
    June 22, 2011

    Friendly the Brazilian , Action with your wisdom , The Universiade is waiting for you !

    Conteúdo patrocinado

    Re: Criando um jogo Multiplayer Online

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui 14 Dez - 18:51