작성
·
393
·
수정됨
0
안녕하세요, 강의 관련 질문은 아니지만 궁금한 점이 생겨 질문 올립니다.
개인 프로젝트로 TPS 생존 게임을 제작하려 합니다. 한 경기에 10명 내외의 클라이언트가 접속할 예정입니다.
언리얼 엔진에서 제공하는 리슨 서버와 데디케이티드 서버 중 어떤 방식이 알맞을까요?
만약 데디케이티드 서버가 알맞다면 리슨 서버에서 구현했던 if(Hasauthority()) 등의 로직들은 제거해주면 되는 것인가요? 만약 데디케이티드 서버로 구성하면 어디서 클라이언트의 데이터 검증을 하게 되는지 등 리슨 서버와 어떻게 다르게 구성해야 하는지 잘 와닿지가 않습니다. characterplayer.cpp 등에 작성한 코드 자체가 서버 로직임과 동시에 클라이언트 로직인 것인지.. 인터넷에는 데디 서버를 구축하는 방법만 나와 있어서 여쭈어 봅니다.
++) 그리고 게임을 제작할 때 BP와 C++을 혼용해도 상관 없을까요?
강의는 전부 C++로 진행되어서 웬만하면 C++로 제작할 예정이지만, BP를 혼용하여 사용하는 것에 있어서 주의점 등이 있는지 궁금합니다.
답변 2
0
딱히 제거할 필요는 없습니다. 어짜피 서버에서 돌아가는 로직이고, 클라이언트 관련된 내용은 서버 빌드시 언리얼 엔진이 알아서 제거해줍니다.
본 예제는 리슨서버로 설명했지만, 리슨/데디서버 둘 다 모두 동작합니다.
강의 노트에 데디서버 빌드 방법을 추가했으니 참고해주시기 바랍니다.
게임을 제작할 때 BP와 C++를 혼용하는 것이 좋다고 보여집니다만, 이는 케이스바이케이스입니다.
파트4 GAS 강좌를 학습하시면 두 가지를 어떻게 잘 혼용해 쓰는지 확인할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
차태관님의 질문에 대해서, 비슷한 컨텍스트의 질문에 답한 기존 게시글을 찾았습니다. 이 게시글들이 차태관님의 궁금증을 해결하는 데 도움이 될 것입니다.
리슨 서버와 데디케이티드 서버 선택 문제와 관련된 질문에, 이득우 강사님은 리슨 서버의 경우 클라이언트가 서버 역할도 겸하므로 구성이 복잡해집니다. 반면, 데디케이티드 서버는 순수하게 서버 역할만 집중하기 때문에 개발이 상대적으로 간단하다고 언급되었습니다. (참고하기)
데디케이티드 서버 개발 방식에 대한 질문에서 데디케이티드 서버의 개발과 관련하여, 서버 클라이언트 모델에서 리슨 서버로 개발된 내용을 데디케이티드 서버로 전환할 때 고려해야 할 사항들에 대한 의견을 담고 있습니다. (참고하기)
리슨 서버 vs 데디케이티드 서버: 리슨 서버는 서버가 플레이어 중 한 명을 겸하므로 작은 실시간 게임 또는 콘텐츠 공유에 적합합니다. 반면, 데디케이티드 서버는 서버 자체가 별도로 구동되어 대규모 플레이어와 높은 수준의 신뢰성이 요구되는 상황에 더 적합합니다.
데디케이티드 서버 개발: 데디케이티드 서버 개발 시, 본래 리슨 서버에서 사용되던 HasAuthority()
같은 로직은 여전히 필요할 수 있습니다. 이는 데디케이티드 서버 환경에서도 클라이언트와 서버 간 권한 및 책임 분리를 명확하게 관리하기 위해 사용됩니다. 특히, 게임 로직 내에서 서버만 수행해야 하는 연산과 클라이언트에서 발생하는 이벤트에 대한 검증 등을 처리하기 위해 필요합니다.
데디케이티드 서버에서 클라이언트의 데이터 검증은 서버 측에서 수행됩니다. 이는 보안과 데이터 무결성을 유지하기 위해 필수적인 부분입니다. 클라이언트에서 서버로 데이터를 보낼 때, 서버는 이를 검증하여 조작된 데이터나 부적절한 요청이 게임 상태에 영향을 미치지 않도록 해야 합니다.
저는 차태관님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
항상 친절한 답변 정말 감사합니다 교수님...!