Unity로 윈8/윈폰8 게임 등록 테스트

Unity 4.2 부터는 윈8과 윈폰8용으로 게임을 패키징해서 배포할 수 있다. 해당 기능도 무료로 제공하고 있어서 추가 비용이 들지 않는다.
그래서, 간단한 게임을 만들어서 스토어 등록을 테스트해봤다.

일단 Unity 툴 사용법에 익숙하지가 않아서 유튜브에서 몇 가지 튜토리얼을 보고 실습을 해봤다. 여러 강좌가 올라와 있지만 그 중에 벽돌깨기 강좌가 가장 괜찮다.

이 튜토리얼을 참고로 벽돌깨기 게임을 만든 후에 이를 우선 윈8으로 패키징을 해봤다.

테스트1. 윈8 앱으로 패키징하여 스토어에 등록하기

Build Settings 메뉴에 Windows Store Apps와 Windows Phone 8이 있다.

Unity 4.2의 Build Settings 메뉴에 Windows Store Apps와 Windows Phone 8이 있다.

Windows Store Apps는 사용하는 UI 레이어와 언어에 따라 4 종류의 프로젝트를 지원한다. (D3D11 C++, D3D11 C#, XAML C++, XAML C#)

Unity Build 메뉴를 실행하면 결과물로 Visual Studio의 솔루션 파일이 나오고, 그 결과물을 다시 VS에서 실행하면 앱으로 패키징 및 설치가 되어 실행해 볼 수 있다.

다만, 이 때 Unity에서 바로 구워진 따뜻한 프로젝트는 ARM 타겟팅으로 되어 있으니 플랫폼을 x86으로 변경한 후에 실행해야 한다.

빌드-구성 관리자에서 플랫폼을 x86으로 변경

빌드-구성 관리자에서 플랫폼을 x86으로 변경

처음에 XAML C#으로 했는데 스토어 인증 신청할 때 필요한 Windows App Cert 테스트에서 퍼포먼스 때문에 실패를 했다. 그래서 D3D11 C++로 다시 해서 스토어 등록에 성공했다.

테스트2. 윈폰8 앱으로 만들어서 등록해보기

윈8용으로 성공했으니 Unity의 장점을 살려서 윈폰8용으로도 포팅을 해봤다. 마찬가지로 Unity에서 Build Setting을 Windows Phone 8으로 변경하는 것만으로 쉽게 윈폰8 프로젝트를 생성할 수 있다.

마침 윈폰8 개발자 계정이 있어서 유명 윈폰앱 개발자의 도움을 받아(윈8 스토어 대시보드와 달라서 조금 헤맴) 약 10분 만에 베타 스토어에 등록 신청을 했고, 2시간 정도 후에 폰에서 테스트 해볼 수 있었다. 다만, 베타 버전이라 미리 테스터로 등록하지 않으면 다운로드가 안 된다.;

베타로 테스트를 완료하고 공개 다운로드가 가능하도록 스토어 등록을 새로 신청해 두었다. 새 앱으로 다시 등록을 해야 하고, 5일 정도의 인증 기간이 소요된다고 한다.

테스트3. 인앱 광고 적용해보기

마지막 테스트로 윈8/윈폰8 각각에 광고를 적용해 보았다. 광고 플랫폼은 Microsoft가 기본 제공하는 Pubcenter를 이용했다. Pubcenter는 XAML 컨트롤로 제공이 되기 때문에(HTML이나 XNA용도 있지만) D3D11로 등록했던 걸 다시 XAML/C# 프로젝트로 만들어서 테스트해야 했다.(퍼포먼스 이슈로 리젝될지도)

Unity로 만든 게임은 윈8의 경우 SwapChainBackgroundPanel이라는 요소로 컨텐츠가 감싸져 있고, 윈폰8의 경우는 DrawingSurfaceBackgroundGrid로 감싸져 있다. 두 컨트롤 모두 최상위 컨텐츠로 동작하게 되어 있어서 다른 패널 컨트롤로 감쌀 수 없다. 따라서 다른 XAML 컨트롤들과 혼용을 하려면 각각에 하위에 XAML을 구성해야 한다. 자세히 살펴보진 않았지만, 두 컨트롤은 DirectX로 생성한 그래픽을 배경으로 뿌려주는 역할을 하는 듯 하다. 따라서 기존 Grid 컨트롤 처럼 하위 요소들을 구성하면 되고 게임 화면 위에 XAML 컨트롤들이 쉽고 예쁘게(?) 그려진다.

광고는 화면을 가려야 제맛;

광고는 화면을 가려야 제맛;

테스트 결과 AdControl은 잘 동작했다. 광고 서버가 동작하지 않은 적이 있었는데 게임 Input이 먹통되는 현상이 생겼고, 서버가 정상화되자 게임도 잘 동작했다.

Unity 게임 개발 경험이 없어서 제일 궁금했던 것이 VS에서 C#/XAML 코드 수정한 것과 Unity 게임 프로젝트를 어떻게 함께 사용하고 유지보수하느냐는 것이었는데, 나중에 Unity 게임을 수정해서 다시 Build를 하더라도 VS 솔루션에서 수정한 C#/XAML 코드가 그대로 유지되어서 쉽게 관리할 수 있었다. 게임을 윈8/윈폰8용으로 처음 빌드할 때만 Unity에서 VS 솔루션이나 App.xaml 등 기초 템플릿 파일들을 만들어 주고, 나중에는 dll 등만 업데이트해준다.

두 플랫폼의 게임을 스토어에 재 등록 신청했고 지금은 결과를 기다리는 중이다. 윈8은 앞서 한번 문제 됐던 퍼포먼스 이슈 때문에 실패할 가능성이 있고, 윈폰8은 첫번째 공개 등록 신청이라 어떤 이슈가 나오는지 지켜봐야 할 것 같다.

말로 듣긴 했지만 실제로 Unity 4.2에서 윈8, 윈폰8용 게임을 만들어서 스토어에 등록할 수 있다는 것이 결론.

Advertisements

3 comments

  1. 윈8 앱은 인터넷 기능 활성화하고 설정에 Privacy Policy 링크 추가 안 해서 등록 실패. 퍼포먼스 이슈는 없는 걸 봐서, 설정에 링크 하나 추가해서 다시 올리면 무난히 통과될 것 같다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중