Acho que preciso melhorar minhas palavras. E meu sono.
Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Como funcionam os replays em jogos?
- GabrielXavier
- Membro
- Reações: 0
- Mensagens: 39
- Localização: Goiás
-
- Contato:
Como funcionam os replays em jogos?
Boa noite, gostaria de saber a teoria de como funcionam os replays de jogos como os do Clash of Clans e do Clash Royale desenvolvidos pela Supercell.
Ambos os jogos são mobile, e são de batalhas multiplayers online, e são gerados replays dessas batalhas.
Sei que o replay não é um arquivo de vídeo pois é possível dar zoom em áreas especificas da tela no Clash of Clans e os replays ficam armazenados nos servidores do jogo e não no dispositivo, se fosse um arquivo de vídeo consumiria muita memoria do aparelho e bastante banda de internet já que são jogos mobile. (Ou será que seriam arquivos de vídeo? :scratch:)
Então eu gostaria de saber (em teoria) como são armazenados e reproduzidos esses replays.
Ambos os jogos são mobile, e são de batalhas multiplayers online, e são gerados replays dessas batalhas.
Sei que o replay não é um arquivo de vídeo pois é possível dar zoom em áreas especificas da tela no Clash of Clans e os replays ficam armazenados nos servidores do jogo e não no dispositivo, se fosse um arquivo de vídeo consumiria muita memoria do aparelho e bastante banda de internet já que são jogos mobile. (Ou será que seriam arquivos de vídeo? :scratch:)
Então eu gostaria de saber (em teoria) como são armazenados e reproduzidos esses replays.
[ ] Publicar um App no Google Play.
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).
Re: Como funcionam os replays em jogos?
. Nesses casos especificos eu não sei, mas eu utilizo array para salvar posição, sprite, image_angle e qualquer outra informação grafica necessaria, quando o replay estiver rodando o ideal é bloquear os eventos, você pode adicionar um duble para cada objeto e desativar os verdadeiros e muitas outras coisas.
Aqui um exemplo basico, um exemplo de plataforma e uma camera para você adicionar ao seu jogo, no formato gmrs.
.Tudo feito no gm 8.0.
https://www.dropbox.com/s/lcml89901rq34 ... y.rar?dl=1
Aqui um exemplo basico, um exemplo de plataforma e uma camera para você adicionar ao seu jogo, no formato gmrs.
.Tudo feito no gm 8.0.
https://www.dropbox.com/s/lcml89901rq34 ... y.rar?dl=1
Re: Como funcionam os replays em jogos?
Um método mais "cru" seria você detectar cada ação do personagem e sua respectiva frame, guardá-los numa array e salvar o estado inicial de todos objetos da cena, de forma que a mesma cena seria rejogada durante o replay, só que não recebendo comandos do jogador e sim da array.
Re: Como funcionam os replays em jogos?
Basicamente, um replay é a gravação de estados de uma mesma cena em vários frames diferentes. Quando executado, o resultado esperado é a reprodução exata do que aconteceu durante o gameplay.
Como o Ciro mencionou, o método mais básico seria você salvar todas as posições de objetos e afins em uma array de objetos. O problema é que na prática isso fica estranho. Se o seu personagem correr demais, por exemplo, no replay vai parecer que ele estava "teleportando" entre os lugares.
Outro meio que você pode fazer é, ao invés das posições, salvar o input que o jogador faz. Um exemplo clássico desse uso é na feature de replays existentes em emuladores, que é frequentemente usado para fazer os tão famosos TASes (Tool-Assisted Speedruns). A ideia é que, se os controles forem pressionados em uma ordem exata de forma consistente, você conseguirá reproduzir o gameplay de alguém diretamente, em qualquer lugar.
Para finalizar, você também pode dar uma olhada no formato *.dem, que é um arquivo usado em jogos da Valve para gravar replays. Você pode, por exemplo, gravar uma partida inteira de CS e depois assistir explorando o mapa ou observando os movimentos de outros jogadores que você não viu. Aqui um link: https://developer.valvesoftware.com/wiki/DEM_Format
Ah, sim: e quanto ao Clash of Clans... bem, eu nunca joguei, mas de certeza eles usam arquivos próprios para isso. O que acontece é que o arquivo é passado para o seu dispositivo via streaming e vai rodando as partes que já foram recebidas. Arquivos de vídeo são um tiro no pé: é mais trabalhoso para o servidor gravar um vídeo inteiro de uma partida que ele sequer está vendo (o servidor só manda e recebe dados, ele não tem nada do jogo carregado internamente) do que simplesmente ir salvando as posições e os inputs dos jogadores. :)
o/
Como o Ciro mencionou, o método mais básico seria você salvar todas as posições de objetos e afins em uma array de objetos. O problema é que na prática isso fica estranho. Se o seu personagem correr demais, por exemplo, no replay vai parecer que ele estava "teleportando" entre os lugares.
Outro meio que você pode fazer é, ao invés das posições, salvar o input que o jogador faz. Um exemplo clássico desse uso é na feature de replays existentes em emuladores, que é frequentemente usado para fazer os tão famosos TASes (Tool-Assisted Speedruns). A ideia é que, se os controles forem pressionados em uma ordem exata de forma consistente, você conseguirá reproduzir o gameplay de alguém diretamente, em qualquer lugar.
Para finalizar, você também pode dar uma olhada no formato *.dem, que é um arquivo usado em jogos da Valve para gravar replays. Você pode, por exemplo, gravar uma partida inteira de CS e depois assistir explorando o mapa ou observando os movimentos de outros jogadores que você não viu. Aqui um link: https://developer.valvesoftware.com/wiki/DEM_Format
Ah, sim: e quanto ao Clash of Clans... bem, eu nunca joguei, mas de certeza eles usam arquivos próprios para isso. O que acontece é que o arquivo é passado para o seu dispositivo via streaming e vai rodando as partes que já foram recebidas. Arquivos de vídeo são um tiro no pé: é mais trabalhoso para o servidor gravar um vídeo inteiro de uma partida que ele sequer está vendo (o servidor só manda e recebe dados, ele não tem nada do jogo carregado internamente) do que simplesmente ir salvando as posições e os inputs dos jogadores. :)
o/
Re: Como funcionam os replays em jogos?
Foi esse tipo de replay no qual me referi.MrRafael escreveu:Outro meio que você pode fazer é, ao invés das posições, salvar o input que o jogador faz. Um exemplo clássico desse uso é na feature de replays existentes em emuladores, que é frequentemente usado para fazer os tão famosos TASes (Tool-Assisted Speedruns). A ideia é que, se os controles forem pressionados em uma ordem exata de forma consistente, você conseguirá reproduzir o gameplay de alguém diretamente, em qualquer lugar.
Acho que preciso melhorar minhas palavras. E meu sono.
Re: Como funcionam os replays em jogos?
. Na verdade se correr de mais ou não é um teletransporte de qualquer forma, o personagem muda de posição pouco ou muito a cada frame vai ficar a mesma coisa no repla e em tempo real .
- gabrielsch
- Colaborador
- Reações: 0
- Mensagens: 234
-
Re: Como funcionam os replays em jogos?
Nesses casos é possível usar a técnica de interpolação entre as posições, para dar suavidade nos movimentos mais drásticos, a própria Source Engine usada no CS:GO e CS:S tem essa funcionalidade que mascara a baixa taxa de atualização das posições dependendo do replay.thyago escreveu: . Na verdade se correr de mais ou não é um teletransporte de qualquer forma, o personagem muda de posição pouco ou muito a cada frame vai ficar a mesma coisa no repla e em tempo real .
- Rodrigo Santiago
- Colaborador
- Reações: 0
- Mensagens: 273
-
Re: Como funcionam os replays em jogos?
Bem, é improvável que seja da forma que vocês suponham. Nesses tipo ÚNICO o replay é dado apenas pela interação do jogador, nenhuma posição é salva, apenas e unicamente o input do jogador.
No clash of Clans - Ele salva onde e quando você enviou uma tropa
No Clash royale - Ele salva onde e quando você pôs uma carta
No demais, todo o resto é calculado normalmente, como se um jogo estivesse ocorrendo. (
Obs .: é uma teoria claro, não tenho acesso ao código fonte do servidor )
No clash of Clans - Ele salva onde e quando você enviou uma tropa
No Clash royale - Ele salva onde e quando você pôs uma carta
No demais, todo o resto é calculado normalmente, como se um jogo estivesse ocorrendo. (
Obs .: é uma teoria claro, não tenho acesso ao código fonte do servidor )
- GabrielXavier
- Membro
- Reações: 0
- Mensagens: 39
- Localização: Goiás
-
- Contato:
Re: Como funcionam os replays em jogos?
@thyago
Baixei sua engine cara vou estudar o funcionamento dela, obrigado pela ajuda cara
@MrRafael
Muito interessante esse arquivo da Valve, gostei bastante, vou dar uma estudada mais a fundo em como ele funciona, e muito obrigado pela explicação
@Rodrigo Santiago
No caso de salvar apenas os inputs do jogador em um jogo como o Clash of Clans, será que replay seria executado sempre como foi realizado na partida real?
Não tem o risco de a ia dos personagens "pensar diferente" alguma vez?
Pelo que entendi o método que menos consome dados e processamento do servidor e pode ser mais eficiente seria salvar apenas os inputs dos jogadores, me corrijam se estiver errado
Obrigado pela ajuda de todos vocês!
Baixei sua engine cara vou estudar o funcionamento dela, obrigado pela ajuda cara
@MrRafael
Muito interessante esse arquivo da Valve, gostei bastante, vou dar uma estudada mais a fundo em como ele funciona, e muito obrigado pela explicação
@Rodrigo Santiago
No caso de salvar apenas os inputs do jogador em um jogo como o Clash of Clans, será que replay seria executado sempre como foi realizado na partida real?
Não tem o risco de a ia dos personagens "pensar diferente" alguma vez?
Pelo que entendi o método que menos consome dados e processamento do servidor e pode ser mais eficiente seria salvar apenas os inputs dos jogadores, me corrijam se estiver errado
Obrigado pela ajuda de todos vocês!
[ ] Publicar um App no Google Play.
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).
[ ]GANHAR DINHEIRO.
[ ]Viver com o lucro dos meu jogos/apps (Sonho).
- Rodrigo Santiago
- Colaborador
- Reações: 0
- Mensagens: 273
-
Re: Como funcionam os replays em jogos?
É realmente impossível que a ia haja de forma diferente. Caso tenha alguma coisa "aleatória" então basta salvar a seed inicial !
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante