ARCore를 기반으로 작동하는 AR 게임 SPACE INVADERS: World Defense를 만든 방법

9월 05, 2023
Dereck Bridie Developer Relations Engineer ARCore
Bradford Lee Product Marketing Manager Augmented Reality

'SPACE INVADERS' 45주년을 기념하기 위해 오리지널 아케이드 게임의 일본 개발사인 TAITO 및 UNIT9과 협력하여 가장 발전된 위치 기반 AR 기술을 활용하는 몰입형 게임인 'SPACE INVADERS: World Defense'를 출시했습니다. 전 세계의 플레이어가 야외로 나가 지역의 가까운 곳을 탐험하면서 근처 구조물에서 출몰하는 가상 우주 침략자들로부터 지구를 지키고 침략자를 무찔러 포인트를 얻는 게임의 전 과정을 모두 증강 현실로 즐길 수 있습니다.

이 게임은 최신 ARCore 기술인 Geospatial API, Streetscape Geometry API, Geospatial Creator를 사용하여 작동합니다. 게임 개발 방식과 최신 기능 및 도구를 사용하여 최초의 절차를 따르는 글로벌 AR 를 디자인한 방법 등 비하인드 스토리를 소개합니다.

Geospatial API: 전 세계를 놀이터로 바꾸기

Geospatial API를 사용하면 Google 스트리트 뷰로 매핑된 모든 지역에 콘텐츠를 원격으로 연결하고 세계적 규모로 실제 위치와 연결된 더욱 풍부하고 강력한 몰입형 환경을 만들 수 있습니다. SPACE INVADERS: World Defense 게임은 100여 개국 스트리트 뷰의 VPS(비주얼 포지셔닝 서비스) 커버리지 수준이 높은 지역에서 즐길 수 있어서 번잡한 도심 환경뿐만 아니라 소도시와 마을 환경에도 맞춰 조정된 게임플레이를 즐길 수 있습니다.

VPS가 제공되지 않는 지역에 거주하는 플레이어를 위해 최근에 게임을 업데이트하여 실내나 실외를 가리지 않고 어떤 환경이나 장소에서도 우주 침략자로부터 지구를 지킬 수 있는 Indoor Mode라는 새로운 모드를 도입했습니다.

Space Invaders에 새로 도입된 Indoor Mode를 통해 실내 건물 환경에서 몰입감 넘치는 게임플레이를 즐길 수 있습니다.

초기 사용자 플로우 만들기

ARCore Geospatial API는 사용자 기기의 카메라 이미지를 사용하여 특징 포인트를 스캔하여 기기를 실제 세계 공간에 정확하게 위치하도록 Google 스트리트 뷰의 이미지와 비교합니다.

Geospatial API는 개발자가 100여 개국의 실제 세상을 기반으로 한 게임 환경을 원격으로 개발할 수 있도록 스트리트 뷰의 수백억 개 이미지를 사용하는 VPS를 기반으로 합니다.

사용자는 자신의 정확한 위치를 파악할 수 있는 충분한 데이터를 수집하도록 스마트폰을 들고 주변 영역을 상하좌우로 비추며 스캔해야 합니다. 이를 위해 저희는 사용자가 카메라의 시야에서 우주선을 추적하도록 하여 영역을 스캔하도록 하는 영리한 기법을 사용했습니다.

시작하려면 우주선을 따라 현지 주변 환경을 스캔

이 사용자 플로우를 사용하여 Geospatial API가 수준 높은 경험을 위해 충분한 데이터를 수집했는지 지속적으로 확인합니다.

if (earthManager.EarthTrackingState == TrackingState.Tracking)
{
        var yawAcc = earthManager.CameraGeospatialPose.OrientationYawAccuracy;
        var horiAcc = earthManager.CameraGeospatialPose.HorizontalAccuracy;
 
        bool yawIsAccurate = yawAcc <= 5;
        bool horizontalIsAccurate = horiAcc <= 10;
 
	return yawIsAccurate && horizontalIsAccurate;
}

주변 환경을 놀이터로 바꾸기

주변 영역을 스캔하면 게임은 Streetscape Geometry API의 메시 데이터를 사용하여 알고리즘 방식으로 다양한 장소에서 이루어지는 게임플레이를 독특한 경험으로 만들어 줍니다. 모든 실제 위치에는 고유한 지형과 도시 레이아웃이 있어 고유한 방식으로 게임플레이에 영향을 줍니다.

게임플레이는 체코의 마을(왼쪽)부터 뉴욕의 도시(오른쪽)까지 사용자의 위치에 따라 다릅니다.

게임에서는 우주 침략자가 건물에서 출몰할 수 있으므로 세계 각지에서 얻은 건물 형상을 사용하여 테스트 케이스를 구성했습니다. 이를 통해 게임은 지역 마을에서 번화한 도시까지 다양한 환경에서 최적의 성능을 발휘할 수 있습니다.

알고리즘을 통해 포털을 실제 세계에 배치하는 방식의 시각화

침략자의 차원으로 진입

연구 조사를 통해 사용자가 증강 현실 경험을 위해 오랜 시간 동안 스마트폰을 계속 잡고 있으려면 피곤할 수 있다는 것을 알게 되었습니다. 이런 사실은 게임플레이 개발에 영향을 주었습니다. 그래서 침략자의 차원을 만들어 플레이어가 스마트폰을 계속 쥐고 있지 않고 긴장을 풀 기회를 주고 사용자 편의성을 개선했습니다.

Geospatial API의 힘을 실제로 보여주는 가장 감탄했던 순간은 실제 세계 AR과 가상으로 생성된 3D 차원 사이에서 전환하는 것입니다.

실제 세계 AR에서 3D 차원으로의 게임플레이 전환

이 효과는 구분되는 와이어프레임 스타일로 건물과 지형을 렌더링하는 가상 환경 셰이더와 카메라 피드를 혼합하여 얻습니다.

침입자의 차원이 Unity Editor에서 플레이어 주위에 나타나 두 모드 간에 원활하게 전환됩니다

플레이어가 침략자의 차원에 진입한 후, 플레이어의 우주선은 알고리즘으로 생성된 경로를 통해 플레이어가 사는 지역을 비행합니다. 이것은 오버헤드 카메라에서 사용자 환경에 대한 심층 이미지를 생성하여 가능하게 됩니다. 이 이미지에서 빨간색 채널은 건물을 나타내고 파란색 채널은 비행 경로에 잠재적으로 사용될 수 있는 공간을 나타냅니다. 그런 다음 이 이미지를 사용하여 경로가 따라야 하는 포인트가 있는 그리드를 생성하고 A* 검색 알고리즘을 사용하여 모든 포인트를 따르는 경로를 해결합니다.

마지막으로, 생성된 A-Star 경로는 잠재적인 잡음, 급회전 및 충돌을 없애기 위해 후처리합니다.

우주선의 비행 경로를 매끄럽고 자연스럽게 재현하기 위해, 설정된 노드 간격에 걸쳐 경로를 샘플링하여 잡음을 제거합니다. 그런 다음 경로를 따라 각도를 분석하여 경로에 급격한 회전이 있는지 확인합니다. 급회전이 있는 경우 부드럽게 회전할 수 있도록 추가로 2개의 포인트를 더합니다. 마지막으로 이 매끄러운 경로가 장애물과 충돌하는지 확인하고 장애물 감지되는 경우 그 위로 날아서 넘어가도록 조정합니다.

8a-Depth-Composite-8B-3D-Path.png
침입자 차원에서 깊이 맵과 생성된 샘플 경로의 시각화

글로벌 게임 환경 만들기

게임을 개발할 때 중요한 점은 상황별 세대의 복잡성으로 인해 전 세계적으로 테스트해야 한다는 점입니다. Unity를 사용하여 여러 환경을 테스트 케이스로 가져와서 이러한 알고리즘에 대한 변경 사항을 빠르게 반복하고 검증할 수 있었습니다. 덕분에 전 세계에 게임을 배포할 수 있다는 자신감이 생겼습니다.

Geospatial Creator를 사용한 우주 침략자 시각화

ARCore와 Google Maps Platform의 Photorealistic 3D Tiles를 기반으로 하는 Geospatial Creator를 사용하여 Unity에서 도쿄 내 특정 랜드마크 옆에 Space Invaders와 같은 가상 콘텐츠가 어떻게 나타나는지 검증했습니다.

Photorealistic 3D Tiles를 사용하여 일본의 도쿄 타워를 포함한 특정 위치에서 우주 침략자를 시각화할 수 있었습니다.

향후 업데이트 및 릴리스

게임 출시 이후, 저희는 플레이어들의 의견을 듣고 게임플레이 경험을 활발하게 업데이트하고 개선하고 있습니다.

  • VPS가 지원되지 않는 모든 플레이어 또는 AR 모드를 사용하지 않으려는 플레이어가 게임을 즐길 수 있는 새로운 게임플레이 모드인 Indoor Mode를 추가했습니다.
  • 사용자가 AR로 게임을 플레이하도록 유도하기 위해 실내에서 게임을 즐기는 플레이어보다 실외에서 즐기는 플레이어에게 보상을 제공하도록 조정했습니다.

지금 바로 Android 또는 iOS에서 게임을 다운로드하고 정예 지구 방어군에 합류하여 인근 지역에서 최고 득점을 노려보세요. 최신 게임 업데이트 소식을 들으려면 Twitter(@GoogleARVR)를 팔로우하여 게임을 어떻게 개선 중인지 알아보세요. 또한 ARCoreGeospatial Creator 웹사이트를 방문하여 Google의 AR 기술을 사용하여 개발하는 방법을 알아보세요.