Conectar-se
Quem está conectado
32 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 31 Visitantes

PedroX

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 08/05/2008
Número de Mensagens : 36
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.deploy.net.br

Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Seg 02 Fev 2009, 14:06
Na Aula anterior eu falei sobre Listeners e Clients, Objetos que são a base de todo Game On-line.
O GM por padrão possui uma Engine de Comunicação TCP, porém não iremos usá-la, por ser muito básica, pesada demais e não funcionar “Behind Router”. Todos os termos desconhecidos serão explicados no decorrer do curso.
Usaremos como base para nossos testes e exemplos de comunicação TCP a SOC – Simple Online Communication.
De todas as Dlls de comunicação TPC ela é a mais simples de usar, a mais rápida em comunicação e o principal, funciona tanto UDP (intranet) quanto TCP Behind Router.
A primeira coisa a fazer é baixar os scripts Fonte, a dll e o Directserver, Aqui.

Ao terminar o Download, crie um novo projeto no GM. Crie uma pasta para ele, e chame-o de Client. Dentro da pasta onde salvou o projeto, coloque a soc.dll.
Volte ao projeto. Clique no menu Scripts -> Import Scripts como mostra a figura abaixo:

Selecione o arquivo socAll.gml
Ao finalizar, seu diretório de scripts estará assim:

Usaremos este primeiro teste como exemplo para todas as próximas lições então, lembre-se, os passos acima são os iniciais SEMPRE que começar um novo projeto On-line no GM.

Para efetuarmos um primeiro teste, não criaremos o Listener.
Usaremos o Directserver, um Listener Básico que vem com o soc.dll para testes de comunicação.
A primeira coisa a fazer é iniciar o Directserver. Ao iniciá-lo, ele pergunta qual porta ele deve “escutar”.
Digite 8040 e pressione Enter.
Ele perguntará se ele deve mostrar as mensagens recebidas, aperte Y e pressione Enter.
Ao fazer isso a primeira vez, o Firewall do Windows pedirá permissão para desbloquear a porta para o aplicativo. Desbloqueie. Observe a figura abaixo:

Pronto. Qualquer comunicação TCP que chegar à porta 8040 agora será “escutada” pelo Directserver.
Vamos fazer um teste??
Crie um Objeto, Chame-o de objStart. Adicione um Evento Create, e nele um Execute a Piece of Code. Neste Execute, adicione as seguintes linhas:
Código:
//Iniciando o Socket
soc_init();
//Conectando ao servidor
if (!player_connect(8040, "localhost")) {
    show_message("Falha ao Conectar no servidor.")
    soc_free();
    game_end();
}
Mas o que fizemos aqui??
Antes de mais nada iniciamos a dll. Na verificação abaixo, aguardamos um retorno verdadeiro da função de conexão, onde passamos como parâmetro a porta selecionada no directserver e o nome LocalHost. Se você já fez algum jogo Online, sabe que LocalHost significa sua máquina Local, ou seja, não há necessidade de se colocar um IP.
Agora sim. Crie uma room, coloque o objStart nela e execute o jogo. Se foi tudo feito como foi falado aqui, seu DirectServer deve mostrar a seguinte mensagem:

Observe que ele está mostrando o IP como 127.0.0.1. Este é o IP interno padrão de todo computador, Podemos usar tanto ele, quanto LocalHost quanto o nome da máquina.
Ao fechar o jogo, o DirectServer mostrará a seguinte mensagem:

Bom. De ínício, vimos que não é tão “complexo” iniciar a Dll e os scripts do SOC.
Não criamos o servidor pois usamos um padrão e, de cara, não fizemos nada além de ver o servidor dizer que estávamos conectados(e como Player 2 ainda... Mas onde está o Player 1??) mas demos um grande passo.

Eu configurei os scripts para facilitar a sua vida inicialmente, o script padrão que vem é bem mais complexo, usando a dll fora da pasta do jogo, usando constantes e outras chatices.

Bem, começamos... Vamos tentar não parar no meio do caminho agora.

Na próxima lição, vamos construir um Client de chat Simples, ainda usando o DirectServer como Servidor.

Até lá.


Última edição por joaoneto em Qua 04 Fev 2009, 14:14, editado 1 vez(es)
avatar
Data de inscrição : 16/01/2009
Número de Mensagens : 44
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Ter 03 Fev 2009, 01:54
até agora simples Happy só tenho que ler todos esses scripts importados, se naum num vou entender o que eles fazem só pelo nome, nem PN Happy

vlws, *CONTINUANDO O TUTO
avatar
Data de inscrição : 01/06/2008
Número de Mensagens : 1015
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://supermariobrasileiro.blogspot.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Dom 22 Fev 2009, 11:45
Excelente! A tempos esperava algum tutorial que ensinasse a usar a SOC, sempre quis aprender.

Agora, estou testando para ver se ela mostra resultados no Game Maker 5.3. Embora seja improvável, pode aconter, não é?
Boa sorte com as aulas.
avatar
Data de inscrição : 09/07/2008
Número de Mensagens : 103
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.studio-natch.forumeiros.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Sex 17 Abr 2009, 17:27
Meu deus... VOCE É O REI! xD
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 29/03/2009
Número de Mensagens : 927
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 6

Prêmios
   :
   : 1
   :
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Dom 17 Maio 2009, 21:08
cara seu código ra exelenteee!!!!!!!
mais desculpa por reviver o tópico mais eu testei e o chat só funsionava para quem estava no meu pc quem naum estava naum podia falar nele Sad
então eu tava pensando tem comofaser um chat por ip?
tipo no inicio do game ele pergunta teu ip ai se responde e o chat ja esta funsionando!!!!!!!
é possivel???
avatar
Data de inscrição : 05/06/2008
Número de Mensagens : 501
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuáriohttp://studionatch.com.sapo.pt/

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Qua 02 Set 2009, 00:50
Desculpa por reviver o tópico, mas essa aula esta óptima...
parabéns...
avatar
Data de inscrição : 21/02/2009
Número de Mensagens : 669
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Qui 14 Jan 2010, 19:32
Deu um erro kra,ta excrito:

ERROR in
action number 1
of Create Event
for object objStart:

Error defining an external function.

Oque pode ser?
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 16/11/2009
Número de Mensagens : 203
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.areaonze.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Qui 14 Jan 2010, 20:13
doidobr escreveu:Deu um erro kra,ta excrito:

ERROR in
action number 1
of Create Event
for object objStart:

Error defining an external function.

Oque pode ser?

Por coincidencia eu estava estudando esse tutorial ontem.

JN PARABÉNS!!!!!!!!!!! MUITO BOM. ÓTIMO! FÁCIL DE ENTENDER! SIMPLESMENTE FODA.

Mas voltando... esse erro dá quando a soc.dll naum está na "mesma pasta" que o arquivo. Entaum pra testar tem que criar o executável ter certeza de a dll estar na mesma pasta.

Ah! E alguem ai perguntou se dá pra pessoas de computadores diferentes se comunicarem. Acho que ele nem lembra que perguntou, foi em maio, mas pode ajudar alguém... Dá sim. Mas uma das pessoas tem que "criar" o servidor (listener) no seu PC.

-Primeiro troca:

Código:
//Iniciando o Socket
soc_init();
//Conectando ao servidor
if (!player_connect(8040, "localhost")) {
    show_message("Falha ao Conectar no servidor.")
    soc_free();
    game_end();
}

[Foi mal JN mas eu mudei um negócio aki. Todos os créditos são do JN, dã.]

- Por:
Código:
//Iniciando o Socket
soc_init();
//Conectando ao servidor
if (!player_connect(8040,get_string('Digite o IP de um Listener válido.','127.0.0.1'))) {
    show_message("Falha ao Conectar no servidor.")
    soc_free();
    game_end();
}

1- Abre o DirectServer e coloca porta "8040" e "y" .
2 - Quando pedir o IP. Quem criou o listener no próprio PC coloca "localhost" ou "127.0.0.1" => IP local. ou só aperta OK (já tá lá o IP local)
3 - E o(s) cara(s) que naum criou(aram) o Listener (DirectServer) devem colocar o IP de quem criou.

Dá certo. Conversei com um colega do RIO perfeitamente!

Spoiler:
Foi mal re-rescussitar, mas naum poderia deixar de responder...
avatar
Data de inscrição : 12/02/2010
Número de Mensagens : 1
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Sex 12 Fev 2010, 22:22
Muito bom mesmo esta de parabens kara eu posso coloca at xae irado mesmo
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 39
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Seg 08 Mar 2010, 20:26
bora tem muito gostei
o que e esse projeto ??????????
avatar
Data de inscrição : 25/07/2010
Número de Mensagens : 218
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Sab 18 Set 2010, 22:30
Esse é um dos melhores tutiriais que achei no GM br
avatar
Data de inscrição : 01/11/2010
Número de Mensagens : 2
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Seg 01 Nov 2010, 11:33
Cara eu queria saber se o GM v7.0 também funciona, porque o GM 6 eu não consigo baixar pelo teu link e sempre quando eu baixo de outros lugares da problema na hora de abri ele.
avatar
Data de inscrição : 01/11/2010
Número de Mensagens : 2
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Seg 01 Nov 2010, 11:59
o galera. masi uma pergunta. O Game Maker v6.1 roda no windows vista?


Aguardo resposta e parabéns pelo tutorial.
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Número de Mensagens : 854
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.google.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Qua 10 Nov 2010, 22:28
cara tou usano gmk 8.0 serve?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Qua 10 Nov 2010, 22:40
Tem que ser o Pro, não adianta ser só o 8.0
avatar
Data de inscrição : 07/11/2010
Número de Mensagens : 153
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuáriohttp://socialbook.grouply.com/

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Dom 14 Nov 2010, 14:22
Eu troquei o localhost pelo ip do meu Hamachi e testei no outro computador e deu esse erro:

ERROR in
action number 1
of Create Event
for object ObjStart:

Error defining an external function

Algo assim,por que?
avatar
Data de inscrição : 02/10/2009
Número de Mensagens : 2227
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Dom 14 Nov 2010, 14:56
Porque o outro computador tem que estar com a DLL tb
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Número de Mensagens : 854
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.google.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Ter 23 Nov 2010, 20:36
The Games Never Finish... escreveu:Tem que ser o Pro, não adianta ser só o 8.0
Eu uso!Axei num link loko la e baixei.
avatar
Data de inscrição : 25/09/2011
Número de Mensagens : 9
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp:// geison-gamedesign.blogspot.com

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Sab 01 Out 2011, 03:52
Olá senhor
Quando fui baixar o material mencionado no início deste post fui parar no 4shared.Baixei e não venho nenhum material.O que faço???
avatar
Data de inscrição : 16/12/2011
Número de Mensagens : 2
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Curso GM Online - 2º Lição - Primeiro teste Client/Listener

em Sab 17 Dez 2011, 00:07
Joao neto nao consigo baixar o directserver,soc.dll e nem os scripts fontes.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum