게임 시스템을 지원할 백엔드를 구축하는 것은 쉬운 일이 아닙니다. 서버를 구축하고 호스팅하는 작업뿐 아니라 스케일링할 수 있으려면 많은 시간과 전문 지식 또는 비용이 듭니다.
유니티의 게임 백엔드 제품을 사용하면 Unity가 까다로운 작업을 처리하는 동안 콘텐츠 제작에 집중할 수 있습니다. 특히 다른 Unity Gaming Services를 함께 사용하면 더 큰 효과를 볼 수 있습니다. Unity의 Cloud Code, Cloud Save, Economy, Authentication이 제공하는 기능을 아래에서 살펴보세요.
게임에서 시간이 지정된 요소를 만들 때는 기기의 시간을 사용하면 가장 간단합니다. 그러나 일부 플레이어가 부정행위에 기기 시간을 악용할 수 있기 때문에 이는 완전히 신뢰할 수 없습니다.
예를 들면, 한정된 시간동안 사용 가능한 아이템에 더 오래 액세스하기 위해 기기 시간을 조작하는 플레이어가 있을 수 있습니다.
Cloud Code를 사용하면 상태 비보존 서버 측 코드를 작성할 수 있으며 신뢰할 수 있는 중앙 집중식 '서버' 시간을 사용하여 게임 로직을 작성할 수 있습니다.
풍부한 게임 내 보상을 제공하는 시스템을 설계하면 플레이어가 더 오래 게임에 몰입하도록 할 수 있습니다. Cloud Code를 사용하면 게임 내에서 쿠폰 코드와 보상 아이템을 승인할 수 있는 스크립트를 작성할 수 있습니다.
게임이 서비스 중일 때 게임 클라이언트를 새로 업데이트할 필요 없이 쿠폰 로직을 변경하는 것도 가능합니다. 변경 내용을 서버에 게시하기만 하면 클라이언트에서 새 쿠폰 교환 규칙이 적용됩니다.
Cloud Save를 사용하면 플레이어가 쿠폰을 사용했는지 여부를 추적할 수 있으며, Economy를 설치하면 게임 내 통화나 아이템 등의 리소스를 제공할 수 있습니다.
일일 보상은 다양한 게임 내 아이템을 제공하여 게임에 다시 접속하도록 하는 효과적인 방법이며, 특히 모바일 게임에서 더 유용합니다.
Cloud Code 툴은 다른 유니티 서비스와 통합할 수 있으므로 일일 보상과 관련된 로직을 구축할 때 매우 유용하게 활용할 수 있습니다. Economy에서 아이템과 통화를, Remote Config에서 확률을 정의할 수 있고, Cloud Code에서는 기본 알고리즘을 작성합니다.
이렇게 하면 게임 클라이언트를 업데이트하지 않고도 원하는 시점에 일일 보상 로직을 변경할 수 있습니다.
플레이어는 본인의 게임 내 업적과 구매 내역이 항상 보존되어야 한다고 생각합니다. 플레이어의 진행 상황은 온전하게 보존되어야 하며, 아울러 플레이어 본인에게만 연결되고, 플레이하는 모든 기기에서 완전히 동일해야 합니다.
Cloud Save, Economy, Remote Config를 Authentication과 결합하면 플레이어의 진행 상황을 자동으로 저장하고 계정에 연결할 수 있습니다.
Authentication을 사용하면 플랫폼 계정을 통한 로그인을 설정할 수 있으므로 동일한 플레이어가 Google, Facebook, Apple 또는 Steam에서 로그인하고 모든 기기에서 중단한 지점부터 이어서 플레이할 수 있습니다.
인게임 경제를 설계했다면 이를 보호하기 위한 안전 장치를 만들어야 합니다. 게임 내 보상이나 인앱 구매 아이템을 얻기 위해 부정한 의도를 가지고 다른 사람을 사칭하려는 플레이어가 있을 수 있습니다.
Economy는 Authentication과 함께 작동하며, 부정행위자가 조작할 수 없는 고유의 토큰과 ID로 각 플레이어를 식별할 수 있도록 해 줍니다. 이렇게 하면 로그인한 플레이어의 신원과 현재 통화 및 아이템 인벤토리를 확인할 수 있습니다.
Cloud Code를 추가하면 이 과정을 서버 권한으로 처리하여 인게임 경제를 더 높은 수준으로 보호할 수 있습니다.
실시간 업데이트나 버그 수정, 개선된 기능을 게임에 적용하는 과정은 꽤 까다롭습니다.
Cloud Code를 사용하여 게임 내 로직을 게임 클라이언트로부터 분리하면 모든 플레이어에 즉시 변경 사항을 적용할 수 있습니다. 클라이언트 기기로부터 게임 로직을 분리하면 플레이어가 설치된 버전을 업데이트하는 일 없이 게임 로직을 업데이트할 수 있습니다.
모바일 게임에 많은 온라인 서비스를 사용하면 인터넷을 통해 데이터를 여러 번 전송해야 합니다. 플레이어의 인터넷 연결이 느리면 플레이어의 경험이 원활하지 않을 수 있습니다.
Economy 또는 Cloud Save와 같은 서비스에 변경 사항을 적용하는 경우, 보통 서버에서 데이터를 읽고 기기에서 수행될 작업을 결정합니다. 이후 결과 데이터가 서버로 다시 전송되어야 합니다.
Cloud Code를 사용하면 정보가 단 한 번만 왕복하면 되며 변경 사항이 서버에 직접 구현됩니다. 따라서 인터넷 연결 속도에 관계없이 모든 플레이어에게 더 원활한 경험을 제공할 수 있습니다.
Unity 엔진을 사용하여 멀티플레이어 게임을 개발하고 있다면, 에디터에 통합된 도구를 활용하여 게임을 안전하게 빌드 및 테스트하고 일관된 기술 스택을 유지할 수 있습니다.
Unity의 Relay 서비스를 Authentication과 함께 사용하여 Relay에 연결된 플레이어를 익명 로그인이나 플랫폼별 로그인 중 하나로 승인할 수 있습니다.
이러한 툴을 사용하면 타사 솔루션이나 전용 게임 서버 없이도 멀티플레이어 게임을 빌드한 후 테스트 및 운영할 수 있습니다.
멀티플레이어 게임을 개발할 때는 사람들을 연결하고 함께 플레이하도록 유도할 방법을 고려해야 합니다.
로비나 파티 또는 매치로 그룹화할 플레이어별 특성을 파악하면 플레이어의 경험에 큰 영향을 미칠 수 있습니다.
Unity의 Lobby 및 Matchmaker 서비스를 Authentication과 결합하면 특정 유형의 플레이어를 그룹화하여 익명으로 인증한 후 서로 소통하고 함께 플레이하도록 지원할 수 있습니다.
이와 같은 유연한 툴은 다양한 게임 유형을 지원할 수 있으며, 게임에 유입되는 수많은 플레이어를 지원할 수 있을 만큼 스케일링이 가능합니다.
게임 백엔드 툴 및 기타 Unity Gaming Services를 사용하려면 게임 운영 샘플 컬렉션을 확인해 보세요.
제공되는 샘플 씬 및 관련 스크립트 파일에서는 게임 개발과 관련된 일반적인 문제를 다음과 같이 다양한 툴을 결합하여 해결하는 방법을 배울 수 있습니다.
Unity Gaming Services와 현재 베타 버전인 모든 제품에 대해 자세히 알아보려면 여기를 클릭하세요.
Is this article helpful for you?
Thank you for your feedback!