작성
·
101
0
1 .클라이언트-서버 방식
클라이언트가 입력을 보내면 중앙서버 에서 로직(충돌,이동) 이런걸 처리하고 게임상태를 업데이트하고 클라이언트한테 보내주는 방식이있고
p2p 방식
p2p 방식으로 모든 클라이언트가 동등한 지위에서 서로 통신하는 구조로 알고있는대
여기서 질문이있습니다
유니티랑 연동한다고 가정하였을때
클라이언트 -서버 방식을 이용하게 되면 유니티에 내장 기능 (컴포넌트)등을 이용해 동기화는 못하게 될꺼같은대
서버단에서 충돌 처리하는 로직을 만들어서 사용해야만 하는지?
p2p 방식은 그나마 유니티 내장 기능을 자유롭게 사용할수 있을꺼 같고 p2p 방식을 이용한다면 서버를 따로 구동하는 게 아닌 클라이언트단에서 서버를 구동하는것인가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
슝슝이님의 게임 개발 관련 질문에 답변드리겠습니다.
클라이언트-서버 모델에서는 중앙 서버가 로직 처리를 담당하므로 서버 측에서 충돌 처리와 같은 로직을 구현해야 합니다. 유니티 환경에서도 서버와 클라이언트 간의 동기화를 위해 네트워크 메시징이나 데이터 전송 관련 컴포넌트를 사용해야 합니다. 예를 들어, Photon 또는 유니티의 자체 네트워킹 기능을 이용하여 서버에 로직 처리를 요청하고, 결과를 클라이언트에 전송하여 동기화할 수 있습니다.
P2P 방식에서는 각 클라이언트가 동등한 지위를 가지며 서로 직접 통신합니다. 이 방식은 유니티의 네트워킹 기능을 이용하여 구현할 수 있으며, 중앙 서버 없이 클라이언트 간에 데이터를 직접 주고받습니다. 따라서, 각 클라이언트는 서버 역할을 일부 처리하게 됩니다. 하지만, P2P 모델은 치팅 방지, 데이터 동기화 등에서 도전적인 문제가 있으므로 게임의 특성과 요구 사항에 따라 적절한 네트워킹 모델을 선택해야 합니다.
클라이언트-서버 구조와 P2P 방식 각각의 장단점을 고려하여 게임의 목적과 사용자 경험에 맞는 네트워킹 구조를 설계하는 것이 중요합니다.