멀티 플레이어 게임에서 "글 머리 기호 시간"을 구현하는 방법은 무엇입니까?


29

나는 전에 그런 기능을 본 적이 없지만 재미있는 게임 플레이 기회를 제공해야합니다.

그렇다면 멀티 플레이어 / 실시간 환경 (FPS 상상)에서 슬로우 모션 / 글 머리 기호 시간 효과를 어떻게 구현할 수 있습니까?

현재 슬로 모션 된 플레이어를위한 환상 같은 것. 모두가 그를 "실시간"으로 보지만 모든 것이 느려지는 것을 보았습니다.

최신 정보

참고 사항 : FPS 게임을 즐기려면 균형 잡힌 게임이어야합니다. 예,이 총알 시간 기능은 견고해야하므로 "플레이어"에 약간의 이점을 제공하면서 다른 플레이어를 빼앗지 않아도됩니다.

또한 두 명의 플레이어가 동시에 총알 시간을 활성화 할 수도 있습니다.

더욱이:

나는 그것이 무엇이든지간에 이것을 앞으로 구현 할 것입니다. 그리고 아이디어는이 모든 것을 위해 완전히 새로운 게임 엔진을 구축하는 것입니다. 그것이 새로운 옵션을 제공한다면, 나는 아이디어를 듣는 데 더 관심이 있습니다.

한편, 우리 팀과 함께 우리도 이것에 대해 생각하고 있습니다. 우리의 이론이 만들어 질 때 나는 여기서 공유 할 것입니다.

이것도 가능합니까? 따라서 "이것도 가능합니까?"라는 질문에 대한 답을 얻었으며 이제는 최상의 솔루션을 찾을 때입니다.

나는 의사 코드와 비슷한 것을 가진 프로토 타입 이론과 같이 예외적으로 좋은 것이 나올 때까지 "답"을 유지하고 있습니다.

물리학 자와 철학자들의 말 :

주제가 닫혀 있기 때문에 관심있는 링크입니다.

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

물리 사이트에 질문을 쓸 때 생각한 조건 (복사본) :

  1. 슬로우 모션의 영향을받는 플레이어는 모든 것을 훨씬 느린 속도로 볼 수 있기 때문에보다 정확한 동작 (촬영, 움직임 등)을 만들 수있는 이점이 있습니다.
  2. 그의 행동은 다른 플레이어에게 실시간으로 영향을 미칩니다.
  3. 영향을받은 플레이어를 바라 보는 플레이어는 자신이 한 행동을 경험할 수 있다는 점을 제외하고는 차이가 없습니다.
  4. 플레이어가이 효과에서 벗어나면 평소와 같은 속도로 계속 진행합니다. (이것이 가능하지 않으면 시간이 다시 동기화 될 때까지 고통을 겪어야한다고 생각합니다)

불릿 시간에 대한 참조 (슬로우 모션) :

안타깝게도 대부분의 구현은 싱글 플레이어 전용입니다.

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


3
이것은 이미 MMORPG The Matrix Online에서 성공적으로 수행되었습니다. 상대방과 싸우고 "Interlock"에 들어갔을 때 총알 시간이 발생했습니다. 이것은 PvE와 PvP 상대 모두에서 이루어졌습니다. 인터록 외부의 모든 사람들은 "실시간 속도"를 보았습니다. 그들이하는 방법을 설명 할 전문 지식이나 지식이 없기 때문에 대답하는 대신에, 나는 단지 플레이어의 관점에서 무슨 일이 일어 났는지 알고 있습니다.
FallenAngelEyes

3
FEAR Combat에도 등장했습니다. 멀티 플레이어에는 SloMoDeathmatch라는 게임 모드가있었습니다. 이것은 내가 정확하게 기억한다면 무료 게임이므로, 그것을 다운로드하고 여전히 몇 대의 서버가 남아 있는지 확인하고 싶다면.
alextsc

3
나는 당신이 의사 코드를 기다리고 있다고 대답하지 않을 것이라고 생각합니다. 원하는 디자인이 충분히 굳어지면 코드가 분명해야합니다.
Tetrad

1
또한, "어떻게 되었든"은 나쁜 디자인 철학을 가지고 있습니다. 계속 진행하기 전에 사용하려는 방법을 프로토 타입이나 다른 게임의 실제 예제를 통해 입증 한 후에 만 ​​수행해야합니다.
Tetrad

4
-1 "의사 코드에 가까운 무언가를 가진 프로토 타입처럼 예외적으로 좋은 것이 나올 때까지 '답변'을 유지합니다." 바보가되지 마십시오.
트레버 파월

답변:


22

이전에 수행되었습니다. :) 두 가지 총알 시간을 가진 반감기 모드 전문가를 확인하십시오 .

아래에 zzzzbov의 정보를 포함하도록 편집하십시오

게임 플레이 관점에서 볼 때 "전문가"에서 총알 시간이 작동하는 방식은 플레이어가 제한된 양의 "총알 시간"을 줄 수있는 파워 업을 얻을 수 있다는 것입니다. 사용하면 플레이어 주위의 거품으로 인해 물리 속도가 느려집니다.

멀리있는 플레이어는 정상 속도로 움직일 수 있지만, 버블 (bullet, 플레이어, 폭발)의 모든 것은 느려질 것입니다. 파워 업을 사용한 플레이어는 약간 빠르게 움직이며 도망 가거나 스턴트를 사용하여 총알을 피할 수 있습니다.

"bullet-time"버블에 걸린 다른 사람은 여전히 ​​무슨 일이 일어나고 있는지 볼 수 있다는 이점이 있지만, 잡힌 플레이어와 총알의 상대 속도 차이는 동일하게 유지되므로 반응하는 능력이 실제로 존재하지 않습니다.


@Tom IIRC는 오픈 소스이므로 어떻게 수행했는지 확인할 수 있습니다.
스펜서 Rathbun

흠, 구글 검색은 소스 코드에 대한 결과를 반환하지 않았다. (전문가 : 출처에 대한 많은 정보도 표시됩니다). 링크가 있습니까?
joltmode

@Tom 나는 그것이 wikipedia 기사에서 링크되어야하는 그들의 웹 사이트에 있다고 생각했다. 그렇지 않은 경우 몇 년 전에 HL2 엔진으로 이동했기 때문에 중단되었을 수 있습니다. 액세스하려면 개발자에게 이메일을 보내야 할 수도 있습니다. 물론 나도 씻을 수있었습니다.
스펜서 Rathbun

그들의 웹 사이트도 작동하지 않습니다 ..
joltmode

5
이 답변을 찾을 때까지 동일한 답변을 추가하려고했습니다. 게임 플레이 관점에서 볼 때 "전문가"에서 총알 시간이 작동하는 방식은 플레이어가 제한된 양의 "총알 시간"을 줄 수있는 파워 업을 얻을 수 있다는 것입니다. 사용하면 플레이어 주위의 거품으로 인해 물리 속도가 느려집니다. 멀리있는 플레이어는 정상 속도로 움직일 수 있지만, 버블 (bullet, 플레이어, 폭발)의 모든 것은 느려질 것입니다. 파워 업을 사용한 플레이어는 약간 빠르게 움직 이며 도망 가거나 스턴트를 사용하여 총알을 피할 수 있습니다.
zzzzBov

12

단일 플레이어에서 총알 시간이있어 어떤 의미있는 방식 으로든 멀티 플레이어로 성공적으로 전환 한 게임은 생각할 수 없습니다. 그것들을 사용하여 플레이어의 속도를 높여서 해결 한 몇 가지가있을 수 있지만, 그런 종류의 점은 패배합니다.

총알 시간은 플레이어가 나쁜 것처럼 느끼게하기 위해 존재합니다. 당신은 더 높은 수준의 인식을 시뮬레이션함으로써 플레이어에게 겉으로는 불공평 한 이점을 제공합니다. 이것의 최종 결과는 플레이어가 덮개에서 뛰어 내리는 등의 멋진 일을하면서 조준 할 수 있다는 것입니다. 총알 시간이 활성화 된 상태에서 플레이어의 속도를 높이면 반응 할 시간이 줄어 듭니다. 이는 원하는 것과 반대입니다.

동기식 멀티 플레이어 환경에서는 실제로 단일 플레이어 환경에서 사용되는 느낌을 시뮬레이션하는 사용자 활성화 "시간이 느려지는"솔루션이 없습니다. 시간 자체가 느려지면 모든 사람의 인식이 높아집니다. 특히 마우스 조준이 일반적으로 즉각적인 PC 게임에서는 모든 사람이 느리게 움직이는 대상의 이점을 누릴 수 있습니다.

이제 당신이 이것에 죽었다면, 내 제안은 그것을 플레이어 활성화 기능으로 만드는 대신에 일종의 "상태"로 만드는 것입니다. 좋은 남자 대 나쁜 남자이며 서로를 촬영할 때 모든 것이 느려지는 것처럼 보이는 John Woo 영화처럼 생각하십시오. "만남"이 시작되면 slo-mo를 켜면 흥미로운 효과를 얻을 수 있습니다. 공중에서 떠 다니는 총알이 맞지 않아 뛰어 다니는 물건들과 물건들. 물론 이것은 일대일 게임에서만 실제로 작동합니다. 싱글 플레이어 게임에서와 같이 총알 시간의 일방적 인 이점은 얻지 못하지만 재미있는 플레이 경험이 될 수 있습니다.


1
서로를 볼 수있는 사람들의 속도를 늦춤으로써 1 대 1 이상으로 확장 될 수 있으며, 다른 사람이 보자 마자 속도를 늦출 수 있습니다. 그렇게하면 다른 사람들은 싸움에 들어갈 때까지 정상적인 속도입니다.
George Duckett

회전 속도를 제한하여 즉각적인 조준 문제를 해결할 수 있습니다. 실제 문제는 올바른 시스템에서 아무도 새로운 기준 프레임의 영향을받지 않아야한다는 것입니다. 총알 시간에 플레이어가 속도를보고 만 볼 수 있습니다.
조나단 디킨슨

모두를 늦추지 마십시오. 총알 시간이 거의 다 떨어질 때까지 다른 플레이어를 립니다. 불릿 시간이 끝날 때 타임 라인이 다시 동기화되도록 시간을 정하려고합니다.
Martin Sojka

이것은 현재까지의 유일한 답변입니다. 시간을 단축하거나 늦추지 않습니다. 시뮬레이션 속도를 늦추어 플레이어가 실시간으로 수행하면 빠르게 제어 할 수있는 움직임에 반응하고 계획을 세우는 데 더 많은 시간을 할애 할 수 있습니다. 게임 플레이 관점에서이 작업을 수행하려면 관련된 모든 플레이어 (동작 또는 감시에 참여)가 느려지고 관련이없는 모든 플레이어 (느리게 보이지 않는 플레이어)는 정상 속도로 계속 작동합니다. 이벤트를 볼 수있는 모든 사람을 느리게하지 않으면 바보처럼 보일 것입니다.
MrCranky

Max Payne 비디오 게임은 "게시판"을 게임 내 능력으로 사용합니다. 특정 Star Wars Jedi 게임 (Jedi Knight II도 있음)에는 "Force Speed"가 있습니다.이 속도는 다른 모든 사람을 느리게하여 속도를 높입니다 (다른 Force Speed ​​사용자 제외).
KeithS

8

일반적인 생각

이것은 일반적인 상대성 이론을 사용하여 가장 잘 설명 할 수있는 문제입니다. 예를 들어 위성에서 망원경을 통해 총알 시간의 영향을 볼 수 있다는 사실을 고려하십시오 (유명한 중성미자가 빛 문제보다 빠르게 이동하는 원인)-방정식 이러한 조건 하에서 해결할 수있는 것; 그것은 완전히 가능하다는 것을 의미합니다.

귀하의 게임은 별도의 참조 프레임을 처리 할 수 ​​있어야합니다. 이의 순 효과는 ( '플레이어'는 총알 시간이 활성화 된 사람입니다) 알고 있습니다.

  • 플레이어를 보는 사람들은 그들이 매우 빠르게 움직이는 것을 볼 것입니다.
  • 플레이어는 사람들이 매우 느리게 움직이는 것을 볼 것입니다.
  • 플레이어는 다른 모든 사람을 참조하여 과거 / 미래로 이동합니다.

운 좋게도 이것은 총알 시간의 플레이어가 다른 사람보다 유리하다는 것을 의미합니다. 그들은 그를 겨냥 할 수는 없지만 평범한 사람은 시간 팽창을 관찰 할 때 눈에 띄는 차이가 없을 것으로 기대하기 때문에 설득력이 없습니다.

물리학에 이것을 게시하고 (게임이지만 실제 이론 지식이 필요함) 동시 시뮬레이션에서 그 효과를 어떻게 추정 할 것인지 아이디어를 요청하는 것이 좋습니다.

내가 볼 수있는 한 가지 가능한 해결책은 모든 사람들이 (뒤로 이동함에 따라) 플레이어가 미래에 따라 (총알 시간보다 훨씬 적은) 총알 시간을 경험하게하여 플레이어를 따라 잡는 것입니다. 시간)입니다. 이렇게하면 실제로 과거 상태 등을 저장하지 않고도 시간 차이를 근사 할 수 있습니다. 이 효과는 물리적으로 정확하지 않기 때문에 '시간 반동'을 설명 할 방법이 필요합니다.

또 다른 아이디어는 s = d/t플레이어가 총알 시간에 들어갈 때 가장 기본적인 물리 방정식 ( ) 을 남용하는 것입니다. 모든 관점에서 모든 크기를 절반으로 줄이지 만 원래의 기준 프레임에 따라 속도를 동일하게 유지하면 (효과적으로) 두 배) 방정식은 여전히 ​​균형을 이룰 것입니다. 우주 영화의 워프 드라이브 시퀀스는이 공간 확장을 사용하여 효과를 묘사하므로 사람들은 그것을 보는 데 익숙합니다.

실제 솔루션

나는 이것을 훨씬 더 생각했다. Steamworks 네트워크 시스템의 작동 방식을 살펴보면 ( 누군가 연결되어 있습니까? ) 서버는 일정 시간 동안 일정 시간 앞두고 있습니다. 각 클라이언트는 보간해야하는 '다음'프레임에 대해 알고 있습니다.

예를 들어 서버가 모든 플레이어보다 20ms 앞서 있다고 가정 해 봅시다. 플레이어가 총알 시간을 입력하면 업데이트 간격을 40ms로 변경하십시오 (시뮬레이션은 40ms 시간 간격으로 실행되고 서버는 미래에 40ms 동안 작업을 대기합니다). 기본적으로 다른 플레이어를 참조하여 미래로 나아가게됩니다. 그를 참조에서 더 빨리 움직이고 더 느리게 움직입니다. 그가 총알 시간을 떠나면 다른 모든 사람이 자신보다 5ms 우위를 점하여 '캐치 업'을 할 수 있습니다 (이것은 time rebound우연히 똑똑한 플레이어가이 따라 잡는 기간 동안 총알을냅니다). 포물선을 시간 단계에 매핑하면 조금 더 나아질 수 있습니다. 이렇게하면 상황이 느려지고 멈춘 다음 점차적으로 속도가 빨라집니다.

면책 조항 : 나는 물리학자가 아니지만 상대성에 대한 실용적인 지식을 가지고 있습니다.


4

Heroes Over Europe의 멀티 플레이어 게임에서 작동하는 프로토 타입 총알 모드를 구현하면서 $ 0.02를 추가하고 싶었습니다 .

싱글 플레이어에서 적절한 순간에 버튼을 누르면 시간이 느려지고 원하는 대상을 확대합니다. 멀티 플레이어에서 기능을 복제하기 위해 전 세계적으로 시간을 늦추고 싶지는 않았습니다 (게임이 16 명의 동시 플레이어를 지원하는 것이기 때문에). "버블"방법을 사용했습니다.

특히, 총알 모드가 트리거되면 대상 비행기 주위에 구가 만들어졌습니다. 시간의 통과 속도는 구의 중심까지의 거리에 따라 변했습니다. 시간은 표면에서 중앙 부근의 최소값으로 선형 적으로 저하됩니다. 속도는 구체가 존재 한 시간과 구체가 "증발"되기 전에 얼마나 오래 방치되었는지에 따라 변했습니다.

이는 버블 의 미래 시작 시간을 정의한 패킷을 전송하여 여러 시스템에서 동기화되었습니다 . 이를 통해 지연 시간에도 불구하고 효과가 동기화 된 상태로 유지되었습니다. 유사하게, 효과가 조기에 종료 될 때, 패킷은 미래가 종료 될 시간을 선언합니다.

시간의 통과 속도는 항상 기능적으로 정의되었습니다. 구의 정의, 현재 시간 및 위치가 주어지면 시간이 얼마나 빨리 흐르는 지 결정할 수있었습니다.

효과를 발휘하려면 여러 게임 시스템을이 "기능적"시간 정의에 맞게 조정해야했습니다. 비행기, 총알, 미사일 및 기타 효과는 각각 dt적절한 기능을 호출하여 해결 된 개인 을 사용 했습니다. 프로토 타입 작업을위한 대부분의 작업이 여기에서 소비되었습니다.

결과는 합리적으로 잘 작동했습니다. 총알 시간의 대상이 된 플레이어는 눈에 띄게 느려지고 공격자의 십자선에서 벗어나 슬로우 모션 총알의 우박을 피할 수있는 (작은) 기회가 있습니다. 근처의 플레이어는 비행기와 총알이 슬로우 모션으로 서로 피하는 것을 볼 수 있었지만 그렇지 않은 경우에는 영향을받지 않았습니다.

격발 플레이어도 속도가 느려졌지만 그로 인해 불리한 점은 아니 었습니다. 대상을 확대하여 볼 수 있으며 먹이의 원샷 킬에 영향을 줄 수 있습니다. 이 상태에서는 다른 플레이어가 당신을 죽이거나 도둑을 죽일 수 있지만, 버블에 들어갈 때 비행기와 총알이 영향을 받아 탈출 할 시간이 생깁니다.

불행히도, 그것이 작동하는 동안 우리는 멀티 플레이어 기능을 완성하고 연마 할 시간이 없었기 때문에 떨어졌습니다. (싱글 플레이어는 여전히 "에이스 킬"이라는 기능을 유지했습니다.)


2

총알 시간은 아니지만 재미있을 수 있습니다.

Braid가 시간을 늦추는 것과 비슷한 점은 어떻습니까? 즉, 총알 시간을 겪고있는 사람과 더 가까워 질수록 느리게 진행됩니다. 영향의 영역을 벗어나면 시간이 정상적으로 흐릅니다.

예를 들어, 플레이어 A가 총알 시간을 가면 주위에 "느린 시간"의 점진적 구를 올려서 제대로 조준 할 수는 있지만 더 빨리 움직일 필요는 없습니다. 총알이 맞을수록 속도가 느려지므로 과잉 예측

비록 이것에 대해 더 많이 생각할수록, 플레이어 A를 쉬운 대상으로 만들 수 있기 때문에 효과가 떨어질 것이라고 생각합니다. (그의 머리가 느려지는 것처럼?) 어쨌든 3D로 보는 것이 재미있을 것입니다.


1
실제로 흥미롭지 만, 총알이 플레이어에 가까워 질수록 속도가 느려지면 피할 수 있어야합니다.
joltmode

그렇습니다. 그러나 Braid와 마찬가지로 플레이어 자체도 느려집니다. 즉 플레이어의 회전 속도는 여전히 빠를 수 있으므로 총알을 피하기 위해 차단 또는 쉴드를 배치하는 것이 더 쉬울 수 있습니다. 총알의 방법의 속도가 느려질 것입니다 ...
Seb

2

나는 이것이 오래된 질문이라는 것을 알고 있지만 상대성을 다루는 대부분의 답변과 관련된 문제를 언급하지 못했습니다.

질문에 설명 된 효과로 구현하면 멀티 플레이어의 총알 시간이 불가능합니다.

그 이유는 상대성이 작동하는 방식입니다. 여기서 여러분 중 일부는 그것을 언급하고 상대성을 분명히 이해하지만 문제는 모델이 잘못 설정되어 있다는 것입니다.

많은 사람들이 귀하의 답변에 "플레이어 A의 참조 대 플레이어 B '를 사용했지만 슬프게도 실제로 존재하지 않습니다. 그렇습니다. 플레이어, 아마도 다수의 플레이어가 있으며, 세계를 제어하고 상호 작용하고 게임에 대한 자신의 관점을 가질 수 있지만 관점은 시간의 기준이 아닙니다. XYZ 공간은 XY에 투영 된 것입니다. 평면.

시간에 대한 단일 참조 지점 만 있으며 이는 서버 (또는 호스트)입니다. 세계의 물리적 상태에 대한 관점은 하나 뿐이며 따라서 하나의 기준점 만 있습니다. 플레이어가 화면에서 보는 것은 동일한 물리적 시뮬레이션의 다른 그래픽보기입니다.

한 플레이어가 한 속도로 시뮬레이션을 실행하고 다른 플레이어가 다른 속도로 동일한 시뮬레이션을 보도록하고 동기화를 해제하는 것은 불가능합니다. 어딘가에 뭔가 주어야합니다.

여러 시뮬레이션을 수행하거나 서버를 클라이언트보다 앞서 실행하려는 노력은 의미가 없습니다. 게시물에 설명 된 효과는 단일 참조 포인트를 강요하거나 생각이 비 동기화되도록하고 플레이어가 사실 이후에는 실제로 행동하지 않았다고 알려주지 않으면 수행 할 수 없습니다.

최선의 해결책은 이미 주어진 것과 비슷하다고 생각합니다. 이것은 플레이어 주위의 거품에서 속도가 변하는 끈적한 효과를내는 것입니다. 즉, 플레이어는 속도를 늦추지 않으며 버블은 항상 중앙에 배치되어 그와 함께 움직입니다. 이를 통해 플레이어는 가장 빠른 속도로 움직이며 가장 가까운 사람들은 느려집니다. 그는 자신의 파워 업 이점을 얻고 그 지역에서 멀리 떨어진 사람들은 효과를 느끼지 않습니다. 가까이있는 사람들은 속도가 느려지지만 누군가 파워 업을 사용하고 있다는 것은 분명합니다. (어떻게 사용하고 있는지 플레이어를 강조하여 상대방 플레이어가 무슨 일이 일어나고 있는지 왜 이해할 수 있는지 제안 할 것을 제안합니다).


1

매우 어색합니다. 시간 팽창 문제를 보지 않아도, 당신은 총알 시간에 4 초를 소비 한 반면, 게임의 다른 모든 사람들은 2 초를 실시간으로 보냈다고 상상해보십시오. 실제로 모든 사람들에게 같은 시간이 지났으므로 게임에서 2 초 동안 "돌아 가야"합니다. 따라서 어느 시점에서 2 초의 게임 시간을 "건너 뛰거나" 정상보다 빠르게 실행하는 데 시간 이 걸리거나 총알 시간을 낭비하게 만드는 다른 요소를 사용해야합니다.

또한, 당신이 한 시간에 2 초에 당신이하는 일을 1 초로 다른 사람들에게 보내야하는 것에 관한 모든 것이 있습니다.


1

플레이어에게 미니 퀵 타임 같은 이벤트를 던져 총알을 피하거나 적의 목표를 자동 추적하면서 플레이어의 움직임이 다른 플레이어에게 희미 해 지거나 "단계적으로"보이게합니다. 안타). 멀티 플레이어를위한 가장 단순하고 실용적인 번역 인 것 같습니다.

다른 솔루션에는 다른 플레이어와 병렬로 적용되지 않는 하나 이상의 플레이어에 대해 변경되는 게임의 물리적 요소가 포함됩니다.


0

총알 시간을 경험하는 플레이어를 제외한 다른 모든 사람을 늦추십시오. 마우스 감도를 낮추면됩니다.


그리고 이것이 어떻게 "균형 게임 플레이"로 해석됩니까? : D
joltmode

균형을 잡으면 플레이어가 속도를 높이는 대신 주변 세계가 느려집니다. 플레이어가 속도를 높이면 동일한 이점을 얻을 수 있지만이 방법은 더 그럴듯합니다.
데릭

0

총알 시간에 선수 A가 있고 실시간으로 선수 B가 있다고 가정 해 봅시다. 그리고 그들은 플레이어 B의 관점에서 다음을 수행합니다.

  • Time 0s-Player A 활성화 된 총알 시간
  • 타임 2 초-플레이어 A가 플레이어 B를 쏘고
  • 시간 3 초-플레이어 B가 플레이어 A를 쏴

이제 플레이어 A의 관점에서 볼 때 세계가 느리게 움직이기 때문에 시간이 두 배가 걸립니다.

  • Time 0s-Player A 활성화 된 총알 시간
  • 시간 4 초-플레이어 A가 플레이어 B를 쏜다
  • 시간 6 초-플레이어 B가 플레이어 A를 쏜다

마지막으로 서버에 다음과 같은 이벤트가 발생합니다.

  • Time 0s-플레이어 A가 총알 시간을 활성화합니다
  • Time 3s-플레이어 B가 플레이어 A를 쏘고 (B는이 액션을 시작하여 타임 라인을 따릅니다)
  • Time 4s-플레이어 A가 플레이어 B를 쏜다 (A가이 동작을 시작 함)

따라서 두 가지 초기 문제가 있습니다. 첫 번째는 A가 이제 다른 사람들보다 3 초의 게임 시간이라는 것입니다. 만약 그가이 부채를 갚아야한다는 개념이 있다면 이것은 재미있는 게임 메카닉 일 수 있습니다. 총알 시간을 활성화하여 열린 땅을 돌파 할 수있는 덮개 기반 사수를 상상해보십시오. 일단 덮개 아래로 안전하게 들어가면 다른 세계가 당신을 따라 잡을 때까지 정지 상태를 유지해야합니다. )

두 번째 문제는 훨씬 큽니다. 서버는 각 플레이어의 이벤트를 시간순으로 재구성하고 결과를 파악해야합니다. 먼저 B는 A를 쏴서 게임에 3 초간 걸리고 A는 6 초에 봅니다. 지금까지 아무런 문제가 없습니다. 4 초에 플레이어 A가 B를 쏜다. B의 타임 라인에서 이것은 2 초 전에 일어났다. A의 샷을 포함하여 이미 그를 지나간 2 초의 게임 플레이로 무엇을해야합니까?

우리는 그것을 무효화 할 수 있습니다-기본적으로 "B 플레이어가 그 남자를 쏜 것으로 생각 하지만, 이미 죽었다는 것을 알았 으므로 결코 발생하지 않은 척하자"라고 말하십시오. 이것은 지연과 매우 유사한 엉터리 경험이 될 것입니다. .

우리는 두 가지 타임 라인을 모두 복음으로 만들 수 있습니다. 서버의 관점을 진실로 사용하고 각 사람이 타임 라인을 독립적으로 걱정할 수 있습니다. 3 초에 B는 A를 쏘고 그를 죽인다. 4 초에 A는 B를 쏘고 죽인다. 두 선수 모두 보지 못한 샷으로 사망합니다. 잘 들리지는 않지만 모든 플레이어에게 미친 상대성 세계에서 간단한 코스를 제공 한 후이 작업을 수행하는 좋은 방법이있을 수 있습니다.

의사 실시간 시스템 (Pseudo-real-time system)-턴 기반 게임으로 먼저 움직임을 계획하고 동시에 이벤트 계산을 시작할 수 있습니다. 작성하려는 게임 유형이 아닌 다른 모든 문제를 해결하는 좋은 솔루션입니다.

긴 이야기 짧은 I는 고전적인 의미에서 효과를 사용하는 사람에있는 그것을 치료 총알 시간을 구현하는 좋은 방법이 생각하지 않는다 - 그들이 빠르게 이동 그들이 느리게으로 세상을보고는, 다른 사람은 정상적으로 계속한다. 우리가 그것을 뒤집어 놓고 다른 사람들이 총알 타이머의 관점에 빠지고 자신이 느리게 움직이고 컨트롤이 느리게 보이면 모든 것이 동기화되어 발생하며 아무런 문제가 없습니다. 하지만 정말 총알 시간입니까? 외부 관찰자 (및 매치 리플레이)에게 보이는 것처럼 보이지만 참가자 중 누구도 기대 한 결과를 얻지 못했습니다.


그것은 이루어졌고 효과는 현실적이었고 몇 초 동안 신처럼 느끼게했습니다 (전문가, max payne 3).
Katu

-1

불가능합니다. 한 선수가 슬로우 모션으로 넘긴다 고 상상해보십시오. 다른 선수는 무엇을 볼 수 있습니까? 총알 시간 플레이어가 정상적으로 움직이지만 번개 반사가 나타나는 것을 원하십니까? 그러나 불행히도 게임을하는 모든 사람이 동일한 실시간으로 게임을합니다. 따라서이를 수행하는 유일한 방법은 전체 게임 속도를 늦추고 모든 사람이 총알 시간에있을 때 얻는 이점을 제거하는 것입니다. 또한 누군가가 그 버튼을 누를 때마다 게임 속도가 느려지는 것은 상당히 성 가실 것입니다.

예를 들어 모든 사람들을 느리게하고 정상적으로 움직일 수있게하는 등의 이점 (플레이어가 더 빨리 움직일 수있는 것 등)을 얻는 해결 방법이 있습니다. 빨리 반응하지만) 나는 그것이 정말로 당신이 원하는 것이라고 생각하지 않습니다.


1
그것은 전에 이루어 졌기 때문에 눈부신 오류는 불가능합니다.
zzzzBov

@zzzBov 멀티 플레이어 게임에서 글 머리 기호 시간을 실제 형태로 구현하는 것은 사실상 불가능합니다. 먼저 전체 게임 속도를 늦춘 다음 실제 세계의 다른 모든 플레이어의 실제 시간을 늦춰야합니다. 생각 해보세요. 해결 방법으로 일부 일시 중지 / 잡기 항목을 구현해야하지만 실제로는 불가능합니다.
SirYakalot

당신 맞아요, 하나 개의 사용자 정상 속도로 실행되고 총알 시간에 다른 수없는이, 그러나 영업 이익은 후였다 총알 시간의 진정한 형태 "... 슬로우 모션 / 총알 시간 효과 [실행]" 했다 있었다를 전에 했어.
zzzzBov

@zzzBov "현재 슬로 모션중인 플레이어를위한 환상 같은 것. 모두가 그를"실시간 "으로 보지만 모든 것이 느려지는 것을 본다." 원래 질문에서 인용했습니다. 그는 한 사용자가 정상 속도로 달리고 다른 사용자는 총알 시간으로 구체적으로 요구하고 있습니다. 그것은 실제로 그가 요구 한 단어에 대한 단어입니다.
트레버 파월

이것이 이미 MP 게임 (전문가, Max payne 3)에서 이미 구현되어 있다는 사실 때문에이 답변은 유효하지 않습니다.
Katu

-1

FEAR는 멀티 플레이어에서 총알 시간을 보냈지 만 팀 전체에 적용되어 다른 팀의 모든 사람을 느리게했습니다.

실시간 멀티 플레이어에서 총알 시간은 실제로 다른 플레이어의 속도를 늦추지 않으면 서 클라이언트를 비 동기화하고 슬로우 모션 플레이어는 다른 플레이어가 현재 이벤트에 반응하는 동안 다른 플레이어가 이전에했던 이벤트에 반응합니다.


1
그것은 해결책이지만; 나는 마음에 들지 않습니다-영향을 받아야하는 유일한 사람은 총알 시간에 플레이어입니다-위성이 당신을 느리게 움직인다는 것이 자신의 참조 프레임에서 느리게 움직인다는 것을 의미하지 않기 때문에.
조나단 디킨슨

죄송합니다. 이전 수정 사항이 약간 어리 석었습니다. 그러나 '실시간 총알 시간'은 모순처럼 들렸다.
햄스터

-2

아마도 총알을 발사 한 PC에서 플레이어를 초고속 속도로 우주로 발사하는 데 필요한 장비를 배치해야 할 것입니다.

이렇게하면 모든 문제가 해결되지만 핑 / 대기 시간이 길어질 수 있습니다.


-3

그들이 평소보다 느리게 움직이지만 너무 느리게 움직이지 않으면 그것을 활성화시키는 사람이 게임 전체를 수중에 담 그거나 바깥 쪽 공간으로 가져가는 것처럼 빠르게 움직일 수 있습니다.


1
오래된 질문에 대답하는 데 아무런 문제가 없습니다. 그러나 여전히 답을 좋게 만들기 위해 노력해야하며 , 이것은 완전한 솔루션을 제공하는 데 많은 도움이되지 않거나 기존 답변으로 아직 다루지 않은 근거를 실제로 다루지 않습니다.
Josh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.