Unity 검색

새로운 Unity 멀티플레이어 샘플 게임 Boss Room

2021년 4월 8일 게임 | 6 분 소요
Boss Room Title Screen
Boss Room Title Screen
공유

Is this article helpful for you?

Thank you for your feedback!

소규모 협동 RPG인 Boss Room을 통해 유니티에서 새롭게 선보이는 실험적 넷코드 라이브러리와 멀티플레이어 게임의 기본 패턴을 살펴보세요

멀티플레이어 게임은 제작하기 쉽지 않으며, SDK 문서가 제공되더라도 부담스러울 때가 많습니다. 개발자는 SDK 문서와 패턴을 활용하여 게임을 제작하는 방법에 대한 조언이 필요합니다.유니티 멀티플레이어 네트워킹 팀은 개발자에게 플레이어를 위한 훌륭한 멀티플레이어 게이밍 경험을 빌드하는 데 필요한 툴을 제공하는 것을 목표로 합니다. 여기에는 기본 네트워킹 기술뿐만 아니라, 해당 기술을 응용할 수 있도록 기술 자료와 교육용 템플릿도 제공합니다. 교육용 템플릿에는 멀티플레이어 샘플이 포함되어 있으며 이번 포스팅에서는 첫 번째 게임 샘플인 Boss Room을 소개합니다.

Boss Room은 아직 개발 중에 있으며, 샘플 게임을 기반으로 한 네트워킹의 다양한 측면이 유니티의 새로운 기술 자료 사이트에 작성될 예정입니다. 튜토리얼에서는 소규모 협동 게임을 네트워킹하는 데 있어 여러 필수적인 요소들을 다룹니다. 여기에는 RPC와 NetworkVariables 중 더 나은 선택지는 무엇인지, 지연 보상 기법에 반응하도록 게임을 설계하는 방법 등이 포함됩니다.  

이제 유니티의 새로운 사전 체험판 협동 게임 샘플인 Boss Room에 대해 자세히 알아보도록 하겠습니다. 

Boss Room 기본 정보

Boss Room은 2020 LTS를 기반으로 빌드된 공식 샘플 프로젝트로, Unity에서 기본으로 제공하는 도구와 그래픽스, 그리고 실험적 네트워킹 기술을 선보입니다. 현재 Github에서 사전 체험판으로 이용하실 수 있습니다 Boss Room은 새로운 실험적 넷코드 패키지를 활용하여 협동 RPG 던전에서 최대 8명의 플레이어가 임프와 보스 몬스터를 함께 쓰러뜨리는 플레이를 시연합니다. Boss Room 샘플은 멀티플레이어 솔루션이 성장해 나감에 따라 커뮤니티와 함께 계속해서 업그레이드될 예정입니다.

여기에서 바로 사용해보거나, 아래에서 현재 버전의 Boss Room에 대해 알려주는 간략한 가이드를 확인해 보세요.

전제

플레이어는 게임 서버를 호스팅하거나 다른 플레이어의 기기 중 하나에서 호스팅되는 게임 서버에 참여하여 Boss Room 플레이를 시작하게 됩니다.

접속이 완료되면 8명의 영웅 중에서 하나를 선택하고, 로비로 들어가 캐릭터를 고른 후 모든 파티 구성원이 플레이 준비를 마칠 때까지 대기합니다. 모든 플레이어가 준비 완료되면 짧은 타이머가 표시되고 모든 영웅이 Boss Room 환경으로 이동합니다.

Boss Room에서 플레이어들은 힘을 합쳐 적 임프를 상대하고 보스 몬스터를 쓰러뜨려야 합니다.

네트워킹

Boss Room의 주요 목표는 개발자에게 멀티플레이어 게임의 기본 컨셉과 패턴을 알려주는 것이기 때문에, 샘플이 포함하고 있는 네트워킹 요소를 눈여겨 봐야 합니다. 

Boss Room이 보여주는 주요 기능 중 하나는 액션 애니메이션 예측, 로비, 상태 동기화 대 RPC와 같은 멀티플레이어 패턴입니다. 유니티는 사용자에게 패턴 구현뿐만 아니라 이를 이해할 수 있는 기술 자료도 제공합니다. 유니티의 기술 자료 사이트를 주기적으로 확인하면서 앞으로 몇 달 간 새로운 게시물을 통해 최신 정보를 얻으시기 바랍니다. 

Boss Room은 클라이언트에서 호스팅하는 서버를 사용한 네트워킹 모델이며, 플레이어들은 통합된 Photon Relay와 IP 직접 연결을 통해 서로와 연결됩니다. 

캐릭터와 클래스

플레이어 캐릭터의 경우 현재 4가지의 3D 캐릭터 클래스(마법사, 전사, 도적, 궁수)와 3가지의 종족(엘프, 인간, 드워프), 그리고 두 가지 성별이 제공됩니다. 각 캐릭터는 두 가지의 주요 능력을 가지고 있으며 감정 표현 애니메이션도 포함하고 있습니다. AI/적의 경우 임프와 던전 보스 몬스터가 있으며, 각각 고유한 능력을 지닙니다. 

Characters from Boss Room

Boss Room의 모든 캐릭터는 재사용 및 새로운 형태와 크기로 조정 가능하도록 설계된 “U”라는 애칭의 공통 캐릭터 모델을 기반으로 합니다. 모든 캐릭터의 구조가 동일하기 때문에 얼마든지 재사용이 가능합니다. Boss Room은 UCL 라이선스를 사용하므로 개발자가 모든 Unity 에셋을 재사용할 수 있으며 개인 Unity 프로젝트에서 이 에셋을 기반으로 빌드할 수 있습니다. 마음껏 변형하여 활용해 보세요.

Image depicting how characters can be reimagined

위에서 말한 바와 같이 Boss Room은 협동 RPG에서 쉽게 찾아볼 수 있는 다양한 액션 게임플레이 기법을 보여주며, 액션을 구현하는 데 유용한 코딩 패턴과 기법 또한 확인할 수 있습니다. 여기에는 클라이언트 측 보간을 통한 서버 기반 경로 탐색과 이동뿐만 아니라 액션 시스템을 일반화된 메커니즘으로 사용하여 캐릭터가 네트워킹된 방법으로 '행동'하도록 합니다. 

액션은 기본 캐릭터 공격부터 궁수의 일제 사격과 같은 화려한 AoE(Area of Effect, 효과범위) 기술까지 모두 일컫습니다. 아래 목록은 이 시스템을 사용하여 구현되는 액션의 기본 형태를 설명합니다.

  • 물리 기반 피격 범위 확인을 포함하는 근접 공격
  • 효과 범위 공격: 이 공격은 클라이언트가 제공하는 지점을 중심으로 하여 서버 기반 효과에 대한 클라이언트 측 영역 선택을 보여줍니다.
  • 서버 기반 발사 무기를 생성하는 원거리 발사 무기 공격: 액션 버튼을 길게 눌러 발사를 '충전'할 수 있는 기본 액션의 변형 버전도 포함됩니다.
  • AI 기반 에이전트를 행동 불능으로 만드는 스턴 액션
  • 도적의 스텔스 모드를 토글하는 스텔스 액션
  • 액션 버튼을 길게 눌러 충전할 수 있는 버프 액션: 최대 충전 시 추가 효과가 발생합니다. 
  • 재미있는 캐릭터 애니메이션을 재생하는 감정 표현 액션: 이를 통해 플레이어 간에 소통할 수 있습니다.
  • 캐릭터가 선택한 대상을 따라가도록 하는 추적 액션
  • 타겟을 조준할 수 있는 액션에 사용되는 타겟 선택
  • 보스 몬스터가 방심한 영웅 캐릭터를 밀어내는 짓밟기 액션: 이 액션은 네트워킹된 물리의 패턴을 보여줍니다.
  • 영웅들이 서로를 되살릴 수 있는 부활 액션
던전과 게임플레이

Boss Room 환경은 플레이어가 보스를 상대하기 전 잠시 동안 캐릭터의 기술을 시험해 볼 수 있도록 설계되었습니다.

던전은 대기실과 보스 룸으로 구성되며, 보스 영역에 들어가기 위해서는 간단한 협동 스위치 퍼즐을 풀어야 합니다. 목표는 간단합니다. 임프를 처치하고 퍼즐을 해결한 후에 보스를 쓰러뜨리고 보물을 손에 넣으면 됩니다.

In-editor example of a Boss Room scene
유니티 팀에서 전하는 팁

Boss Room은 단순한 API 교육 그 이상을 목표로 합니다. 멀티플레이어는 게임 제작에 있어 단순한 구현을 넘어 게임 설계에 영향을 미치는 영역 중 하나입니다. “보스 몬스터와 같은 서버 기반의 물리에 영향을 주는 NPC가 있는 경우 어느 때에 클라이언트 기반 또는 서버 기반을 사용해야 하는지” 혹은 “지연 시간을 숨기기 위해 램프 업 애니메이션을 사용하기”와 같은 베스트 프렉티스 사례를 알고 있으면 더 멋진 멀티플레이어 게임을 만들 수 있습니다. Boss Room의 모든 기능은 이러한 사례와 패턴을 잘 보여줍니다 

유니티 멀티플레이어 네트워킹 팀의 목표는 개발자에게 멀티플레이어 게임 개발을 둘러싼 전체 엔지니어링 과정에 대한 레퍼런스를 제시하여 개발자가 특정 유형의 멀티플레이어 게임을 처음부터 끝까지 빌드할 수 있도록 하는 것입니다. 여기에는 디자인, 구현, 테스트, 그리고 실시간 환경을 다루는 방법까지도 포함됩니다. 유니티 멀티플레이어 네트워킹 팀에서는 첫 번째 레퍼런스로 Boss Room을 제공하고자 하며, 관련 문서도 현재 작성 중에 있습니다

Boss Room의 부수적인 목표는 MLAPI를 개선한 새로운 실험적 게임 오브젝트 넷코드 패키지를 사용해 보는 것입니다. 샘플 팀과 SDK 팀이 협력하여 MLAPI를 개선하고, UX 피드백을 제공하면서 문제가 될만한 부분을 찾아내고 있습니다. MLAPI에 새로운 기능이 추가되고 SDK가 업데이트됨에 따라, 유니티는 직접 기능을 사용해 보면서 프로젝트 개발에 보다 적합하도록 개선하고 있습니다.

다음 단계

유니티의 네트워킹 솔루션이 개선되면서 Boss Room 샘플도 함께 발전해 나갈 것입니다. 아래와 같은 방법으로 이 프로젝트에 참여하실 수 있습니다.

  • Github에서 이 프로젝트를 팔로우하고 이 가이드를 통해 프로젝트의 다양한 기능을 알아보세요.
  • Github에서 핵심 넷코드 진행 과정을 팔로우하고 유니티의 공개 로드맵에 업데이트 또는 기능을 요청하세요.

디스코드Unity Multiplayer 포럼에서 유니티 담당자와 채팅하고 경험을 공유하거나 도움을 요청하세요.

2021년 4월 8일 게임 | 6 분 소요

Is this article helpful for you?

Thank you for your feedback!