구글 Firebase라고 들어 보셨나요? 인프라 구성과 관리 없이 모바일 앱을 개발해 운영할 수 있도록 돕는 서비스입니다.
최근 구글 클라우드 플랫폼 개발자 프로그램 엔지니어들 중 게임 광들이 모여 흥미로운 프로젝트를 시작했습니다.
그 이름은 Firebase Unity Solutions입니다.
오픈 소스 프로젝트인데요 그 첫 번째 결과물이 깃허브에 올라왔습니다. 그 이름은 Firebase Leaderboard입니다. 말 그래도 게임 내 랭킹을 보여주는 보드 모듈이라 보면 됩니다. 게임 순위를 메기는 것을 따로 개발할 필요 없이 이걸 가져다 쓰면 되는 것이죠.
“Firebase를 이용해 모바일 게임 앱을 만든다 ~ 시도해 볼 만도 할 듯”
Firebase Unity Solutions 프로젝트는 게임 개발자들이 Firebase와 더 친해지는 계기가 될 것 같습니다. Firebase의 경우 Unity 코드에서 직접 서비스에 접근할 수 있는 편의를 제공합니다. 게임 개발자들도 백엔드 서비스에 적용할 Firebase 요소에 편히 이용할 수 있는데요, 앞으로 어떤 것들이 더 등장할지 모르겠지만 Firebase Unity Solutions 프로젝트에서 내놓는 것들이 게임 개발자의 구미를 좀 당길 것 같습니다.
Firebase를 게임 개발에서 어디에 쓸 것인가? 잠시 짚고 넘어가 보겠습니다. Firebase를 이용하면 앱 개발부터 운영까지 여러 서비스를 필요에 맞게 조합하면 되기 때문에 핵심 구현에만 집중하면 됩니다. 실시간 데이터 베이스, 클라우드 함수, 성능 모니터링, 클라우드 스토리지 등 개발 및 테스트를 위한 서비스부터 시작해 구글 애널리틱스, 애드워즈, 클라우드 메시징 등 고객을 모으고 관리하는 데 필요한 서비스까지 제공합니다. Firebase는 구글 클라우드 플랫폼을 기반으로 하기 때문에 수십억 사용자를 지원해야 하는 앱 서비스에 유용한 것으로 알려져 있죠. 게임의 경우 인기 앱이 되는 순간 사용자 수가 폭증하죠. 네, 게임 서비스의 경우 구글 클라우드 플랫폼과 Firebase 조합이 잘 맞는다고 볼 수 있습니다.
본론으로 돌아와 Firebase Leaderboard를 간단히 살펴보죠. Firebase Leaderboard는 Firebase의 실시간 데이터베이스를 통해 게임 사용자의 순위를 실시간으로 정리해 보여주는 일련의 스크립트 모음입니다. 24시간 내에 상위 5순위를 보여 주고 싶다? 지난주 상위 100명의 명단을 보여주고 싶다? 네, 다 됩니다. 간단히 파리미터만 손보면 됩니다.
private void Start() { this.leaderboard = FindObjectOfType(); leaderboard.FirebaseInitialized += OnInitialized; leaderboard.TopScoresUpdated += UpdateScoreDisplay; leaderboard.UserScoreUpdated += UpdateUserScoreDisplay; leaderboard.ScoreAdded += ScoreAdded; MessageText.text = "Connecting to Leaderboard..."; }
Firebase 관련한 문의사항이 있으시다면 메가존으로 연락 부탁드립니다.