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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[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 : 6086
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 : 6086
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