Duvida Global var em Multiplayer

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Duvida Global var em Multiplayer

Mensagem por lucazn1 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

lucazn1

Número de Mensagens : 30
Idade : 20
Data de inscrição : 25/02/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por Super Maker 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.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por lucazn1 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

lucazn1

Número de Mensagens : 30
Idade : 20
Data de inscrição : 25/02/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por Thomaz 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.

Thomaz

Ranking : Nota A
Número de Mensagens : 106
Idade : 21
Data de inscrição : 13/10/2011
Notas recebidas : A
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://bigleafeater.tumblr.com/

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por PedroX 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.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por Thomaz 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)

Thomaz

Ranking : Nota A
Número de Mensagens : 106
Idade : 21
Data de inscrição : 13/10/2011
Notas recebidas : A
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://bigleafeater.tumblr.com/

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por lucazn1 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)

lucazn1

Número de Mensagens : 30
Idade : 20
Data de inscrição : 25/02/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por PedroX 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?

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por lucazn1 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)

lucazn1

Número de Mensagens : 30
Idade : 20
Data de inscrição : 25/02/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por PedroX 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.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por lucazn1 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...)

lucazn1

Número de Mensagens : 30
Idade : 20
Data de inscrição : 25/02/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Duvida Global var em Multiplayer

Mensagem por Conteúdo patrocinado Hoje à(s) 20:06


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum