스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
iPhone 15 Pro에서 고사양 게임 선보이기
iPhone 15 Pro 및 iPhone 15 Pro Max에서 게임의 성능을 극대화할 수 있는 A17 Pro의 성능을 알아보세요. 모범 사례와 기술 리소스를 공유하고 게임 성능, 입력, 애셋 관리를 최적화하는 방법을 공유합니다.
리소스
관련 비디오
WWDC23
- 게임을 Mac으로 가져오기, 1단계: 기본 계획 세우기
- 백그라운드 에셋의 새 기능
- Mac에 게임 가져오기, 2부: 셰이더 컴파일하기
- Mac에 게임 가져오기, 3부: Metal로 렌더링하기
Tech Talks
WWDC22
-
다운로드
안녕하세요, 저는 Apple의 엔지니어링 매니저 Jason Jane입니다 이 세션에서는 고사양 게임을 iPhone으로 가져오는 방법을 알아봅니다
올 여름 초 Apple은 고사양 PC 및 콘솔 게임을 Apple Silicon Mac의 확장 가능한 통합 플랫폼으로 가져오는 데 유용한 새로운 도구와 모범 사례에 관한 3개 세션을 공개했습니다
Mac의 최신 그래픽 탁월한 성능, 몰입감 넘치는 오디오 놀라운 디스플레이 다양한 소프트웨어 기능으로 고품질 고사양의 게임 경험을 제공하는 방법이 소개되었습니다
이제 Apple Silicon Mac과 더불어 최신 iPhone 15 Pro와 iPhone 15 Pro Max 모델로 이 통합 플랫폼에서 차세대 게임을 빌드할 수 있습니다
이 최신 iPhone 모델은 모든 iOS 앱과 게임을 실행합니다
그리고 고사양의 게임도 거뜬하게 플레이할 수 있습니다 게임 콘솔의 성능을 스마트폰에 집약시켰죠 iPhone 15 Pro와 iPhone 15 Pro Max에는 더 빨라진 CPU 및 GPU 성능, PC 및 콘솔 텍스처를 위한 하드웨어 지원, 추가 시스템 리소스 등의 신기능이 있어 이 iPhone 모델들을 염두에 둔 개발은 Mac에서 개발하는 것만큼 쉽습니다
세션의 뒷부분에서는 게임을 iPhone으로 가져오는 데 유용한 새로운 기능 및 도구를 살펴보겠습니다
먼저 게임 포팅 계획에 필요한 도구와 전략을 설명한 다음 iPhone 15 Pro 및 iPhone 15 Pro Max를 중심으로 한 방법을 설명하겠습니다
이후 긴 게임 플레이 세션에 맞춰 최적화하는 방법 컨트롤러를 사용하도록 설계된 게임에서 탁월한 경험을 제공하는 방법 게임에서 대용량 고화질 애셋을 처리하는 방법을 차례로 알아봅니다
게임 계획 수립부터 시작해 보겠습니다 포팅 과정은 어떻게 이루어지며 어떻게 증분 단계를 거쳐 반복 실행 기술을 빠르게 생성하여 팀에 큰 부하를 주지 않고 iPhone으로 게임을 가져올 수 있을까요?
코지마 프로덕션은 놀랍게도 자사의 혁신적인 게임인 ‘데스 스트랜딩’을 Apple Silicon 탑재 Mac으로 가져와 iPhone으로의 게임 포팅 여정을 시작했습니다 코지마는 Mac 포팅으로 시작하여 대상을 동일한 소프트웨어 API 통합 메모리 아키텍처 최신 하드웨어 및 PU 기능으로 했습니다 모두 Apple Silicon Mac과 iPhone이 공유하는 기능이죠
작업 초기 단계에서는 Mac의 Xcode 및 도구를 사용하여 빠르게 반복 작업이 가능했습니다
강력한 데스크탑 Mac에 버금가는 추가 메모리와 리소스 덕분입니다 추가 스토리지와 메모리는 디버깅, 테스트 스캐폴딩에 사용할 수 있어 개발 과정에 매우 유용합니다 또한 명령어 라인 자동화 기능을 통해 키보드, 마우스 컨트롤러에서 손쉽게 입력할 수 있어 작업 및 테스트의 효율이 높아졌습니다
일단 Mac에서 실행하면 Apple Silicon의 통합 아키텍처와 iPhone 15 Pro 및 iPhone 15 Pro Max의 리소스와 기능이 Mac에서 iPhone으로 포팅하는 작업을 빠르게 도와 주어 단 며칠이면 게임 실행이 가능했습니다 이렇게 일관성을 유지하며 확장할 수 있는 플랫폼은 Apple이 유일합니다
휴대용 기기인 iPhone과 iPad에서 Mac Mini, iMac 그리고 가장 강력한 데스크탑인 Mac Studio와 Mac Pro로 확장할 수 있는 건 Apple Silicon의 성능 덕분입니다
iPhone-Mac 포팅을 시작하려면 Game Porting Toolkit을 사용해 보세요 이 툴킷을 통해 PC 게임의 그래픽과 셰이더가 Apple Silicon에서 낼 성능에 대한 초기 인사이트를 얻을 수 있습니다 툴킷을 사용하려면 Windows PC 게임을 수정 없이 Mac에서 실행하면 됩니다
보통 소스 코드를 재컴파일하기 전에 HLSL로부터 커스텀 셰이더를 변환하고 그래픽 서브시스템을 다시 구현하고 오디오·입력·디스플레이 및 HDR 렌더링을 변환하는 작업을 하는데요 Mac에서 첫 장면을 실행해 보기 전에 그리고 iPhone 환경을 위해 디버깅과 최적화를
시작하기 전에, 원본 Windows 바이너리를 Mac에서 실행, 분석해 보면 게임이 Apple Silicon에서 어떻게 동작하는지 프로파일링 및 파악하고 계획을 세우는 데 유용합니다 포팅 여정의 시작에 필요한 자세한 내용은 ‘Mac에서 게임 선보이기’ 파트 1에서 확인하세요
게임에 iPhone 15 Pro의 고사양 기능과 성능이 필요한 경우 이 모델을 최소 사양으로 특정할 수 있습니다
iOS 17과 App Store에는 iPhone 성능 게이밍 티어가 정의되어 있습니다 이 티어는 앱의 Info plist 파일의 ‘UIRequiredDeviceCapabilities’ 섹션에 추가하는 플래그입니다
이 플래그를 추가하면 최소 사양이 지정됩니다 최소 사양을 갖춘 기기 사용자만 앱을 구입 및 설치하고 리뷰를 남길 수 있습니다
최소 사양을 설정하려면 Xcode에서 Info plist의 ‘Required device capabilities’ 섹션에 엔트리를 추가합니다
최소 사양 설정을 위해서는 iOS 17을 최소 배포 사양으로 정해야 합니다
설정이 끝나면 해당 앱은 App Store에서 지원되는 기기 사용자에게만 구입 및 설치가 가능한 것으로 표시됩니다 iPhone 13 Pro 사용자는 화면의 내용을 보게 됩니다
iOS 17이 설치된 모든 iPhone에서 게임의 품질과 성능을 동적으로 확장할 수 있다면 iPhone 15 Pro 모델 역시 고려 대상이 됩니다
PC 및 콘솔 게임의 확장은 일반적이며 가장 큰 잠재 시장을 겨냥하는 것은 좋은 방법입니다
하드웨어 가속 메시 셰이딩 또는 레이 트레이싱을 선택적으로 활용하려면 Apple 9 GPU Family를 쿼리하여 Apple A17 Pro GPU를 탑재한 기기인지 확인하세요
이제 iPhone에서 긴 플레이 시간 동안 일관된 고품질 성능을 제공하기 위해 최적화하는 방법을 알아보겠습니다
성능 시각화 새로운 성능 프로파일링 셰이더 최적화 기법 그리고 iPhone에서 MetalFX를 사용하는 방법을 소개합니다
Metal Performance HUD로 성능을 쉽게 실시간으로 시각화할 수 있습니다 Metal Performance HUD는 일상적인 테스팅에서 프레임 손실과 메모리 누수를 빠르게 포착합니다 HUD는 사용 중인 GPU 및 해상도 순간 프레임률 프레젠테이션 간격 사용 중인 GPU 속도의 근사치를 보여 줍니다 또한 이러한 지표의 고점과 저점을 알려 주며 메모리 사용량과 지난 몇 초간의 데이터를 그래프로 표시합니다 ‘Metal Performance HUD 살펴보기’를 확인해 보세요
iPhone 15 Pro 및 iPhone 15 Pro Max에는 Sustained Execution Mode라는 새로운 시스템 성능 프로파일이 도입되었습니다 기본 시스템 성능 프로파일은 세 개의 시간 영역에서 최적의 성능을 제공하기 위한 것입니다 짧은 시간 내 최대 성능으로 고도의 워크로드를 처리한 후 일정한 성능을 제공하여 대부분의 사용자 세션을 처리하는 기간이 있고 이후 안정 상태로 접어들어 기기의 제약 조건을 준수하여 긴 워크로드를 처리합니다 때문에 게임 수정 방법도 결정해야 합니다 초기 성능에 맞춰 수정하고 시간에 따라 게임 성능을 변경할까요? 아니면 개발 중에 간을 들여 성능을 안정화한 다음 재수정할까요?
이런 복잡함을 줄이고 일관된 경험을 제공하기 위해 iPhone 15 Pro 및 iPhone 15 Pro Max에는 Sustained Execution Mode가 있습니다
이 새로운 프로파일을 선택하면 앱 실행 직후부터 일관되게 안정 상태에 있는 성능을 경험할 수 있습니다 이를 통해 대상 기기에 적합한 품질 및 성능 수준을 빠르게 파악하여 플레이어들에게 일관된 품질의 경험을 확실하게 제공할 수 있습니다
게임 실행 중에 Sustained Execution Mode를 활성화하려면 해당 Entitlement(권한)를 앱에 추가하세요 Xcode의 Signing & Capabilities에서 ‘Sustained Execution’ 기능을 추가하세요 이 Entitlement(권한)는 앱의 Provisioning profile(권한 설정 프로파일)에도 설정해야 합니다 Apple Developer 계정의 프로파일 섹션에서 설정할 수 있습니다
Metal은 또 다른 중요 성능 향상 기술인 셰이더 프리컴파일을 지원합니다 일반적으로 모바일 기기에서는 성능상 비효율적이므로 소스로부터 셰이더를 컴파일하지 않는 것이 좋습니다 런타임에 온디바이스로 컴파일하면 예상치 못한 문제가 생길 수 있습니다 PC 또는 콘솔 게임을 포팅할 때 프리컴파일은 더욱 중요합니다 더 많은 셰이더를 가능한 한 빨리 준비해야 하기 때문입니다
항상 Metal 셰이더 컨버터 및 Metal 컴파일러로 사전에 컴파일하여 앱 빌드 타임에 Metal 라이브러리를 생성하고 이를 번들에 패키징하세요
어떤 경우에는 Metal GPU Family 9를 위한 라이브러리 생성에 metal-tt를 사용하여 Metal 라이브러리로 최종 GPU 바이너리를 만들 수 있습니다 자세한 내용은 ‘Mac에서 게임 선보이기 파트 2: 셰이더 컴파일’에서 확인해 주세요 Mac으로 게임을 포팅하는 지침은 iPhone에도 동일하게 적용됩니다
마지막으로, MetalFX는 올해 iOS 17에 도입된 또 하나의 새로운 성능 향상 기능입니다 MetalFX는 작년에 Mac에 도입되어 더 적은 픽셀에서 고품질 고해상도 이미지를 생성하여 전력과 시간을 절약하고 게임 성능의 향상을 도와 줍니다
MetalFX가 제공하는 두 개의 업스케일링 효과는 더 큰 성능의 이점을 제공하는 공간적 효과와 높은 품질을 위한 시간적 효과입니다 올해 MetalFX의 기능이 iOS에 도입되었습니다 공간적 업스케일링은 iOS 17을 지원하는 모든 iPhone에서 시간적 업스케일링은 A14 이후 버전이 설치된 기기에서 사용 가능합니다
저해상도로 렌더링하는 것은 게임의 성능을 높이는 한 가지 방법입니다 GPU 작업을 줄여 전력 소비를 줄이고 프레임률을 높일 수 있습니다 모든 iPhone은 CAMetalLayer의 콘텐츠를 네이티브 디스플레이 해상도로 자동 스케일링하는 고품질 디스플레이 스케일러가 내장되어 있습니다 이미 화면과 같이 사용하고 계실 겁니다 MetalFX를 사용하면 대상 해상도를 유지하여 디스플레이 스케일러를 계속 활용하면서 게임을 저해상도로 렌더링할 수 있습니다
MetalFX는 고사양 게임이 ProMotion 및 비 ProMotion 디스플레이에서 안정적인 프레임률을 달성하게 도와 줍니다 게임의 워크로드에 따라 MetalFX와 디스플레이 업스케일링 비율을 다양하게 조합하여 성능과 품질 사이에서 최적의 균형을 찾을 수 있습니다 MetalFX 사용의 모범 사례에 관한 자세한 내용은 지난 WWDC 세션인 ‘MetalFX 업스케일링으로 성능 향상하기’, ‘Mac에서 게임 선보이기, 파트 3: Metal로 렌더링하기’에서 확인하세요
이제 더욱 향상된 컨트롤러 지원 덕분에, iPhone에서 게임과 상호작용하는 것이 그 어느 때보다 쉬워졌습니다 많은 PC 및 콘솔 게임은 게임 컨트롤러 입력을 고려하여 디자인되었습니다 iPhone에서 게임을 선보일 때도 컨트롤러를 계속 지원할 수 있습니다 iOS는 모든 iPhone 15 모델에 꼭 맞고 잘 작동하며 저지연 USBC를 사용하는 최신 버전의 iOS 전용 게임 컨트롤러를 포함하여 인기 있는 게임 컨트롤러를 모두 연결하도록 지원합니다 Backbone사가 출시한 PlayStation 스타일의 이 컨트롤러는 제 최애 모델입니다
게임 경험이 컨트롤러에 최적화된 경우, Xcode의 Signing & Capabilities 섹션에서 ‘Game Controller’ 기능을 추가하여 플레이어들에게 안내할 수 있습니다
그 다음 GCRequiresControllerUserInteraction 딕셔너리를 Info plist 배열에 추가하고 iOS 키를 YES 부울 값으로 포함합니다
이 구성 세트를 사용하면 App Store에서 ‘컨트롤러 지원됨’ 배지가 플레이어에게 표시되며
플레이어가 다양한 컨트롤러를 사용 및 비교해보고 호환되는 iOS 전용 및 범용 컨트롤러를 검색 및 구입할 수 있게 안내합니다
iPhone은 높은 정확성의 저지연 멀티터치로 모바일 게이밍을 혁신하기도 했습니다 게임이 터치 상호작용을 지원하는 건 중요하기도 하지만 App Store 심사 절차의 일부이기도 합니다
올해 앱에 더욱 맞춤화된 터치 제어를 손쉽고 빠르게 추가할 수 있게 되었습니다 이제 GC Virtual Controller API는 개발자가 원하는 위치에 자체 온스크린 제어를 드로우할 수 있도록 지원합니다 터치 핸들링은 게임 컨트롤러 입력 이벤트로 변환되어 게임 UI의 스타일을 맞춤화하면서도 기존 게임 컨트롤러 입력 로직을 대부분 유지할 수 있습니다
또한 iPhone 15 Pro 및 iPhone 15 Pro Max는 이제 고품질 PC 및 콘솔 애셋을 원활하게 지원합니다 게임의 원본 기본 애셋은 용량이 매우 크고 고해상도 텍스처 데이터 폴리곤이 많은 지오메트리 미압축 오디오 및 음성 데이터가 포함될 수 있습니다 애셋 파이프라인의 역할은 가속된 기능을 활용하여 이러한 파일을 사용 가능한 PC 및 콘솔 시스템 리소스로 변환 및 패키징하고 대상 하드웨어와 효율적으로 연동하는 것입니다 예를 들어 텍스처 압축 해제 지오메트리 인스턴싱 오디오 믹싱 등을 활용합니다
iPhone 15 Pro 및 iPhone 15 Pro Max 이전에는 모바일 기기를 대상으로 할 때 우려 지점이 있으셨을 겁니다 고도로 집약적인 애셋을 생성하여 제한된 리소스 공간에 맞추거나 모바일 전용 텍스처 포맷을 처리하기 위해 일반 모바일 애셋 파이프라인을 새로 제작하셨을 수도 있습니다
iPhone 15 Pro 및 iPhone 15 Pro Max에서는 기존의 PC 및 콘솔 애셋 파이프라인을 사용할 수 있습니다
하드웨어 가속 BC 및 텍스처의 지원으로 더 이상 기존의 대용량 애셋 패키지를 변환할 필요가 없는데 ASTC 압축을 사용하면 더 높은 압축 효율과 품질을 이용할 수 있습니다 늘어난 전용 메모리는 고품질 애셋을 매끄럽게 로드, 저장, 이동하며 Retina ProMotion 디스플레이에 표시합니다 또한 간소화된 포팅 작업으로 시간이 절약됩니다
Metal의 Device Inspection 함수인 supportsBCTextureCompression을 사용하여 BCn 사용 가능 여부를 쿼리합니다
iOS 17을 실행하는 다른 iPhone 모델도 지원하는 경우 ASTC로 압축된 애셋을 사용하면 더 높은 품질과 압축률을 얻을 수 있습니다
사용 가능한 메모리를 극대화하려면 Xcode에서 Apple Developer 프로파일에 있는 ‘increased-memory-limit’ Entitlement(권한)를 활성화하세요 리소스가 더 많으면 더 세부적으로 렌더링하고, 더 높은 해상도의 심도 및 그림자 버퍼를 사용하고, 더 복잡하고 리소스 집약적인 렌더링 알고리즘을 구현할 수 있습니다 여러 기기에 걸쳐 스케일링하는 경우 ‘os_proc_available_memory’를 사용하여 사용 가능한 리소스를 동적으로 선택할 수 있습니다 대용량 애셋을 iPhone으로 가져오기 위해 앱은 이를 동적으로 다운로드합니다 세 가지 방법이 있는데 온디맨드 리소스(ODR) 백그라운드 애셋 자체 맞춤형 다운로드 구현이 그것입니다
애셋의 다운로드 위치는 반드시 사용자 백업에 영향을 주지 않으며, 필요시 시스템이 해당 애셋을 제거할 수 있도록 해야 합니다 애셋을 받으면 데이터 컨테이너의 라이브러리 디렉토리에 있는 캐시 디렉토리로 이동시킵니다 이 디렉토리에는 중요 애플리케이션별 사용자 데이터가 백업되지 않으며 시스템은 이 디렉터리의 캐시가 무단으로 삭제되지 않게 합니다 WWDC의 최신 백그라운드 애셋 관련 프레젠테이션에서 첨단 다운로드 기술에 대해 자세히 알아보세요
이것으로 모범 사례 설명을 마칩니다 iPhone 15 Pro 및 iPhone 15 Pro Max에서도 고사양 게임을 그대로 제공해 보세요 Apple A17 Pro GPU는 성능과 그래픽 기능에서 획기적인 도약을 보여 주며, iPhone으로의 게임 포팅을 빠르고 쉽게 만들어 줍니다 iPhone 15 Pro 모델은 이러한 기능을 갖추어 Apple Silicon Mac 제품군과 함께 통합 대상 플랫폼을 이루고 차세대 게이밍 프로젝트를 실현합니다 iPhone에서 선보이실 게임들을 기대하겠습니다
-
-
0:01 - Slide 24: Scale by GPU family capabilities
MTLDevice *device = MTLCreateSystemDefaultDevice(); if ([device supportsFamily:MTLGPUFamilyApple9]) { // features available in Apple GPU Family 9: // hardware accelerated mesh shaders // hardware accelerated ray-tracing } else { // fall back on alternative techniques }
-
0:02 - Slide 54: Scale textures size & quality
MTLDevice *device = MTLCreateSystemDefaultDevice(); if (device.supportsBCTextureCompression) { // BCn textures are available } else { // fall back to ASTC texture assets for maximum compatibility }
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.