g.co/gamedevsummit에서 Google for Games 개발자 서밋을 통해 업데이트를 받아 보세요.

Android 게임 개발 기본사항

이 가이드에서는 신규 게임 개발자에게 Android 게임 개발에 사용되는 기본 도구와 라이브러리를 소개합니다. Android 게임 개발 가이드는 대부분의 게임 개발 환경이 이미 계획되었거나 설정된 개발자를 대상으로 합니다. 일반적으로 특정 게임 엔진, IDE, 그래픽 API를 사용하는 게임을 이미 개발 중인 숙련된 게임 개발자가 그 예입니다.

대부분의 경우 성능 극대화를 위한 고급 옵션보다 초보자에게 더 친숙한 옵션을 사용하는 것이 좋습니다. 이러한 도구와 라이브러리에 익숙한 경우 개요를 사용하여 고성능 또는 배터리 수명과 같은 특정 유형의 최적화를 돕는 지침을 찾을 수 있습니다.

게임 엔진

게임 엔진은 게임 개발을 위한 라이브러리 및 도구 집합을 포함하는 소프트웨어 프레임워크입니다. 라이브러리를 사용하면 게임에 다양한 기능을 추가하여 게임 콘텐츠와 최적화에 더욱 집중할 수 있습니다. 일반적으로 이러한 기능에는 그래픽, 애니메이션, 사운드, 게임 루프, 입력 장치 지원 등이 있습니다.

또한 게임 엔진에는 일반적으로 기능을 구성하고 게임을 설계하며 개발한 다음 Android에 내보내기 위한 IDE와 기타 도구가 포함되어 있습니다.

게임 개발 시 선택해야 할 가장 중요한 사항 중 하나는 새로운 게임 엔진을 개발할지 아니면 기존 게임 엔진을 맞춤설정할지 아니면 수정하지 않은 게임 엔진을 사용할지 결정하는 것입니다.

사전 빌드

게임 개발이 처음이라면 권장되는 옵션입니다. 사전 빌드된 게임 엔진을 사용하면 게임 엔진을 개발하거나 AGDK 라이브러리를 추가하는 데 시간을 소비하지 않아도 되므로 Android 게임을 가장 간단하게 개발할 수 있습니다. 하지만 게임 엔진을 수정하지 않고 Android 게임을 개발하려면 게임 엔진이 이미 Android 개발을 지원해야 합니다.

Google은 사전 빌드된 게임 엔진을 사용할 때 Android 최적화, 워크플로 도구 및 권장사항을 추가로 제공합니다. 또한 다양한 소셜 및 배포 도구가 포함된 Google Play 서비스도 제공합니다.

다음은 Android 개발을 지원하는 몇 가지 기존 게임 엔진입니다.

  • Godot: GDScript, C# 및 C++를 포함한 여러 프로그래밍 언어를 지원하는 오픈소스 게임 엔진입니다.
  • Defold: Lua 프로그래밍 언어를 사용하는 오픈소스 게임 엔진입니다.
  • Unity: C# 프로그래밍 언어를 사용하는 널리 사용되는 상용 게임 엔진입니다.
  • Unreal: 고급 3D 그래픽에 특화된 상용 게임 엔진입니다. 이 엔진은 Blueprint 시각적 스크립팅 시스템 및 C++를 사용합니다.

자세한 내용은 Android에서 게임 엔진 사용 가이드를 참고하세요.

맞춤식

가장 고급 옵션은 새로운 게임 엔진을 만들거나 기존 게임 엔진에 Android 지원을 추가하는 것입니다. 이는 복잡하고 시간이 많이 소요되지만 필요 사항에 완전히 최적화되고 맞춤설정된 엔진을 개발할 수 있습니다. 예를 들어 많은 기존 게임 엔진에는 게임 크기는 늘리고 게임 성능은 낮추는 추가 기능이 포함되어 있는데, 이러한 기능을 제외하면 게임을 개선할 수 있습니다.

게임 엔진을 개발하는 것은 복잡하고 많은 시간이 소요되므로 신규 게임 개발자는 이 옵션을 사용하지 않는 것이 좋습니다. 실제로 이 옵션은 여러 게임에서 엔진을 사용하려는 대규모 조직에 가장 적합합니다.

IDE

Android 게임을 개발할 때 사용하는 IDE는 사용하는 게임 엔진과 워크플로에 따라 다릅니다. 가장 일반적인 게임 엔진에는 설계와 코드 편집을 위한 게임 편집기가 포함되며, 이러한 게임 편집기는 일반적으로 게임 개발자가 Android 스튜디오와 함께 사용합니다. Windows에서는 Visual Studio를 사용한 Android 게임 디버깅과 프로파일링도 지원합니다.

게임 편집기

게임 편집기는 종종 게임 디자인 기능을 코드 편집과 긴밀히 통합하며, 이러한 경우 디자이너가 코드를 작성하지 않고도 개발 작업을 완료하는 데 도움이 됩니다. 첫 번째 Android 게임을 개발하는 경우 이 옵션을 Android 스튜디오와 함께 사용하는 것이 좋습니다. 몇 가지 이점은 다음과 같습니다.

  • UI 및 도구 모음이 게임 디자인에 더 초점을 맞춥니다.
  • 애셋 디자인과 코드 편집 작업을 통합합니다.
  • 게임 엔진에 지원되는 프로그래밍 또는 스크립트 언어에 초점을 맞춥니다.
  • 모델링 및 렌더링 도구가 포함되어 있습니다.

Android 스튜디오

Android 앱 개발을 위한 공식 IDE입니다. Android 스튜디오가 Android 개발에 중점을 두므로 사용 중인 다른 IDE와 함께 이를 설치하는 것이 좋습니다. 다음은 Android 스튜디오로 완료할 수 있는 몇 가지 작업입니다.

  • C/C++, 자바 또는 Kotlin으로 작성된 코드 디버그
  • Android 게임을 빌드하는 데 필요한 Android SDK 관리
  • 게임 빌드, 프로파일링 및 최적화
  • Android NDK를 사용하여 C/C++ 코드 편집
  • 앱 패키지 및 Google Play 설정 구성

자세한 내용은 Android 스튜디오 개요를 참고하세요.

Visual Studio

Visual Studio를 사용하여 Windows에서 게임을 개발하는 경우 Visual Studio용 Android 게임 개발 확장 프로그램(AGDE)을 사용하여 Android를 대상으로 추가할 수 있습니다. 이 설정은 Visual C++ 프로젝트를 사용하여 이미 개발 중인 게임을 대상으로 하므로 고급 게임 개발자를 대상으로 한 옵션입니다. AGDE를 사용하여 다음 작업이 가능합니다.

  • 기존 Visual C++ 프로젝트를 사용하여 Android 게임을 만들 수 있습니다.
  • Visual Studio를 사용하여 게임을 디버그하고 프로파일링할 수 있습니다.
  • Incredibuild 또는 SN-DBS와 같은 분산형 빌드 시스템을 사용할 수 있습니다.

자세한 내용은 AGDE 개요를 참고하세요.

Android NDK

Android NDK는 C 또는 C++를 사용하여 네이티브 코드로 Android 앱을 개발할 수 있는 도구 모음입니다. 이 도구 모음은 게임이 기기 하드웨어에 더 직접적으로 액세스할 수 있도록 해 게임 성능을 높일 수 있습니다. 또한 C 및 C++ 라이브러리를 재사용하고 여러 플랫폼에서 게임 코드를 공유할 수 있게 해 줍니다.

NDK는 Android용으로 개발할 때 일부 AGDK 라이브러리와 도구에는 물론 여러 게임 엔진에도 필요합니다. 그 이유 중 하나는 NDK가 Android 기기에서 지원하는 가장 일반적인 하위 수준 그래픽 API에 액세스할 수 있는 일반적이고 강력한 방법이기 때문입니다.

NDK에 관한 자세한 내용은 Android NDK 문서를 참고하세요.

그래픽 API

최상의 2D 및 3D 그래픽 성능을 얻으려면 Android 게임이 하위 수준의 그래픽 API를 사용하여 GPU와 통신할 수 있어야 합니다. Android 게임 개발에 가장 광범위하게 지원되는 옵션은 OpenGL ES 및 Vulkan입니다.

수정되지 않은 게임 엔진 중 Android 개발을 지원하는 게임 엔진을 사용하는 경우 OpenGL ES 또는 Vulkan을 사용할 가능성이 높습니다. AGDK를 사용하여 C 또는 C++로 게임을 개발하는 경우 OpenGL ES 또는 Vulkan도 사용해야 합니다. 또한 이들은 AGI 그래픽 프로파일링 도구에 지원되는 유일한 그래픽 API입니다.

OpenGL ES

OpenGL ES에는 다음과 같은 이점이 있습니다.

  • 우수한 성능
  • 덜 복잡하며 사용하기 쉬움
  • 다양한 기존 기기 지원

자세한 내용은 Android의 OpenGL ES 개요를 참고하세요.

Vulkan

Vulkan에는 다음과 같은 이점이 있습니다.

  • 더욱 우수한 성능
  • 더 긴밀하게 GPU 제어
  • 더 낮은 CPU 사용량

자세한 내용은 Android용 Vulkan 개요를 참고하세요.