Conectar-se
Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 25/02/2012
Número de Mensagens : 30
Insígnias de JAM :

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

Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 15:34
Galera estou com mais uma duvida, mas essa é bem simples... (pelo menos eu acho)
Se eu usar uma "variavel global" (global.var) em um game multiplayer, ela ira funcionar somente no jogo do fulano, ou afetara todos presentes no server ?
obs. Ainda nao estou mexendo com multiplayer, é só uma duvida mesmo Happy
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

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

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

Re: Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 15:53
Amigo com certesa, se o jogo que os players estiverem jogando for o mesmo e eles estiverem na mesma sessão, cada um vai ter o poder de mudar o valor das variaveis globais de acordo com as regras do jogo.
Data de inscrição : 25/02/2012
Número de Mensagens : 30
Insígnias de JAM :

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

Re: Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 17:29
Hmm entendi, porem sua explicação me gerou outra duvida bem complexa...
Mas uma forma resumida da minha duvida complexa é a seguinte...
Eu crio um jogo em que a primeira "room" é uma tela de login, apos o jogador se conectar com o servidor, ele ira para proxima "room" e o obj_player dele sera criado.
Eu sei que cada obj no game maker tem sua ID, e que as variaveis criadas por cada obj é distinta, porem se eu ja ouver um jogador no server e outro se conectar, o game maker ira criar o obj com o mesmo ID ou com um ID diferente para cada obj ?
(Apesar de parecer eu eu respondi minha propria pergunta, a duvida continua...) Razz
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Re: Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 23:04
Não, não é tão simples assim.

Sobre as variáveis globais: Elas só existem e só são modificadas de acordo com cada jogo SEPARADO.

Sobre o id: Eu recomendo que você crie um sistema próprio de Id para os seus objetos players.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 23:10
Como disse o Thomaz, só serve para o jogo local.

No entanto, você pode modificar o valor da variável do jogo Cliente1 para o valor da variavel do jogo Cliente2.

Você deve enviar uma mensagem dizendo que vai mudar a variavel, com o valor.

Depois receber e mudar.
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Re: Duvida Global var em Multiplayer

em Dom 26 Fev 2012, 23:13
Sim, sim. As mensagens são a forma de interação entre os jogos.

E estas malditas me dão dor de cabeça.

Mas para o sistema de id eu não recomendo que seja utilizado variáveis globais e sim uma array ok?(facilita o serviço bastante)
Data de inscrição : 25/02/2012
Número de Mensagens : 30
Insígnias de JAM :

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

Re: Duvida Global var em Multiplayer

em Seg 27 Fev 2012, 00:45
Então pelo que eu entendi, o server funcionaria como uma "ponte" (sim, eu ja sabia disso), e com isso eu consigo a comunicação entre os jogadores, porem cada jogo funciona de modo distinto, mas oq eu quero saber se é possivel fazer algo mais complexo... (é logico que sim Razz)
O que eu quero é que o meu servidor seja responsavel por toda grande parte da programação do jogo (funções/variaveis/comandos) e no caso o "jogo/programa" seria somente o conteudo "bruto" do todo o game (sons/imagens).
Ou seja, em vez dele só fazer a comunicação entre os jogadores, seria como se ele executa-se o jogo e fosse o responsavel por todos os eventos do game... (Assim como é feito com os mmorpg's e com a maioria dos jogos com multiplayer online)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Duvida Global var em Multiplayer

em Seg 27 Fev 2012, 11:05
Nesse caso, você poderia fazer o servidor possuir as variáveis e tudo mais (o pc do servidor ia ficar lento).

Depois, de acordo com o input do usuário, manda-se para o servidor os eventos (teclado, mouse, fechar jogo). O servidor move o player, retornando somente a sua posição, sprite (caso algo não deixe ele andar, não vai mudar), e ele só altera isso.

No que você precisa de ajuda?
Não entendeu algo especifico?
Data de inscrição : 25/02/2012
Número de Mensagens : 30
Insígnias de JAM :

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

Re: Duvida Global var em Multiplayer

em Seg 27 Fev 2012, 13:15
É exatamente isso que eu quero! Smile Estou um pouco mais "sabido" agora...
Então, oq eu teria que fazer seria um programa-client e um programa-server, o server iria conter as informações, e o client (apos se conectar com o servidor e o servidor chegar se é mesmo um jogo e se a versão corresponde) iria mandar mensagens dizendo quando o player executa algo(aperta uma tecla, etc), logo o servidor retornaria com uma ação...
Por favor corriga algo ai em cima se estiver errado, (mas pelo que entendi foi isso)
Outra duvida agora é...
Conforme você disse,
o pc do servidor ia ficar lento
porem isso seria em um pc normal certo ?
Eu pretendo alugar uma maquina so para manter o servidor (host) e ai acredito eu que nao teria esse problema, correto ?
Outras duvidas que tenho são:
Seria melhor eu criar os dois programas (ou 1 ou um 1 meio,kkk) em C++ ou o GM da conta ?
Se o meu jogo for "desenhado" com tileset... É possivel que o servidor desenhe o "level" no client ? Ou seria melhor o client ja ter pronto ?
E sobre save/banco de dados... Como eu faria para salvar o jogo ? (De quanto em quanto tempo) Eu poderia fazer o servidor "salvar" a cada X steps ou a uma(s) ação(ões) especifica(s) do player ? (Talvez os dois... Lembrando de lag/riscos de informações nao salvas)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Duvida Global var em Multiplayer

em Seg 27 Fev 2012, 13:20
Talvez o servidor possa ser feito em C++.
O cliente pode ser feito no GM, porque não fará muita diferença.

Use os tiles no cliente.

Salve o jogo assim que o servidor perder a conexão com o cliente.

Só que se der pau no servidor, corre risco.
Data de inscrição : 25/02/2012
Número de Mensagens : 30
Insígnias de JAM :

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

Re: Duvida Global var em Multiplayer

em Seg 27 Fev 2012, 13:37
O Pedro, vlw mesmo cara, me ajuda pakas. Very Happy
E ao Thomaz e o Super Maker tb, levam meu thanks Happy
Só mais uma duvida... Como eu não tenho conhecimento com C++ (estou pensando em começar um curso) Se eu fiz o server no GM, tem como eu passar para o C++ somente alterando os comandos ? (Se eu aproveitar 30% ja ta bom)

~EDIT~

Estava eu aqui pensando... E surgiu mais duvidas Razz
1-Se o save acontecer somente quando o player se desconectar, logo o player tera que conter algumas das var armazenadas. Isso não seria um problema ? Pois simplesmente usando um programa como "cheat engine" ele pode alterar o valor da var antes de sair, e logo que sair o server salvara a nova var alterada.
2-Teria como eu fazer algo como:
Spoiler:
Server-Se o(s) jogador(es) entrar na room1 e inimigos_criados_room1!=1 então criar inimigo1 x y;jogadores_na_room1+=1;inimigos_criados_room1=1
Caso inimigo1 nao existir na room1, mas há jogador, entao inimigo_derrotado_room1=1
um wait no inimigos_criados_room1... (pra nao criar sempre q o inimigo não existir)
Caso jogador nao existir na room1, entao jogadores_na_room1=0,del inimigo1, Caso wait(alarme) ja tenha sido ativado, inimigos_criados_room1=0
Bem simples, eu sei que falta algumas coisa, mas se fosse por tudo, ia ficar até amanhã Razz


Última edição por lucazn1 em Seg 27 Fev 2012, 14:24, editado 1 vez(es) (Razão : Mais duvidas...)
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