GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Dúvidas - GMS] Delta_Time, Networking, Física

3 participantes

Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por machosupremo Sex 11 Jul 2014, 08:44

Ola pessoas, depois de muito, mas muito tempo, estou retornando aos estudos na programação de jogos (fiquei todos esses meses/anos sem um PC  Suspect  ).

Enfim, já pesquisei aqui no fórum mas não foi o suficiente para sanar minhas duvidas. Vou relatar cada caso abaixo:

Variável "delta_time":
   Como sempre fui apegado ao estudo de aplicações online/remota precisava utilizar essa variável para multiplicar um fator de velocidade em movimentos. Como acontece no unity 3D [ velocidade * time.DeltaTime ].
   Mas a do GMS não é tão simples pois ele calcula milionésimo de segundos de um frame ao outro. Em uma versão para o GM 8, um amigo (do qual não me recordo agora) disponibilizou a seguinte situação:
//create event - iniciar as variaveis
tempoAntigo = current_time
FPS = 30

//Step Event
deltaTempo =  (current_time - tempoAntigo)/FPS
tempoAntigo = current_time
speed = vel *deltaTempo

Essa formula obtém-se um resultado harmônico e agradável, mas não ficou claro de o porque da variável FPS = 30, percebi que não da pra colocá-la relativa a room_speed (em teste de variações dinâmica do room_speed).

Mesmo assim ainda gostaria de saber como usar a variável nativa do GM-S.


Networking. Aqui me refiro ao multiplayer do GM-S:

Primeiramente não consegui ainda achar uma versão daquele tutorial da yoyogames para estudar os códigos. Mas isso seria apenas para solucionar um problema que estou tendo.

Criei o servidor e o Cliente, e consigo fazer a conexão inicial do cliente, mas após usar o "Buffer" eu não consigo reutilizar novamente, ou seja, se eu for conectar um segundo Cliente, ele acusa erro na variável que escolhi para ser o Buffer.

Tentei dar um buffer_create() antes de cada caso, e um buffer_delete() após usar. Mas sem resultados.
Em meio disso percebi que não assimilei direito quando usar cada função de buffer a seguir:
buffer_tell()
buffer_sizeof()
buffer_get_size()

Pelo que entendi, o buffer_tell() fala sobre posição, o que tecnicamente é diferente de "ser5 o tamanho em bytes" do buffer. isso os outros dois já fazem.


e por ultimo é se alguém tem algo que ajude a criar um objeto que responde a física do jogo porem que seja composto de um esqueleto. Como exemplo um boneco, se ele for atingido na cabeça, essa reage primeiramente porem os outros membros do corpo vai herdando o movimento (de forma relativa).
machosupremo
machosupremo

Data de inscrição : 10/10/2012
Reputação : 2
Número de Mensagens : 99
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.dinoup.com

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por machosupremo Sex 11 Jul 2014, 16:38

Bom sobre as funções de buffer_sizeoff() buffer_get_size() e buffer_tell() uma (re)leitura com maior atenção já me respondeu o que exatamente cada uma faz.

Mas as outras duvidas ainda permanecem, se alguém puder me ajudar seria eternamente grato. =]
machosupremo
machosupremo

Data de inscrição : 10/10/2012
Reputação : 2
Número de Mensagens : 99
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.dinoup.com

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por PedroX Sex 11 Jul 2014, 17:24

Veja:
http://gmc.yoyogames.com/index.php?showtopic=556480

Em breve faremos uma tradução do tutorial.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por machosupremo Sáb 12 Jul 2014, 08:01

PedroX escreveu:Veja:
http://gmc.yoyogames.com/index.php?showtopic=556480

Em breve faremos uma tradução do tutorial.

Muito obrigado PedroX, isso já me adianta. Sobre Networking ou sobre onde encontrar o tutorial/engine da gmc.yoyogames sobre o assunto ?
machosupremo
machosupremo

Data de inscrição : 10/10/2012
Reputação : 2
Número de Mensagens : 99
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.dinoup.com

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por PedroX Sáb 12 Jul 2014, 10:37

A tradução do tutorial do link.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por gabrielsch Sáb 12 Jul 2014, 10:39

Não existe muita coisa ou documentação certa explicando como usar a variável delta_time do GMS mas a algum tempo atras numa madrugada eu perdi alguns minutos da minha vida pra entender e pode utilizar essa variável da maneira mais simples possível na minha opinião é claro.
No meu caso eu crio um objeto e coloco no create:
Código:
globalvar delta;
delta = 1;
Delta vai ser uma variável global que eu vou utilizar para controlar os valores do jogo, deixo ela com um valor inicial igual a 1 para não ter problemas nos primeiros segundos que o jogo rodar.
No Begin Step desse mesmo objeto eu coloco:
Código:
delta =  delta_time * .0001
Desse jeito eu obtenho o valor que eu devo usar como fator na multiplicação de qualquer outro valor no meu jogo para que ele compense o lag e/ou alguma possivel queda repentina de FPS (lag spike).
Depois disso é só utilizar dessa forma por exemplo:
Código:
x += 2*delta
Desse jeito independente do FPS que o jogo esteja rodando o objeto vai se locomover para direita com uma velocidade de 2 pixels por segundo. Então tu pode colocar a room_speed que tu quiser, a maioria das pessoas deixa como 999 ou até mais, só que acho que deixando ela entre 100 e 200 ja ta de bom tamanho, alias eu só uso delta_time quando vou fazer algum jogo para Android/iOS e 3D.
gabrielsch
gabrielsch

Games Ranking : Nota A

Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Reputação : 28
Número de Mensagens : 1230
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por machosupremo Sáb 12 Jul 2014, 13:53

gabrielsch escreveu:Não existe muita coisa ou documentação certa explicando como usar a variável delta_time do GMS mas a algum tempo atras numa madrugada eu perdi alguns minutos da minha vida pra entender e pode utilizar essa variável da maneira mais simples possível na minha opinião é claro.
No meu caso eu crio um objeto e coloco no create:
[...]

Nossa me sinto envergonhado por não ter pensado nisso  Suspect 
Como o tempo resultante era um fator de segundo em milionésimo (eu acho) é só eu multiplicar mesmo e ter um valor decente ¬¬
Mesmo assim agradeço muito.

Sobre o Networking, estava reparando e estou usando uma versão 1.99 (early-acess), que deve ser a mesma disponível no site (não foi de lá que baixei). Logo ele apenas permite apenas uma conexão remota.
Pensava eu estar usando uma versão "Paralela" da Master Collection.

Mesmo assim fica algo sem resposta, por que ele não da erro apenas no segundo cliente, e sim no servidor também. Já que tenho um script para informar um novo jogador e informar quando um jogador foi desconectado, logo, o "BUFFER" é utilizado duas vezes, acusando erro na segunda.

Se alguém souber me ajudar não se acanhe Happy
machosupremo
machosupremo

Data de inscrição : 10/10/2012
Reputação : 2
Número de Mensagens : 99
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.dinoup.com

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por gabrielsch Sáb 12 Jul 2014, 16:21

Qual o código que tu usa pra utilizar o buffer que ta acusando erro? Suponho que tu queira vários clientes conectados a um servidor e não uma conexão P2P.
gabrielsch
gabrielsch

Games Ranking : Nota A

Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Reputação : 28
Número de Mensagens : 1230
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por machosupremo Sáb 12 Jul 2014, 23:19

gabrielsch escreveu:Qual o código que tu usa pra utilizar o buffer que ta acusando erro? Suponho que tu queira vários clientes conectados a um servidor e não uma conexão P2P.

Sim, para ser exato o servidor também é client.

O Código que da erro aparentemente é quando vou setar/escrever novamente no buffer.

Pois uso buffer_seek() e buff_write() e apesar de o erro não acusar qual linha é o problema, ele diz que a variavel (usada como BUFFER) não existe. Isto é, o código funciona uma primeira vez apenas.
machosupremo
machosupremo

Data de inscrição : 10/10/2012
Reputação : 2
Número de Mensagens : 99
Prêmios : [Dúvidas - GMS] Delta_Time, Networking, Física Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.dinoup.com

Ir para o topo Ir para baixo

[Dúvidas - GMS] Delta_Time, Networking, Física Empty Re: [Dúvidas - GMS] Delta_Time, Networking, Física

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos