기타등등/백엔드

1. 싱글게임 클라우드 뭐 쓰지?

CodeJB 2023. 9. 12. 23:09

유니티 기반의 모바일 싱글 게임에 클라우드를 인테그레이션 해야한다.

 

필수로 필요한 서비스는 아래와 같다.

  • Integration이 원활해야 한다.
  • Unity 클라가 C#으로 개발될 것이기 때문에 백엔드 또한 C#으로 문제없이 돌아가야한다.
  • 서버리스 클라우드 펑션을 제공해야한다.
  • 클라우드 스토리지를 제공해야한다.
  • 가격이 합리적이어야 한다.
  • UI가 깔끔해야한다.

추가로 필요한 서비스는 아래와 같다.

  • Authentication서비스를 제공하여 GPGS, Game Center 구현이 쉬워야 한다.
  • Analytics를 제공하며 UI가 깔끔하여 추적이 쉬워야 한다.
  • 번들을 올려놓을 CDN을 제공해줘야 한다.

후보군 리스트

  • Unity의 UGS(Unity Gaming Service) : 선정!
  • AWS의 Lambda
  • MS의 Azure
  • Firebase의 Build Productions

선정 이유 / 비선정 이유

  • Unity의 UGS
    • 클라가 Unity라서 무엇보다 Integration이 매우 용이하다.
    • 위 나열한 필수 요소와 추가 요소를 모두 부합한다.
    • 뿐만 아니라, 유저의 재화를 따로 관리하는 서비스까지 제공한다.(Economy 서비스)
    • UI가 내 스타일이다.

 

  • AWS의 Lambda
    • 웹 개발할 때 AWS를 많이 사용했기에 가장 익숙했다.
    • AWS면 클라우드 바닥에선 아주 신뢰가는 서비스다.
    • 단점 : 웹에서 Cloud Function IDE에 C#이 없다.
    • 단점 : UI가 정말정말 내 스타일이 아니다. (암튼 아님)
    • 단점 : Unity에서 AWS API를 인테그레이션 해보질 않아 낯설다.

 

  • Firebase의 Build Productions
    • Firebase는 Unity에 인테그레이션 해본 경험이 많아 익숙하다.
    • UI가 내 스타일이다.
    • 지원하는 서비스들이 다 신뢰성 있다.
    • 단점 : Cloud Function에서 C#자체를 지원안한다.(ㅅㄱ)
    • 단점 : Cloud Function만들때 Blaze요금제 써야되는데 사업자등록번호 쓰란다. 벌써ㅋ 아니 개발단계잖아(ㅅㄱ)

 

  • MS의 Azure
    • 본인은 C#을 많이쓰는 사람인데 정작 Azure는 잘 안써봤다.
    • 주위 직장 동료분들, 개발 출시하신 분들 거의다 Azure 쓰셨다고 하신다.
    • 그만큼 신뢰성 있는 서비스를 제공할 거라고 생각한다.
    • 단점 : 아니 시작과 동시에 템플릿 생성에서 에러 발생하는데 해결방법도 안나와 있음(ㅅㄱ)
    • 단점 : Authentication에 GPGS나 게임센터와 같은 것들을 지원하지 않는듯하다.
    • 단점 : UI가 진짜 내 스타일 아니다.

UGS 걱정되는 점

  • 뭐 Unity에서 만든건데 솔직히 내가 뭘 걱정하겠냐만, 비교 대상군들에 비해서 신뢰성이 낮은건 사실이다.
  • 일단 사용사례가 거의 없는데 UGS중 내가 사용하려는 사용사례는 거의 없고 network multiplay쪽에서는 Among Us가 최고인듯하다.
  • Among Us만 보고 신뢰도를 판단하여 시작한다 봐도 과언이 아닌데 이게 맞나 싶다.
  • 그럼에도 불구하고 여기서 제공해주는 서비스들이 정말 게임 친화적이라 매력이 없을 수가 없다.
  • 하다가 안되면 Azure로 바꿀 생각이다.