Unity에서 게임 개발 시작하기

이 가이드에서는 일반적인 게임 개발 주기를 간략히 설명합니다. 이 가이드를 읽은 후 참고용으로도 사용할 수 있습니다.

Unity로 작업할 때 개발 수명 주기는 다음 세 단계로 구성됩니다.

  • 계획 및 설계
  • 개발 및 테스트
  • 게시 및 유지관리

계획 및 설계

계획 및 설계 단계에서는 게임 빌드 방법을 결정합니다. 모바일 개발의 도전과제를 해결하는 방법을 결정하고 개발에 사용할 도구와 프로세스를 식별합니다.

모든 팀원의 의견 수렴

아트, 엔지니어링, 설계, 오디오, 프로덕션팀과 협력하여 구현 작업을 식별하고 기록합니다. 예:

  • 아트팀은 캐릭터 및 환경의 애셋 텍스처와 메시 예산을 만들 수 있습니다.
  • 엔지니어링팀에서 각 플랫폼에 프로파일링하기 위한 메모리 및 성능 체크포인트를 결정할 수 있습니다.
  • 디자인은 경험을 가능하게 하는 게임 메커니즘을 계획할 수 있습니다.
  • 오디오 전문가는 UI, 2D, 3D 서라운드 사운드 간의 사운드 연속성 요구사항을 검토할 수 있습니다.
  • 프로덕션팀에서는 출시 요구사항을 전달하고 팀이 조율되고 순조롭게 진행되도록 할 수 있습니다.

모바일용 디자인

모바일 플랫폼용 애플리케이션 개발에는 다음과 같은 구체적인 고려사항이 포함됩니다.

  • 가변적인 화면 가로세로 비율
  • 전력 소모량
  • 열 및 프로세서 제한
  • 터치 입력
  • 크로스 플랫폼 개발
  • 그래픽 API (Vulkan 또는 OpenGL ES)

모바일 디자인 고유의 고려사항에 관한 자세한 내용은 Unity의 Unity에서 Android 개발Google Play 아카데미를 참고하세요.

개발 및 테스트

개발 및 테스트 단계에서는 게임을 빌드하고 테스트와 사전 출시 준비를 수행합니다. 출시 요구사항을 충족하기 위해 Google Play에서 몇 가지 제한된 내부 테스트를 실행합니다. Play Asset Delivery 및 Unity Addressables 시스템을 기반으로 Unity에서 배포 전략을 조정하고 애셋을 구성합니다.

다음 섹션에서는 Android용으로 개발하는 데 도움이 되도록 설계된 Unity 도구와 기법을 설명합니다.

렌더링

렌더링은 Unity 장면의 3D 및 2D 애셋을 화면에 그리는 프로세스입니다. Unity 엔진이 렌더링을 처리하지만 Android 플랫폼의 경우 몇 가지 요소를 고려하는 것이 중요합니다.

질감

대상 기기에 따라 가장 큰 텍스처 크기가 필요한지 확인합니다. 메모리 할당을 프로파일링할 때는 대상 텍스처 크기를 변경할 경우 절감할 수 있는 부분을 검토하세요.

프레임 시간

Android 기기의 과열을 방지하려면 평균 21밀리초 미만의 프레임 시간 값을 타겟팅합니다. 로드 중이나 짧은 영화 경험 등 경우에 따라 프레임 시간이 21밀리초를 초과할 수 있지만 핵심 게임 환경에서는 21밀리초 기준점을 넘지 않아야 합니다.

모바일 플랫폼에서는 최소 타겟에 도달하지 않으면 VSync가 프레임 속도를 제한합니다. 예를 들어 60Hz 화면 업데이트에서 60fps에 도달하지 않으면 게임이 30으로 제한되고 30에 도달하지 않으면 15로 제한됩니다.

많은 Android 기기가 60Hz 및 120Hz의 화면 재생 빈도로 출시됩니다. 렌더링 속도를 높이기 위해 열 제한 및 배터리 소모의 위험 없이 훨씬 짧은 프레임 시간 (60Hz 업데이트의 경우 10ms 목표, 120Hz의 경우 5ms) 타겟팅의 이점을 고려합니다.

Unity에서 게임의 특정 프레임 속도를 설정하려면 Application.targetFrameRate를 사용하세요.

Android Frame Pacing 라이브러리를 사용하면 애플리케이션이 다음 프레임을 표시하는 데 더 오래 걸리는 경우 화면 새로고침 빈도보다 더 오래 걸릴 때 원활하게 렌더링할 수 있습니다. Unity 버전 2021 이상에서 Android 프레임 속도를 사용 설정하면 디스플레이 새로고침 빈도가 타겟 프레임 속도에 가장 근접하게 설정됩니다. 이렇게 하면 불필요한 디스플레이 업데이트로 인해 게임에서 배터리 전력이 낭비되지 않습니다.

라이브러리를 사용 설정하려면 Project Settings(프로젝트 설정) > Player(플레이어)Settings for Android(Android 설정)에서 Optimized Frame Pacing(최적화된 프레임 속도) 체크박스를 선택합니다.

Project Settings > Player Settings > Optimized Fame Pacing이 표시된 대화상자
그림 1. Optimized Frame Pacing(최적화된 프레임 속도)은 Unity 2019.2 이상의 Player Settings(플레이어 설정)에서 사용할 수 있습니다.

Vulkan API

Vulkan은 OpenGL ES에 비해 오버헤드가 낮은 크로스 플랫폼 고성능 3D 그래픽 API입니다. Unity는 두 가지 방식으로 Vulkan을 사용할 수 있습니다.

Auto Graphics API

Vulkan과 함께 Auto Graphics API를 사용할 수 있지만 설치한 Unity 버전에 따라 동작이 다를 수 있습니다. 프로젝트 설정 > 플레이어 > 렌더링으로 이동하여 이를 선택할 수 있습니다.

사용할 Unity 버전을 선택할 때는 다음 사항을 고려하세요.

  • Unity 2021.1 이하 버전은 Auto Graphics API가 포함된 Vulkan을 지원하지 않습니다. Unity에서 OpenGL ES 3.2를 사용하려고 합니다. 기기에서 OpenGL ES 3.2를 지원하지 않으면 Unity는 OpenGL ES 3.1, 3.0 또는 2.0 순서로 대체합니다.
  • Unity 2021.2 이상 버전에서는 Vulkan을 먼저 사용합니다. 기기에서 Vulkan을 지원하지 않으면 Unity는 OpenGL ES 3.2, 3.1, 3.0 또는 2.0으로 대체합니다.
프로젝트 설정 > 플레이어 설정 > 렌더링 > 자동 그래픽 API
그림 2. Auto Graphics API 설정

수동 그래픽 API

또는 Auto Graphics API를 사용 중지하여 Vulkan을 수동으로 사용 설정할 수 있습니다. Unity 2021.1 또는 이전 버전을 사용하는 경우 이 방법으로 Vulkan을 사용할 수 있습니다.

이 목록에서 Vulkan의 순서가 OpenGL ES보다 높은 경우 Unity는 먼저 Vulkan을 사용하려고 합니다. 기기에서 Vulkan을 지원하지 않으면 Unity는 OpenGL ES로 실행됩니다. 최신 그래픽 API 사용 방법 및 게임 성능 최적화 방법 등 Android의 Vulkan에 관한 자세한 내용은 Vulkan 시작하기를 참고하세요.

프로젝트 설정 > 플레이어 설정 > 렌더링 > 그래픽 API
그림 3. Auto Graphics API가 사용 중지된 경우 그래픽 API를 수동으로 설정합니다. Vulkan이 첫 번째 옵션입니다. Unity는 OpenGL ES 3.0으로 대체합니다.

그리기 호출

화면에 표시되는 모든 내용은 하나 이상의 그리기 호출과 연결됩니다. 모바일 플랫폼에서는 그래픽 처리 장치 (GPU)로 보내는 그리기 호출 수를 최적화하고 줄여야 합니다.

그리기 호출은 신호등에 줄을 서 있는 자동차와 비슷하다고 생각하면 됩니다. 표시등이 녹색으로 바뀌면 일정 수의 자동차가 통과한 후에 표시등이 바뀝니다. 표시등이 노란색으로 바뀌면 이상적인 목표 프레임 시간 (21밀리초)에 도달한 것이며, 표시등이 빨간색으로 바뀌면 33밀리초 프레임 시간 제한에 도달한 것입니다. 그 이전의 모든 항목이 다음 렌더링 프레임에 영향을 미치므로 결과적으로 프레임 속도는 목표인 30fps보다 낮습니다.

게임에서 그리기 호출 성능을 개선하는 방법에 관한 자세한 내용은 Unity 지원의 일괄 처리 도움말을 참고하세요.

그림자

그림자 캐스팅 그리기 호출은 GPU를 가장 많이 사용하므로 단순한 환경에서도 GPU 시간이 가장 많이 소모될 수 있습니다. 그림자 캐스팅 그리기 호출의 비용을 줄이려면 부드러운 그림자 대신 단단한 그림자를 사용하여 실험해 보세요. 이 점이 저사양 기기의 GPU에서 여전히 비용이 너무 많이 드는 경우 하드 섀도우 대신 blob 그림자를 사용해 보세요.

텍스처

Android에서 RGB 및 RGBA 텍스처에 권장되는 텍스처 압축 형식은 ASTC입니다. Unity의 Android에 사용해야 하는 최소 텍스처 압축 옵션은 ETC2입니다. Unity 빌드 설정에서 ASTC의 백업으로 ETC2로 대체할 수 있습니다.

플랫폼별 지원되는 형식의 전체 목록은 Unity 문서의 수동: 플랫폼별 권장, 기본, 지원되는 텍스처 형식을 참고하세요.

사용자 인터페이스 및 가로세로 비율

Unity 기기 시뮬레이터 도구를 사용하여 Unity Editor에서 직접 다양한 기기 화면 해상도, 방향, 가로세로 비율을 미리 볼 수 있습니다. 게임 뷰와 기기 시뮬레이터 뷰 간에 전환할 수 있습니다.

Unity에서 기기 시뮬레이터로 게임 시뮬레이션에서 이 도구의 미리보기를 확인하세요.

그림 4. Trivial Kart를 실행하는 기기 시뮬레이터

Trivial Kart 소스 코드는 GitHub의 games-samples 저장소에서 찾을 수 있습니다.

드롭다운 메뉴에서 기기 옵션을 선택하여 기기 시뮬레이터 뷰에서 UI 캔버스 요소의 레이아웃과 정확성을 빠르게 확인할 수 있습니다.

프로젝트 설정 > 플레이어 설정 > 최적화된 프레임 속도
그림 5. 기기 시뮬레이터는 편집기 내에서 기기 변경을 지원하므로 디자인 문제를 조기에 발견할 수 있습니다.
프로젝트 설정 > 플레이어 설정 > 명성 최적화
그림 6. 기기 시뮬레이터 패키지를 다운로드하기 전에 출시 전 패키지 사용 설정을 선택합니다.

Unity용 UI 최적화 기법에 관한 자세한 내용은 Unity의 Unity UI 최적화 튜토리얼을 참고하세요.

물리학

Nvidia PhysX 엔진은 Unity에 내장되어 있습니다. 모바일에서는 기본 설정이 비용이 많이 들 수 있으므로 다음 고려사항에 유의하세요.

  • 목표 프레임 속도를 고려하고 그에 따라 고정된 기간을 설정하세요. 기본값은 0.02ms 또는 50Hz로 설정됩니다. 30fps 목표의 경우 0.03 이상으로 늘릴 수 있습니다.
  • 특정 레이어 유형의 게임 객체 간 상호작용을 판단하려면 메시 콜라이더를 단순화하고 레이어 충돌 매트릭스를 최소화하는 것이 좋습니다.

모바일 게임의 물리적 설정 및 최적화에 관한 자세한 내용은 Unity의 모바일 게임 최적화 eBook을 참고하세요.

프로필

앱 개발자는 애플리케이션이 중요한 장애점에 도달할 때까지 프로파일링을 간과하거나 무시하는 경우가 많습니다. 프로세스에 전용 프로파일링 시간을 예약하고 다음 권장사항을 따르는 것이 좋습니다.

  • 프로파일링 시간을 무작위로 맞추는 대신 개발 중에 할당할 수 있는 경우 핵심 사항을 파악합니다.
  • Unity 프로필 분석 도구에서 사용할 프로필 스냅샷을 저장합니다.
  • 대상 기기에서 게임을 프로파일링하여 현재 개발 단계에서 게임 성능을 정확하게 파악할 수 있습니다.
  • 게임의 다양한 부분을 프로파일링합니다.
  • 플레이어의 게임 플레이 방식을 프로파일링합니다. (유휴 상태이거나 일시중지 화면에 있을 때만 게임을 프로파일링하지 마세요.)
  • 휴대기기가 상태일 때 발생할 수 있는 제한 문제를 찾기 위해 게임을 한동안 실행한 후 지속 모드의 프로파일링

다음 프로파일링 도구를 개별적으로 또는 조합하여 사용할 수 있습니다.

  • Unity 프로파일러 Unity 프로파일러는 Unity 편집기에서 코드에 대해 실행하고 개발 모드 빌드를 실행하는 독립형 Android 기기에 연결할 수 있는 완전히 통합된 성능 분석 도구입니다.

  • Android GPU 검사기: Android GPU 검사기(AGI)를 사용하면 프레임 수준 디버깅을 실행할 수 있습니다. 또한 AGI는 GPU, CPU, 메모리, 배터리, GPU 카운터를 비롯한 시스템 서비스를 분석합니다.

Unity에서 게임을 프로파일링하는 방법에 관한 자세한 내용은 Unity에서의 프로파일링 소개 동영상을 시청하거나 Unity에서 Unity 게임 프로파일링을 위한 종합 가이드를 참조하세요.

메모리 관리

Android 프로세스는 대상 기기에서 사용 가능한 메모리를 공유합니다. 타겟 테스트 기기에 여유 메모리 리소스가 충분하면 메모리 사용량을 프로파일링해야 합니다. 세션과 메모리 사용량 추세를 적절하게 비교할 수 있도록 게임의 일관된 지점에서 메모리 테스트를 실행합니다.

C#으로 작성된 스크립트로 작업할 때 문자열, 문자열 비교, 문자열 관련 객체 (예: 게임 설정을 위한 JSON 파일) 할당을 사용할 때는 주의해야 합니다. 이로 인해 메모리 할당이 자주 발생하며 이로 인해 파편화가 발생할 수 있습니다.

인플레이스 연결 (예: 'this' + 'is' + 'a' + 'bad' + 'idea'와 StringBuilder.Concat() 함수 호출)보다 대규모 문자열 조작 시퀀스에는 StringBuilder 클래스를 사용하는 것이 좋습니다.

문자열에 관한 자세한 내용은 Unity 문서의 문자열 및 텍스트를 참고하세요.

우선 ScriptableObject 유형을 기준으로 TextAsset 및 JSON 텍스트 리소스를 평가합니다. ScriptableObjects는 교차 장면 데이터 저장소를 효율적으로 처리하고 편집기에서 재생 시간 수정을 허용합니다.

모바일 최적화를 위해 기본 JSON 핸들 대안을 사용하는 방법에 관한 내용은 Hutch의 네트워크 게임의 숨겨진 최적화 문서를 참고하세요.

Memory Advice API를 사용하여 런타임 시 메모리 사용량을 확인합니다. API는 메모리 사용량 높음, 정상, 낮음에 관한 신호등 표시기를 노출합니다. 표시기를 구독하여 업데이트를 확인하거나 직접 현재 상태를 폴링할 수 있습니다. 빨간색 신호가 나타나면 게임 객체 풀 또는 캐시를 줄이는 것이 좋습니다. 실시간 작업 중에 게임 원격 분석에 이러한 컨텍스트를 포함하고 출시 후 성능 측정항목을 검토합니다.

Android 기기의 메모리 구성과 Unity의 메모리 구성 방식에 관한 자세한 내용은 Android 메모리 사용량 이해 (Google I/O '18)를 참고하세요. 동영상에서는 메모리 문제의 유형과 로우 메모리 킬러가 발생하는 시점을 살펴봅니다.

가비지 컬렉션

관리되는 메모리 환경의 가비지 컬렉션은 애플리케이션에서 재활용할 수 있는 사용되지 않는 메모리 프래그먼트를 정리합니다. 가비지 컬렉션 권장사항을 따라 메모리 리소스의 불필요한 할당을 방지합니다.

예를 들어 주문형 할당 (GameObject.Instantiate)을 사용하는 대신 게임 객체 풀을 만듭니다. 큰 풀의 경우 여러 프레임을 할당하여 보급형 Android 기기에서 게임이 응답하지 않을 위험을 줄이는 것이 좋습니다.

MonoBehaviour의 시작 부분에서 호출되는 간단한 코루틴의 다음 코드 스니펫을 살펴보세요.

// Option 1: Bad for memory management - causes allocation each iteration
IEnumerator UpdateEnemyTarget() {
  while (enabled) {
    yield return new WaitForSeconds(1.0f);
    // Some intermittent function check
  }
}

// Option 2: Better for memory management - allocation of yield instruction once, reused each iteration
private YieldInstruction waitForSecond = new WaitForSeconds(1.0f);
IEnumerator BetterUpdateEnemyTarget() {
  while (enabled) {
    yield return waitForSecond;
    // Some other intermittent function
  }
}

MonoBehaviour 템플릿 파일을 수정하여 기본 Start()Update() 스텁 함수를 삭제하면 개발 중에 의도치 않게 빈 함수를 남겨두지 않습니다.

MonoBehaviour 이벤트의 실행 순서에 관한 개요는 Unity 문서의 이벤트 함수의 실행 순서를 참고하세요. 메모리 관리에 관한 자세한 내용은 Unity의 메모리 관리 과정을 참고하세요.

모바일 게임 성능 최적화 팁은 모바일 게임 성능 최적화: Unity 최고의 엔지니어가 전하는 프로파일링, 메모리, 코드 아키텍처 관련 팁을 참고하세요.

프리패브 풀링

CPU 프레임 시간의 급증은 거의 전적으로 게임플레이 중 Prefab 인스턴스화로 인해 발생합니다. 게임플레이에 들어가기 전에 발사체, 생성 가능한 적, 시각적 효과를 위한 객체 풀을 예열하여 시작 CPU 급증을 줄이거나 없앱니다. 장면에서 또는 소개 시퀀스를 로드하는 중에 여러 '초기화 프레임'에 추가 최적화를 분산할 수 있습니다.

Unity Asset Store에서 게임 객체 풀링 관리와 관련된 다양한 서드 파티 풀링 애셋을 찾을 수 있습니다. 나만의 목록도 만들 수 있으니 Unity Learn의 객체 풀링 소개를 참조하세요.

애셋 제공

Google Play에 처음 배포할 때 애플리케이션 크기에는 제한이 있습니다. 게임의 크기와 특성에 따라 플레이어가 원하는 환경을 경험하려면 게임 리소스 (캐릭터 모델, 환경, UI 요소 등)의 일부 또는 전체가 필요할 수 있습니다.

Play Asset Delivery(PAD) 서비스를 사용하여 설치 시, 빠른 팔로우 또는 주문형에 필요한 애셋을 관리할 수 있습니다. Unity Asset Bundle은 PD를 지원하도록 통합되며, 개발자는 이 도구를 사용하여 전송할 요소를 지정할 수 있습니다.

Addressables

Addressables 이름 지정 시스템을 준비하고 검토한다면 런타임 시 프리패브, 텍스처, 사운드 파일과 같은 동적 리소스를 설정하는 작업이 더 이상 복잡하지 않습니다. 주소 지정 가능한 애셋은 콘텐츠를 정렬하는 방식과 콘텐츠를 빌드하고 로드하는 방식을 분리합니다. Addressables 시스템은 Resources 폴더 및 애셋 번들을 대체하여 애셋을 참조하고 런타임에 로드하는 방법을 간소화합니다.

예시는 GitHub의 Addressables 패키지를 사용하는 데모 프로젝트를 참고하세요. Addressables 개발에 관한 자세한 내용은 Unity 블로그의 Addressable Asset System을 참고하세요.

Addressable 애셋 레이아웃을 사용하면 너무 적거나 너무 많은 애셋을 공통 번들로 묶을 때 장단점이 있습니다. Addressables를 사용한 콘텐츠 관리에 관한 자세한 내용은 Addressables를 사용하여 콘텐츠 관리 간소화를 참고하세요.

독립형 데모를 설정하고 액세스 모드를 실험하여 Addressables 시스템에 익숙해질 수 있습니다. 또한 오픈소스 프로젝트 Unity 2019.3 이상용 BuildLayout 탐색기를 확인하고 Addressables에서 생성한 buildlayout.txt 보고서를 검사할 수 있습니다.

Unity Open Project인 Chop Chop의 애셋은 모든 로드 및 언로드를 위해 Addressables 시스템을 사용하여 패키징되었습니다. Addressables 번들의 구조 및 설정에 관한 둘러보기는 Addressables 번들 | Open 프로젝트 Devlog로 콘텐츠 패키징을 참고하세요.

Chop Chop 프로젝트에서 기본적으로 로드되는 유일한 장면인 초기화 장면은 프로젝트의 애셋 (장면, 프리패브 등)에 대한 직접 링크 대신 AssetReferences를 사용하도록 구성되었습니다.

Unity Open Project: Chop Chop의 소스 코드는 GitHub에서 확인할 수 있습니다. 이 프로젝트는 더 이상 개발 중이 아니지만 git 저장소와 문서는 계속 사용할 수 있습니다.

서드 파티 플러그인

Unity Asset Store의 플러그인과 같은 서드 파티 플러그인을 사용하는 경우 폴더를 검토하고 Resources 폴더에서 불필요한 애셋을 삭제해야 합니다. 빌드 프로세스 중에 Unity는 Resources 폴더에 포함된 모든 애셋을 수집하여 런타임에 액세스할 수 있는 단일 번들로 패키징합니다. 이로 인해 최종 패키지에 팽창이 증가할 수 있으며, 이는 보통 필요하지 않습니다.

모든 리소스 폴더를 빠르게 찾으려면 프로젝트 패널에서 리소스를 검색합니다. 그러면 각 항목을 선택하여 포함된 항목이 무엇이고 게임에 필요한지 여부를 식별할 수 있습니다.

그림 7. Unity Asset Store에서 다운로드한 폴더에는 여러 Resources 폴더가 숨어 있을 수 있습니다. 애플리케이션 번들에 패키징되지 않도록 이러한 파일을 정리하세요.

게시 및 유지관리

모바일 게임을 출시할 준비가 되면 출시 대상, 알파 및 베타 테스트 방법, 출시 후 성능을 모니터링하고 추적하는 방법을 결정합니다.

한정 출시의 의견 분석

제한된 타겟층을 대상으로 출시하여 더 큰 규모로 베타 테스트를 실행하거나 모든 시장에서 정식으로 출시되도록 게임을 활성화할 수 있습니다. 제한 출시를 사용하면 더 광범위한 실시간 잠재고객과 기기 컬렉션을 기반으로 애플리케이션 성능을 조정할 수 있습니다.

예를 들어, Unity용 Android Performance TunerUnity용 Google 애널리틱스를 사용하여 애플리케이션 성능과 플레이어 트렌드에 관한 유용한 정보를 얻을 수 있으며, 이를 토대로 개발팀은 업데이트를 조정하고 푸시할 수 있습니다. 분석 데이터를 사용하여 비슷한 장르의 속편 또는 관련 게임을 계획할 수도 있습니다.

알파 및 베타 테스트

Google Play Console에서 애플리케이션 프로필을 설정한 후 공개 알파 및 베타 테스트 빌드를 준비하고 출시 전 검토를 위해 제한된 사용자를 대상으로 배포할 수 있습니다. 제한된 사용자를 대상으로 출시하면 더 큰 기기 풀로 최종 문제를 해결하고 글로벌 출시로 출시하기 전에 초기 의견을 수집할 수 있습니다.

Unity 빌드는 Android App Bundle을 통해 배포됩니다. 자세한 내용은 Unity에서 수동: Google Play에 제공을 참고하세요. APK 파일에서 AAB 형식으로의 변경사항도 설명되어 있습니다.

모니터링 및 추적

게임의 LiveOps 및 배포 단계에서 Android vitals를 사용하여 개발 및 테스트 중에 액세스할 수 없었던 기기의 성능 문제를 추적할 수 있습니다. 자세한 내용은 도달범위 및 기기, Android vitals 게임의 새로운 소식을 참고하세요.

대규모 개발팀에는 기기 성능과 관련된 측정항목을 제공하는 고유한 커스텀 게임 원격 분석 파이프라인이 있는 경우가 많습니다. Android Performance Tuner (APT) 및 이에 상응하는 Unity 플러그인을 활용하여 프레임 속도, 그래픽 재현성, 로드 시간, 로드 이탈과 관련된 전화로 참여하기 측정항목을 활용하세요. Unity 게임에 Android Performance Tuner 통합의 단계별 안내를 따르세요.

출시 후에도 게임의 수명 주기는 중단되지 않습니다. 성능과 피드백을 모니터링하고 유지하며 이에 대응하는 것은 사용자의 만족도를 높이고 긍정적인 리뷰를 작성하며 모든 시장에서 게임을 최종적으로 채택하는 데 매우 중요합니다.