2017-10-10 10 views
-1

Im Unity와 Lidgren 네트워킹 라이브러리 (서버 - 클라이언트 아키텍처)를 사용하여 원근감있는 게임을 개발하고 Diep.io와 유사하게 보입니다.Diep.io와 비슷한 탑 다운 멀티 플레이어 게임에서 촬영하는 가장 좋은 방법은 무엇입니까?

그러나 레이턴시 때문에 촬영이 원활 해 지도록 노력하고 있습니다. 촬영 중에 클라이언트가 움직이면 클라이언트는 플레이어에서 조금 더 멀리 만들어집니다 (클라이언트에서받은 마지막 위치).

현재 촬영하려면 클라이언트가 서버에 패킷을 보내고 서버는 클라이언트 위치에 총알을 만듭니다.

Diep.io와 같은 게임은 눈에 띄는 지체없이 촬영을 어떻게 처리합니까?
Diep.io와 비슷한 게임에서 어떻게 촬영합니까?

도움을 주시면 감사하겠습니다.

답변

0

초보자 수준 이상으로 멀티 플레이 개발 경험이 없지만 여기에 2 센트입니다.

이 자습서의 지침에 따라 글 머리 기호 대기 시간을 어느 정도 처리 할 수도 있습니다. 스크립트에서 페이지 아래로 조금을 보면

https://unity3d.com/learn/tutorials/topics/multiplayer-networking/adding-multiplayer-shooting

, 그들이 말하는 부분이있다.

// This [Command] code is called on the Client … 
// … but it is run on the Server! 
[Command] 
void CmdFire() 

사용하는 라이브러리에는 클라이언트에서 호출 할 수 있지만 서버에서 실행할 수있는 유사한 방법이있을 수 있습니다.

이외에도 나는 내장형 화합 멀티 플레이 기능을 사용하지 않는 이유에 대해 조금 궁금합니다. 저수준 API와 고수준 API를 모두 가지고 있습니다.

+0

이 기술은 여전히 ​​대기 시간을 처리해야하며 명령은 클라이언트에서 서버로 보내야합니다. 또한 유니티 빌트인 네트워킹 대신 Lidgren을 사용했기 때문에, Unet은 나에게 더 복잡해 보였고 (아마도 그렇지 않은 것 같았습니다) 예상했던대로 모든 것이 작동하지 않았을 것입니다. 나중에 Unet으로 옮겨 보려고합니다. 그러나 현재 Lidgren이면 충분합니다. . – Alex

+0

대기 시간을 처리해야합니다. 그렇습니다. 완전히 피할 수 없습니다. 하지만 클라이언트 나 서버에 책임을 맡기는 실험을 통해 현재 제안 된 것처럼 보이지만 최상의 지연 시간을 보장하는 데 도움이 될 수 있습니다. 나는 유니티가 Unitys 구성 요소 시스템 주위에 만들어져 가능한 한 쉽게 사용할 수 있도록 솔루션으로 만들어 졌다고 믿습니다. 그러나 튜토리얼은 학습 곡선을 완화하기 위해 보증 될 수 있습니다. – Doh09