Como implementar o "bullet time" em um jogo multiplayer?


29

Eu nunca vi esse recurso antes, mas deve oferecer uma oportunidade interessante de jogo.

Então, sim, em um ambiente multiplayer / em tempo real (imagine FPS), como eu poderia implementar um efeito de câmera lenta / tempo de bala?

Algo como uma ilusão para o jogador que está atualmente slo-mo'ed. Então todo mundo o vê "em tempo real", mas ele vê tudo mais lento.

Atualizar

Uma nota lateral: lembre-se de que um jogo FPS precisa ser equilibrado para que seja divertido. Então, sim, esse recurso de tempo de bala deve ser sólido, dando uma pequena vantagem ao "jogador", sem afastar outros jogadores.

Além disso, existe a possibilidade de dois jogadores poderem ativar seu tempo de bala ao mesmo tempo.

Além disso:

Vou implementar isso no futuro, não importa o que for preciso. E a idéia é construir um novo mecanismo de jogo para tudo isso. Se isso oferece novas opções, estou mais interessado em ouvir as idéias.

Enquanto isso, aqui com minha equipe, estamos pensando nisso também, quando nossa teoria for criada, vou compartilhar aqui.

Isso é possível? Portanto, a pergunta "isso é possível" foi respondida, agora é hora de encontrar a melhor solução.

Mantenho a "resposta" até que algo excepcionalmente bom apareça, como uma teoria de protótipo com algo próximo do pseudo-código em funcionamento.

O que dizem os físicos e filósofos:

Os links são do seu interesse, porque os tópicos estão fechados.

https://physics.stackexchange.com/questions/17118/time-traveling-and-time-dilation-within-a-multiplayer-videogame

https://philosophy.stackexchange.com/questions/1704/seeing-everything-in-slow-motion-but-being-real-time

As condições em que pensei ao escrever a pergunta no site de física (copiado):

  1. O jogador sob os efeitos de câmera lenta tem a vantagem de realizar ações mais precisas (tiro, movimento etc.), devido a ver tudo em um ritmo muito mais lento.
  2. Suas ações devem afetar os outros jogadores em tempo real.
  3. Os jogadores que olham para o nosso jogador afetado não vêem diferença, exceto que podem experimentar as ações que ele realizou (como, por exemplo, o jogador leva um tiro / é afetado por um foguete).
  4. Quando o jogador sai desse efeito, ele simplesmente continua no mesmo ritmo de sempre. (Se isso não for possível, acho que ele terá que sofrer até que o tempo seja sincronizado de volta)

Referências sobre o tempo do marcador (câmera lenta):

Infelizmente, a maioria das implementações é apenas para um jogador

http://www.gamesradar.com/a-videogame-history-of-bullet-time/


3
Isso já foi feito com sucesso no MMORPG The Matrix Online. Você experimentou um tempo de bala enquanto lutava com oponentes quando entrou no "Interlock" lutando com eles. Isso foi feito com os oponentes PvE e PvP. Todos os outros fora do Interlock viram "velocidade em tempo real". Comentando em vez de responder porque não tenho a experiência ou o conhecimento necessário para explicar como eles o fizeram, apenas sei o que ocorreu do ponto de vista do jogador.
FallenAngelEyes

3
Isso também estava presente no FEAR Combat. No multiplayer, havia um modo de jogo chamado SloMoDeathmatch. Este é um jogo gratuito, se bem me lembro, por isso, se você quiser experimentá-lo, baixe-o e veja se ainda restam alguns servidores.
Alextc #

3
Eu não acho que afirmar que você está esperando pelo pseudocódigo ajudará as respostas. Uma vez que o design que você deseja é solidificado o suficiente, o código deve ser óbvio.
Tetrad

1
Além disso, "não importa o que seja necessário" cheira a uma filosofia de design ruim. Parece que você só deve fazer isso depois de provar (via protótipo ou exemplo de trabalho em outro jogo) o método que você planeja usar antes de seguir em frente.
Tétrada

4
-1 para "Eu estou mantendo a 'resposta' até que algo excepcionalmente bom apareça, como um protótipo com algo próximo do pseudo-código em funcionamento". Não seja idiota.
Trevor Powell

Respostas:


22

Já foi feito antes. :) Confira os especialistas , um mod de meia-vida que tem dois upgrades de tempo de bala diferentes.

EDITAR para incluir as informações de zzzzbov abaixo

A maneira como o tempo de bala funcionava em "The Specialists" da perspectiva do jogo era que o jogador podia receber powerups que dariam quantidades limitadas de "tempo de bala". Quando usada, uma bolha ao redor do jogador diminui sua física.

Jogadores distantes se moveriam na velocidade normal, mas qualquer coisa na bolha (balas, jogadores, explosões) diminuiria a velocidade. O jogador que usava o power-up se movia um pouco mais rápido, permitindo que fugissem ou usassem acrobacias para desviar de balas.

Qualquer outra pessoa presa na bolha do tempo de bala ainda tem a vantagem de poder ver o que está para acontecer, mas a diferença de velocidade relativa entre um jogador pego e balas permanece a mesma, de modo que a capacidade de reagir é praticamente inexistente.


@ Tom IIRC, é open source, então você deve poder ver como eles fizeram isso.
Spencer Rathbun

Hmm, uma pesquisa no Google não retornou nenhum resultado sobre o código fonte. (além da enorme quantidade de informações sobre The Specialists: Source também é exibida). Tem um link ou algo assim?
joltmode

@ Tom pensei que estava no site deles, que deveria estar vinculado no artigo da Wikipedia. Caso contrário, eles podem ter retirado o controle, já que passaram para o mecanismo HL2 há alguns anos atrás. Pode ser necessário enviar um email aos desenvolvedores para obter acesso. Claro, eu poderia ser lavada também.
Spencer Rathbun

Seu site não está funcionando quer ..
joltmode

5
Eu adicionaria a mesma resposta até encontrar essa. A maneira como o tempo de bala funcionava em "The Specialists" da perspectiva do jogo era que o jogador podia receber powerups que dariam quantidades limitadas de "tempo de bala". Quando usada, uma bolha ao redor do jogador diminui sua física. Jogadores distantes se moveriam na velocidade normal, mas qualquer coisa na bolha (balas, jogadores, explosões) diminuiria a velocidade. O jogador que usava o power-up se movia um pouco mais rápido, permitindo que fugissem ou usassem acrobacias para desviar de balas.
zzzzBov

12

Não consigo pensar em nenhum jogo que tenha um tempo de bala no modo single player que o tenha transposto com sucesso para o multiplayer de maneira significativa. Pode haver alguns deles que o resolveram acelerando o uso do jogador, mas isso acaba com o ponto.

Existe um tempo de bala porque você quer fazer o jogador se sentir mal. Você está dando ao jogador uma vantagem aparentemente injusta ao simular uma percepção de nível superior. O resultado final disso é que os jogadores podem mirar enquanto fazem coisas legais, como pular da cobertura e assim por diante. Se você apenas acelerou o jogador enquanto o tempo de bala estava ativado, você oferece menos tempo para reagir, o que é o oposto do que você deseja.

Em um ambiente multiplayer síncrono, não há realmente nenhuma solução para o "tempo mais lento" ativado pelo usuário que simula a sensação resultante de usá-lo em um ambiente para um jogador. Se o tempo em si diminuiu, a percepção de todos aumenta. Especialmente em um jogo para PC em que a mira do mouse é geralmente instantânea, todo mundo se beneficiaria de alvos em movimento mais lento.

Agora, se você estivesse decidido a isso, minha sugestão seria, em vez de torná-lo um recurso ativado por jogador, torná-lo uma espécie de "estado" de encontro. Pense como um filme de John Woo, em que ele é o mocinho versus o bandido e tudo parece diminuir quando eles estão filmando um ao outro. Portanto, quando um "encontro" começar, ative o slo-mo e você poderá obter alguns efeitos interessantes. Caras pulando e coisas ricocheteando de tiros de balas perdidos flutuando no ar, e tudo isso. Obviamente, isso realmente funcionaria apenas para um jogo 1 contra 1. Você não obteria o benefício unilateral do tempo de bala como em um jogo para um jogador, mas pode ser uma experiência de jogo interessante.


1
Poderia ser estendido para mais de 1 vs 1, diminuindo a velocidade das pessoas que se viam, e, assim que alguém os visse, reduzisse a velocidade também. Dessa forma, todo mundo está na velocidade normal, até entrar em uma briga.
precisa

Você pode contornar o problema da mira instantânea limitando a taxa de turno - o problema real é que, em um sistema correto, ninguém mais deve ser afetado pelo novo quadro de referência; só deve ver o jogador em tempo de bala sendo acelerado.
Jonathan Dickinson

Não diminua a velocidade a todos. Congele os outros jogadores até que o tempo da bala quase acabe. Você deseja cronometrar o tempo para que, quando o tempo do marcador terminar, as linhas de tempo sejam sincronizadas novamente.
Martin Sojka

Até agora, esta é a única resposta que aborda o ponto relevante: você não está acelerando ou diminuindo o tempo. Você está diminuindo a velocidade da simulação para que os jogadores tenham mais tempo para reagir e planejar movimentos que, se feitos em tempo real, passariam a controlar rapidamente. Para fazer isso funcionar do ponto de vista da jogabilidade, todos os jogadores envolvidos (assistindo ou participando da ação) devem ficar mais lentos, e todos os jogadores não relacionados (aqueles que não estão por perto para testemunhar a desaceleração) continuarão na velocidade normal. Se você não atrasar todo mundo que pode ver o evento, isso parecerá estúpido.
MrCranky

Os videogames Max Payne usam "tempo de bala" como uma habilidade no jogo. Alguns dos jogos Jedi de Star Wars (Jedi Knight II, com certeza) também têm "Force Speed", que acelera você, diminuindo a velocidade de todos os outros (exceto outro usuário do Force Speed).
Keiths

8

Pensamentos Gerais

Esse é um problema que é melhor descrito usando a relatividade geral - considere, por exemplo, o fato de que você pode ver os efeitos do tempo da bala apenas olhando através do seu telescópio para um satélite (a causa do infame neutrino viajando mais rápido que o problema da luz) - equações que são solucionáveis ​​existem nessas condições; o que significa que é completamente possível.

Seu jogo precisará ser capaz de lidar com quadros de referência separados - até onde eu sei, o efeito líquido disso seria ('jogador' sendo a pessoa com tempo de bala ativo):

  • As pessoas que viram o jogador os veriam se mover extremamente rapidamente.
  • O jogador veria as pessoas se moverem muito lentamente.
  • O jogador estaria se movendo para o passado / futuro em referência a todos os outros.

Felizmente para você, isso significa que um jogador em tempo de bala tem uma vantagem sobre todos os outros; eles não podem apontar para ele - no entanto, não seria convincente porque a pessoa comum esperaria não ver diferença discernível ao observar a dilatação do tempo.

Eu recomendo fortemente que você publique isso na física (indique que é um jogo, mas você precisa de conhecimento teórico real) e peça idéias sobre como você aproximaria o efeito em uma simulação simultânea.

Uma solução possível que eu consideraria é ter o mundo em dia com o jogador (como ele se mudou para o futuro), fazendo com que todos experimentem uma quantidade progressiva (muito menor que o tempo real da bala) de tempo da bala, dependendo de muito atrasado (em tempo) eles são. Dessa forma, você pode aproximar as diferenças de tempo sem precisar lidar com o armazenamento do estado passado, etc. Você precisaria de alguma maneira de explicar esse efeito, 'recuperação do tempo' ou algo assim, porque não é fisicamente correto.

Outra idéia é abusar das equações mais básicas da física ( s = d/t), quando um jogador entra em uma bala, tudo fica menor - se você reduzir pela metade o tamanho de tudo da perspectiva dele, mas manter a velocidade igual à de acordo com o quadro de referência original (efetivamente dobrar) a equação ainda será equilibrada. As seqüências de distorção no filme espacial usam essa dilatação espacial para retratar o efeito - então as pessoas estão acostumadas a vê-lo.

Solução real

Eu pensei nisso ainda mais. Se você observar como o sistema de rede Steamworks funciona ( alguém tem um link? ), O servidor está constantemente adiantado em uma certa quantidade; e cada cliente conhece o quadro 'próximo' ao qual ele precisa interpolar.

Digamos, por exemplo, que o servidor esteja 20ms à frente de todos os jogadores. Quando um jogador entra em tempo de bala, altere seu intervalo de atualização para 40ms (sua simulação será executada em intervalos de 40ms e o servidor enfileirará suas ações em 40ms no futuro) - o que basicamente fará avançar no futuro em referência a outros jogadores: além disso para fazê-lo se mover mais rápido a partir da referência deles e fazê-los se mover mais devagar do dele. Uma vez que ele deixe o tempo de bala, dê a todos os outros uma vantagem de 5ms sobre ele, para que eles possam jogar 'recuperar o atraso' (este é o seu time rebound, coincidentemente jogadores inteligentes acertarão o tempo durante esses períodos de recuperação). Pode parecer um pouco melhor se você mapear uma parábola para a etapa de seu tempo - isso fará com que as coisas diminuam a velocidade, parem e depois acelere gradualmente novamente.

Disclaimer: Eu não sou físico, mas tenho um conhecimento prático da relatividade.


4

Queria adicionar meus US $ 0,02, ao implementar um protótipo do modo bullet-time que funcionava em jogos multiplayer para Heroes Over Europe .

No modo single-player, pressionar o botão no momento certo reduziria o tempo e aumentaria o zoom no alvo pretendido. Eu não queria diminuir o tempo globalmente no modo multiplayer para replicar o recurso (como o jogo suportava 16 jogadores simultâneos!), Então usei um método de "bolha".

Especificamente, quando o modo de tempo de bala foi acionado, uma esfera foi criada ao redor do avião de destino. A taxa de passagem do tempo mudou dependendo da distância do centro da esfera; o tempo diminuiu linearmente de sua superfície para um valor mínimo em algum lugar próximo ao centro. A taxa também mudou em função de quanto tempo a esfera existia e quanto tempo havia deixado antes que "evaporasse".

Isso foi sincronizado entre as máquinas, enviando um pacote que definiu uma hora de início futura para a bolha; isso permitiu que o efeito permanecesse sincronizado, apesar da latência. (Da mesma forma, quando o efeito deveria terminar mais cedo, um pacote declararia o horário futuro em que deveria terminar).

A taxa de passagem do tempo sempre foi definida funcionalmente: dada a definição de uma esfera, o tempo atual e uma posição, foi possível determinar com que rapidez o tempo estava fluindo.

Para fazer o efeito funcionar, vários sistemas de jogo tiveram que ser adaptados a essa definição "funcional" de tempo. Aviões, balas, mísseis e outros efeitos usaram um indivíduo dtque foi treinado chamando a função apropriada. A maior parte do trabalho para fazer o protótipo funcionar foi gasta aqui.

O resultado funcionou razoavelmente bem: um jogador visado pelo tempo de bala diminuiria visivelmente e teria uma (pequena) chance de sair da mira do agressor e se afastar de uma bala em câmera lenta. Jogadores próximos podiam ver aviões e balas se esquivando em câmera lenta, mas não eram afetados.

Observe que o jogador que desencadeou também foi desacelerado, mas não foi estritamente prejudicado por ele: eles tinham uma visão ampliada de seu alvo e podiam afetar mortes de um tiro em suas presas. Outro jogador poderia tentar matá-lo (ou roubar!) Nesse estado, mas o avião (e as balas) seria afetado ao entrar na bolha, dando-lhe tempo para escapar.

Infelizmente, enquanto funcionava, nunca tivemos tempo de concluir e aperfeiçoar o recurso para multiplayer, então ele foi descartado. (Um jogador ainda manteve o recurso, como "Ace Kill".)


2

Não é realmente o tempo de bala, mas pode ser divertido:

Que tal algo semelhante à maneira como Braid faz a coisa que desacelera o tempo? Ou seja, quanto mais perto da pessoa que está enfrentando o tempo da bala, as coisas ficam mais lentas ... e se você estiver fora da esfera de influência, o tempo flui normalmente.

... por exemplo, se o Jogador A passar o tempo em balas, ele coloca uma esfera graduada de "tempo lento" ao seu redor para que ele possa mirar corretamente, mas não necessariamente se mover mais rápido - então o Jogador B disparando balas nele teria que prever demais onde a bala atingirá, pois diminuirá a velocidade mais perto dele.

Embora, quanto mais eu penso sobre isso, menos eu acho que funcionaria, porque poderia fazer do Jogador A um alvo fácil (pois sua cabeça diminuiria?) - mas seria interessante vê-lo em 3D de qualquer maneira.


1
Interessante, de fato, mas se as balas desacelerarem quanto mais perto estiverem do jogador, ele deve ser capaz de evitá-las.
joltmode

Sim, mas como em Braid, o próprio jogador diminui também - ou seja, a velocidade de rotação dos jogadores ainda pode ser rápida, portanto, é mais fácil implantar bloqueios ou escudos para evitar balas, mas o movimento real de voar pelo ar para sair do caminho de balas seria mais lento ...
Seb

2

Sei que essa é uma pergunta antiga, mas tive dificuldade em não mencionar o problema com a maioria das respostas relacionadas à relatividade

Implementado com os efeitos descritos na pergunta, o tempo de bala no multiplayer não é possível.

A razão para com é como a relatividade funciona; alguns de vocês aqui mencionaram e obviamente entendem a relatividade, mas o problema é que seus modelos estão configurados incorretamente.

Muitas pessoas usaram "a referência do jogador A versus o jogador B" em suas respostas, mas, infelizmente, nenhuma dessas coisas realmente existe. Sim, você tem jogadores, talvez até muitos deles, e sim, eles podem controlar e interagir com seu mundo e ter sua própria perspectiva do jogo, mas a perspectiva não é um ponto de referência no tempo: é apenas um espaço XYZ projetado no XY avião.

Há apenas um único ponto de referência de tempo e esse é o servidor (ou host). Existe apenas uma visão do estado físico do mundo e, portanto, apenas um ponto de referência. O que os jogadores veem na tela são diferentes visualizações gráficas da mesma simulação física.

Ter um jogador visualizando uma simulação em uma velocidade e outro visualizando a mesma simulação em outra velocidade e não ter uma dessincronização simplesmente não é possível. Em algum lugar, algo tem que dar.

Qualquer esforço para ter várias simulações ou fazer o servidor correr à frente dos clientes simplesmente não faz sentido. O efeito descrito no post simplesmente não pode ser feito sem forçar o ponto de referência único ou deixar as idéias se tornarem dessincronizadas e dizer aos jogadores que suas ações realmente não aconteceram após o fato.

Eu acho que a melhor solução é semelhante a uma já fornecida, que é ter um efeito de trança, onde sua velocidade é alterada em uma bolha ao redor do jogador. Dito isto, o jogador não diminuiu a velocidade e a bolha sempre seria posicionada e movida com ele no centro. Isso faz com que o jogador se mova a toda velocidade, enquanto os mais próximos dele se sentem mais lentos. Ele obtém vantagem de poder e as pessoas distantes dessa área não sentem efeito. Aqueles que estão próximos são mais lentos, mas seria óbvio que alguém está usando a energia (eu sugeriria destacar o jogador de alguma forma quem o está usando, para que os jogadores opostos compreendam completamente o que está acontecendo e por quê).


1

Seria muito estranho. Sem sequer olhar para o problema da dilatação do tempo, imagine que você é o jogador que passou apenas 4 segundos em tempo de bala, enquanto todos os outros jogadores passaram 2 segundos em tempo real. Como o mesmo tempo passou para todos na realidade, você teria que "recuperar" esses dois segundos no jogo de alguma forma. Então, em algum momento, você precisará "pular" 2 segundos do tempo do jogo, ou gastar um pouco de tempo correndo mais rápido que o normal, ou qualquer outra coisa que provavelmente faria com que o tempo da bala fosse um desperdício.

Além disso, é preciso enviar o que você faz em 2 segundos no seu tempo de volta no tempo 1 segundo para todos os outros.


1

Lance mini eventos rápidos e parecidos com o tempo no jogador para desviar de balas ou rastrear automaticamente alvos inimigos, enquanto faz com que os movimentos do jogador pareçam embaçados ou "faseados" para os outros jogadores (para que eles não arranhem a cabeça sobre o motivo de suas balas não serem Não estou batendo). Essa parece ser a tradução mais simples e prática que você pode fazer para o multiplayer.

Qualquer outra solução envolve a alteração de algum elemento físico do jogo para um ou mais jogadores que não se aplica paralelamente aos outros, eu imagino.


0

Apenas reduza a velocidade de todos os demais, executando o tempo de bala do jogador. Você pode fazer isso apenas diminuindo a sensibilidade do mouse.


E como isso se traduziria em "jogabilidade equilibrada"? : D
joltmode 16/11/11

É equilibrado, em vez de o jogador acelerar, o mundo ao redor fica mais lento. O jogador teria a mesma vantagem se acelerasse, mas dessa maneira é mais plausível.
Derek

0

Digamos que temos o jogador A em tempo de bala e o jogador B em tempo real. E eles fazem o seguinte do ponto de vista do jogador B:

  • Time 0s - Time A ativado do marcador
  • Tempo 2s - O jogador A atira no jogador B
  • Tempo 3s - O jogador B atira no jogador A

Agora, do ponto de vista do jogador A, isso levará o dobro do tempo - já que o mundo está se movendo mais devagar para ele:

  • Time 0s - Time A ativado do marcador
  • Tempo 4s - O jogador A atira no jogador B
  • Tempo 6s - O jogador B atira no jogador A

Finalmente, o servidor tem os seguintes eventos:

  • Tempo 0s - O jogador A ativa o tempo do marcador
  • Tempo 3s - O jogador B atira no jogador A (B inicia esta ação para seguir a linha do tempo)
  • Tempo 4s - O jogador A atira no jogador B (A inicia esta ação)

Então, nós temos dois problemas iniciais. A primeira é que A está agora com 3 segundos de tempo de jogo atrás de todos os outros. Isso poderia ser uma mecânica de jogo interessante se você tivesse um conceito que significasse que ele teria que pagar essa dívida de volta. Imagine um jogo de tiro com cobertura onde você pode ativar o tempo da bala para romper o campo aberto, mas quando estiver em segurança, precisará ficar parado até o resto do mundo o alcançar (os três segundos que você perdeu são repetidos )

O segundo problema é muito maior. O servidor precisa reorganizar os eventos cronologicamente para cada jogador e descobrir o resultado. Primeiramente, B atira em A - isso acontece três segundos no jogo e A vê em 6 segundos - não há problema até agora. Aos 4 segundos, o jogador A atira na linha do tempo de B. In B, isso aconteceu dois segundos atrás. Então, o que fazemos com os dois segundos de jogo que já passaram por ele, incluindo sua chance de A?

Poderíamos anulá-lo - basicamente dizer "Eu sei que o jogador B acha que ele atirou naquele cara, mas acontece que ele já estava morto, então vamos fingir que nunca aconteceu" Isso seria uma experiência ruim, muito semelhante ao atraso, mas resolveria o problema .

Poderíamos tornar as duas linhas do tempo evangélicas - usar o ponto de vista dos servidores como toda a verdade e nos preocupar com a linha do tempo de cada pessoa independentemente. Aos 3 segundos, B atira em A e o mata. Aos 4 segundos, A atira em B e o mata. Ambos os jogadores morrem de tiros que não viram. Não parece bom, mas talvez haja uma boa maneira de fazer isso depois de dar a todos os jogadores um breve curso no mundo louco da relatividade.

Poderíamos ter um sistema pseudo-em tempo real - um jogo baseado em turnos em que você planeja seus movimentos primeiro e depois aciona um cálculo simultâneo de eventos. Uma boa solução que resolve todos os problemas, além de não ser o tipo de jogo que você deseja escrever.

Longa história curta eu não acho que há uma boa maneira de implementar bullet time tratá-la no sentido clássico sendo o efeito sobre a pessoa a usá-lo - eles se movem mais rapidamente, eles vêem o mundo como mais lento, todo mundo continua como normal. Se o revertermos e todos os outros forem empurrados para o ponto de vista do cronômetro e se virarem mais devagar e seus controles se tornarem lentos, tudo acontece em sincronia e não há problemas. Mas isso é realmente tempo de bala? Embora possa parecer para um observador externo (e em replays de partidas), nenhum dos participantes terá o efeito que espera.


Isso foi feito e o efeito foi real e fez você se sentir como um deus por alguns segundos (o especialista, max payne 3).
Katu

-1

Não, não é possível. Imagine um jogador virar para câmera lenta, o que os outros jogadores verão? Você gostaria que eles vissem o jogador do tempo da bala se movendo normalmente, mas com reflexos de raios, certo? Mas, infelizmente, todos os que jogam o jogo estarão jogando no mesmo tempo real. Portanto, a única maneira de fazer isso seria desacelerar o jogo inteiro, se livrando de qualquer vantagem que ele traga, como todos estariam em tempo de bala. Também seria bastante irritante ter o jogo lento o tempo todo quando alguém apertasse esse botão.

Existem soluções alternativas que resultariam em jogadores com uma vantagem semelhante (uma de poder se mover mais rápido etc.), por exemplo, diminuindo a velocidade de todos os outros e deixando você se mover normalmente (então, em um replay, você poderia colocá-los na velocidade normal e você estar reagindo rápido), mas não acho que seja isso que você realmente deseja.


1
Isso já foi feito antes, portanto, dizer que não é possível é uma falácia flagrante.
zzzzBov

@zzzBov é literalmente impossível implementar o tempo de bala em um jogo multiplayer em sua verdadeira forma. Você teria que desacelerar o jogo inteiro e depois diminuir o tempo real para todos os outros jogadores do mundo real. Apenas pense sobre isso. Como solução, você precisaria implementar algumas coisas de pausa / atualização, mas na sua forma verdadeira não é possível.
SirYakalot

Você está certo, a forma mais verdadeira de tempo de bala onde se corre usuário em velocidade normal e outro em tempo de bala não é possível, no entanto OP foi depois de "... [implementar] um efeito tempo lento movimento / bala" que tem sido feito antes.
zzzzBov

@zzzBov "Algo como uma ilusão para o jogador que está slo-mo'ed. Então, todo mundo o vê" em tempo real ", mas ele vê tudo mais lento." Citado da pergunta original. Ele está pedindo especificamente um usuário rodando na velocidade normal e outro em tempo de bala. Isso é quase palavra por palavra o que ele pediu, de fato.
Trevor Powell

O fato de isso já ter sido implementado no jogo MP (O especialista, Max Payne 3 entre outros) anos atrás, torna essa resposta inválida.
Katu

-1

O FEAR teve tempo de bala no modo multiplayer, mas foi aplicado a todo o time e diminuiu a velocidade de todos no outro time.

O tempo de bala no modo multiplayer em tempo real, sem desacelerar os outros, dessincronizaria os clientes, o jogador em câmera lenta reagiria aos eventos que os outros jogadores faziam há muito tempo enquanto reagiria aos eventos atuais.


1
Embora seja uma solução; Eu não gosto - a única pessoa que deve ser afetada é o jogador em tempo de bala - só porque os satélites o observam como se movendo mais devagar não significa que você se move mais devagar em seu próprio quadro de referência.
Jonathan Dickinson

Desculpe, minha edição anterior parecia um pouco juvenil. "Tempo de bala em tempo real" parecia uma contradição.
Hamster

-2

Talvez você deva providenciar o equipamento necessário para atirar no jogador no PC que disparou o tempo da bala no espaço a velocidades próximas à velocidade da luz.

Isso resolveria todos os seus problemas, mas pode gerar ping / latência mais alta.


-3

bem, não seria um problema se todos eles se movessem mais devagar do que o habitual, mas não muito devagar, e quem o ativasse poderia se mover mais rápido, como submergir o jogo inteiro debaixo d'água ou levá-lo ao espaço sideral com aquele que ativava o movimento tão pacificamente como sempre


1
Não há nada de errado em responder a perguntas antigas. No entanto, ainda devemos nos esforçar para tornar boas as respostas , e essa realmente não oferece muito no caminho de uma solução completa, nem cobre um terreno que ainda não está coberto pelas respostas existentes.
21715 Josh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.