World generator!

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

World generator!

Mensagem por superrafao em Sab 28 Jul 2012, 23:59

Eu estava querendo fazer um game online(já estou estudando 39DLL), eu queria fazer que um objeto controle gerace uma arena.
Ta bom, deixe-me explicar:
O jogo online que estou querendo fazer e de tiro, que antes quando todos os jogadores ativacem o botão "Pronto", o jogador principal(que e o server) envia uma mensagem para os clientes dizendo que o mundo esta sendo gerado. Ate ai esta ok, já consigo ate ai.
Mas agora que vem a parte que eu apanhei. Mad
Eu não sei fazer com que o mundo seja criado dee jeito nenhum.
Para enviar a arena para os clientes eu tento arrumar um jeito, caso eu não consiga..., ja sabe né? Razz
Agradeço desde já.

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por Jiraya em Dom 29 Jul 2012, 00:08

temos que saber como seu mundo é gerado, para enviar as coordenadas dos objetos desse mundo para os jogadores, para que eles repitam o mesmo passo que o servidor, e gere um mapa igual.

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por superrafao em Dom 29 Jul 2012, 00:15

Não e isso ¬¬'.
Alias não tem como eu dizer como meu mundo é gerado. Pois eu disse que não consigo de jeito nenhum. Rolling Eyes
Mas eu acho que so prescisaria enviar os dados do mundo gerado. E não gerar a mesma coisa em cada cliente.
Imagina você jogando com seu amigo com um PC lento e o seu PC gera a arena quase imediatamente. Tenho quase certeza que daria problema.
Acho que o add_object ajudaria.
Acho que num expliquei direito. Suspect

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por gabrielsch em Dom 29 Jul 2012, 07:39

 
Bem, se a geração do mundo é em 2D, você pode seguir essa lógica:

(!) Geração do mundo:
-> O servidor ao criar um bloco manda uma mensagem para os clientes;
|-> A mensagem pode ser para criar ou destruir um bloco, seguindo do seu X, Y, Image_index, etc...
-> Ao receber essa mensagem do servidor o cliente cria ou destrói o bloco de acordo com a mensagem recebida;

(!) Caso um cliente destrua ou crie um bloco:
-> O cliente irá mandar a mensagem para o servidor;
|-> A mensagem pode ser para criar ou destruir um bloco, seguindo do seu X, Y, Image_index, etc...
-> O servidor irá destruir ou criar o bloco de acordo com a mensagem recebida do cliente;
-> O servidor irá mandar uma mensagem para os outros clientes;
|-> A mensagem pode ser para criar ou destruir um bloco, seguindo do seu X, Y, Image_index, etc...
-> Os outros cliente irão destruir ou criar um bloco de acordo com a mensagem do servidor;

Acho que você consegue entender o que eu disse, tudo que o server faz ele deve mandar para os outros clientes para que eles façam o mesmo.

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por superrafao em Dom 29 Jul 2012, 12:24

Bem, enviar dados do jeito que você disse e fácil.
Mas se eu estivesse usando o código do game maker (mplay) seria mais fácil ainda. O mplay foi um dos códigos mais fáceis que eu já vi.
Mas o problema que eu estou tendo, e com o gerador de mundo, pois não sei como programar ele.

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por Daniel Machado Alves em Dom 29 Jul 2012, 13:29

mas o game é top view ou plataforma tipo terraria,e vc esta tendo problemas em criar a arena,ou em conseguir um sistema que crie a arena e envie ao mesmo tempo o que esta sendo criado para os clientes?

Daniel Machado Alves

Número de Mensagens : 33
Idade : 22
Data de inscrição : 29/04/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por superrafao em Dom 29 Jul 2012, 13:38

Plataforma tipo terraria, porem não sandbox(sandbox e o estilo do terraria, minecraft, etc...)
O problema e com gerador, poi eu quero aprender como fas.
O mais facil que eu acho que seria é:
O server enviar uma mensagem para os clientes dizendo que o mundo esta sendo gerado.
O server começa a gerar.
Quando terminado, ele envia os dados da arena para os clientes.
O jogo começa.

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por Daniel Machado Alves em Dom 29 Jul 2012, 14:28

acredito que eu possa te ajudar na parte do gerador.

esse método que eu usei provavelmente não é o + eficaz,nem o + "leve,mas é o que eu sei agora,quem sabe vc possa aprimorar e criar um sistema mais rápido,eficaz e simples,mas fica aqui minha tentativa de ajudar:

vou usar um exemplo de uma room 1600x1600 pixeis,com blocos de 16x16

Código:
create:
y = 800 //a metade do tamanho da room
x = 0
max_horizontal = 100 //o tamanho vertical da room dividido pelo tamanho vertical do objeto
direcao = choose("cima","reto","baixo")
prencher = false
aser_prenchido = 16

step:
if max_horizontal <= 100 //empedir que crie coisa alem do tamanho horizozntal maximo da room
 {
  if prencher = false 
  {
    direcao = choose("cima","reto","baixo") //celeção aleatoria do terreno,se colocar + 1 "reto" e terreno vai ter - curvas.
    if direcao = "cima" { instance_create(x,y+16,obj_terra);y +=16;prencher = true;max_horizontal += 1 } 
    if direcao = "reto" { instance_create(x+16,y,obj_terra);x += 16;prencher = true;max_horizontal += 1 }
    if direcao = "baixo" { instance_create(x,y-16,obj_terra);t -=16;prencher = true;max_horizontal += 1 }
  {
  else
  { 
    if aser_prenchido <=800 //cria o resto do chão abaixo do bloco que foi criado,caso nao queira bloco até o
    {                            //y maximo da room,é só diminuit
      instance_create(x,y+aser_prenchido,obj_terra)
      aser_prenchido += 16
    }
    else
    {
      aser_prenchido = 16
      prencher = false
    }
    }
  }

Para repetir esse processo o + rapido possivel é só usar isso aqui :
meu ultimo topico

E utilizando esse sistema vc pode adicionar um sistema de destruição no teu jogo,e vc tbm pode adicionar no meio do código seguindo a mesma lógica,pequenos objectos,árvores,arbustos,pedras,ou fazer um sistema parecido que adicione construções,a parte online eu não posso nem tentar ajudar,pq não sei nada =/.

Espero que tenha ajudado,ou ao menos lhe dado uma ideia.

Daniel Machado Alves

Número de Mensagens : 33
Idade : 22
Data de inscrição : 29/04/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por superrafao em Dom 29 Jul 2012, 18:32

Código:
COMPILATION ERROR in code action
Error in code at line 10:
    else
    ^
at position 4: Unexpected symbol in expression.
So me faltava, essa. Sera que tem como consertar?

superrafao

Número de Mensagens : 414
Idade : 20
Data de inscrição : 18/08/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: World generator!

Mensagem por Conteúdo patrocinado Hoje à(s) 00:56


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