게임 기획하기
Apple 플랫폼용 게임 개발이 처음이라면 잠시 시간을 내어 개발 착수에 필요한 도구와 기술에 대해 알아보세요. Apple은 Apple 플랫폼의 새 유행을 이끌어갈 게임을 제작하는 데 필요한 하드웨어, 그래픽, 오디오, 소셜 게임, 개발 및 배포 도구를 제공합니다.
Apple 플랫폼용 게임 개발이 처음이라면 잠시 시간을 내어 개발 착수에 필요한 도구와 기술에 대해 알아보세요. Apple은 Apple 플랫폼의 새 유행을 이끌어갈 게임을 제작하는 데 필요한 하드웨어, 그래픽, 오디오, 소셜 게임, 개발 및 배포 도구를 제공합니다.
Apple SDK는 Apple 플랫폼 전반을 위한 멋진 게임을 제작하는 데 필요한 모든 것을 제공합니다. Apple SDK에는 강력한 GPU 가속 그래픽부터 게임 컨트롤러 통합, 몰입감 넘치는 공간 음향에 이르는 다양한 요소를 위한 API가 포함되어 있습니다.
고성능 어드벤처, 레이싱, 액션 게임 제작
하드웨어 가속 3D 그래픽, 햅틱 및 사운드 피드백, 공간 음향을 사용하여 플레이어가 깊이 몰입할 수 있는 액션 게임을 빌드해 보세요. 널리 사용되는 게임 컨트롤러, 레이싱 휠, 기기별 터치 및 모션을 지원할 수 있습니다.
퍼즐 및 전략 게임 제작
표준 컨트롤로 인터페이스를 조합하고, 자체 2D 뷰를 그려 보고, 하드웨어 가속 애니메이션을 실행해 보세요. 대규모 데이터 세트 및 계산을 GPU로 오프로드하세요.
멀티플레이어 게임 제작
Game Center로 랜덤 대결, 친구 찾기, 음성 채팅 및 기타 소셜 게임 기능을 추가할 수 있습니다. 순위표, 목표 달성, 도전 과제를 사용하여 선의의 경쟁을 유도해 보세요. SharePlay를 사용하여 플레이어가 가족 및 친구들과 FaceTime으로 대화하며 게임을 시작할 수 있게 지원해 보세요.
가상 세계와 현실의 조화
visionOS를 활용하여 게임의 그래픽과 공간 음향을 플레이어의 현실 세계와 통합하여 3D 공간에 조화롭게 구현하고, 이를 플레이어가 선택한 몰입감 수준에 맞게 조정해 보세요. 벽에 뚫린 구멍을 통해 우주선을 날려 보고, 플레이어의 책상에 2D 보드게임을 띄워 보세요.
모든 기기에서 원활한 실행
플레이어가 다른 Apple 기기에서 게임을 이어서 플레이할 수 있도록 게임 데이터를 iCloud에 저장할 수 있습니다. iOS 게임을 iPadOS와 macOS에서도 실행할 수 있게 조정해 보세요. 다양한 Apple 플랫폼용 게임 버전 사이에 코드를 손쉽게 공유할 수 있습니다.
Apple 기술을 사용한 게임 개발은 Xcode에서 시작됩니다. Xcode는 코드 편집기, 디버깅 도구, 기기 시뮬레이터, 그래픽 성능 및 분석 도구, 플랫폼 SDK를 망라한 Apple의 통합 개발 환경입니다.
Xcode에는 iOS, iPadOS, macOS, tvOS, visionOS 및 watchOS용 SDK가 포함되어 있습니다.
먼저 Xcode 프로젝트를 생성한 후 플랫폼, Game 템플릿, 사용하려는 게임 기술(예: Metal)을 선택합니다. Metal용 C++를 사용하고자 하거나 Unity™ 프로젝트가 있는 경우, 아래의 기존 게임을 Apple 플랫폼으로 가져오기를 참고합니다.
훌륭한 게임은 실행 무대가 될 기기의 고유한 특성과 기능을 잘 활용합니다. 플레이어는 다양한 상황에서 게임을 플레이할 수 있습니다. 여행 중에 플레이할 수도 있고, 책상에 앉거나 소파에서 편히 쉬면서 또는 거실에 서서 플레이할 수도 있습니다. 가능한 경우 플레이어가 Multi-Touch 제스처와 음성 명령을 사용하여 게임과 상호작용할 수 있도록 지원하세요. 고해상도 디스플레이, Apple Silicon, 외부 게임 컨트롤러, 헤드폰 및 스피커를 활용해 보세요. visionOS에서는 패스스루를 허용하고, 플레이어의 주변 환경에 맞게 오디오를 조정하고, 터치 이벤트를 처리하고, 사용자 설정 제스처를 추가할 수 있습니다. 플랫폼별 디자인 지침은 Human Interface Guidelines > Platforms에서 확인하시기 바랍니다.
Metal을 사용하면 플레이어의 강력한 Apple 하드웨어에서 탁월한 그래픽 성능을 이끌어낼 수 있습니다. Metal은 모든 Apple 플랫폼에서 하드웨어 가속 2D 및 3D 그래픽을 위한 하위 수준 API를 제공할 뿐만 아니라 Apple Silicon을 위해 특별히 설계된 강력한 기능을 제공합니다.
GPU에 작업 제출. 기기의 GPU(그래픽 처리 장치)에서 명령을 실행하려면 커맨드 버퍼를 생성하고 해당 커맨드 버퍼에 명령을 작성한 후, 명령 대기열에 버퍼를 커밋합니다. 자세한 내용은 GPU 기기 및 작업 제출에서 확인하시기 바랍니다.
애셋을 GPU로 스트리밍. 애셋 데이터를 텍스처와 버퍼에 비동기식으로 스트리밍하여 그래픽 리소스를 더 빠르게 로드합니다. 자세한 내용은 리소스 로드에서 확인하시기 바랍니다.
업스케일링으로 성능 향상. 고성능 TAA(Temporal Anti-Aliasing) 또는 공간적 업스케일링을 사용하여 3D 장면의 성능을 향상하세요. MetalFX 프레임워크를 사용하면 이미지를 직접 렌더링하는 것보다 더 빠르게 저해상도 이미지를 고해상도 이미지로 업스케일링할 수 있습니다.
각 GPU 제품군에 맞게 조정된 셰이더 사용. Metal Performance Shaders 프레임워크를 사용하여 이미지, 행렬 곱셈 및 벡터에 고성능 필터를 적용할 수 있습니다.
GPU에서 계산 실행. 컴퓨팅 패스 인코딩은 GPU의 여러 코어에서 렌더링 패스와 병렬로 실행되므로 계산이 그래픽 렌더링에 영향을 주지 않습니다. GPU에서 레이 트레이싱(Ray Tracing)을 구현하려면 Metal을 사용하여 레이 트레이싱(Ray Tracing) 가속화하기를 참고하세요.
구현하려는 기능에 관한 작업 코드를 찾으려면 Metal 샘플 코드 라이브러리를 참고하세요.
강력한 Metal 개발 도구 제품군을 사용하여 게임을 빠르고 효율적으로 제작해 보세요.
Metal API 문제 발견 및 수정. Xcode에서 게임을 실행하여 Metal 코드를 검증하고 셰이더 실행 오류를 포착하세요. 자세한 내용은 앱의 Metal API 사용 검증하기 및 앱의 Metal 셰이더 사용 검증하기에서 확인하시기 바랍니다.
게임 디버그 및 프로파일링. Metal 디버거를 사용하여 시각적 아티팩트를 조사하고 GPU 성능을 최적화할 수 있습니다. Metal 워크로드를 캡처하고 성능 타임라인을 사용하여 GPU 실행 성능을 살펴보세요. 셰이더 디버거를 사용하여 Metal 워크로드 캡처에서 시각적 아티팩트를 조사할 수 있습니다.
그래픽 중단 또는 끊김 현상 수정. Instruments의 Game Performance 템플릿을 사용하여 스레딩 및 시스템 호출 정보와 Metal System Trace 도구를 함께 활용하면 게임의 프레임률 저하를 분석할 수 있습니다. 자세한 내용은 Metal 앱의 성능 분석하기에서 확인하시기 바랍니다.
메모리 사용량 최적화. Instruments 프로파일링 도구를 사용하여 메모리 공간을 작게 유지하고 게임의 프레임률을 개선합니다. 자세한 내용은 게임 메모리 프로파일링 및 최적화에서 확인하시기 바랍니다.
실시간 성능 분석. Metal Performance HUD를 게임에 오버레이하여 CPU 및 GPU 지표를 실시간으로 확인할 수 있습니다. 자세한 내용은 Metal 앱의 그래픽 성능 모니터링하기에서 확인하시기 바랍니다.
게임 내 액션을 보완하는 음향 효과와 음악을 추가하여 몰입도와 현실감을 높여 보세요.
오디오, 사운드 및 음악 추가. 오디오를 재생하고, 카메라를 제어하고, 오디오를 처리하려면 AVFoundation을 사용합니다. 음성 채팅을 구성하거나 다른 소스와 오디오를 믹싱하려면 AVAudioSession을 사용합니다. 재생을 제어하려면 AVAudioPlayer 또는 AVAudioEngine을 사용합니다. 라이브러리에서 음악을 재생하려면 Media Player를 사용합니다. 오디오 하드웨어와 직접 상호작용하려면 Core Audio를 사용합니다.
장면에 공간 음향 통합. PHASE(Physical Audio Spatialization Engine, 물리적 오디오 공간화 엔진) 프레임워크를 사용하여 게임 내 이벤트와 장면에 실시간으로 반응하는 더욱 사실적이고 몰입감 있는 오디오 경험을 만들 수 있습니다. PHASE는 플랫폼, 그리고 헤드폰 및 스피커와 같은 출력 기기에서 일관된 공간 음향 경험을 제공합니다.
iPhone 및 Apple TV에서 Core Haptics를 사용하여 촉각 및 청각 피드백을 결합하고 플레이어의 참여를 유도해 보세요. 플레이어의 주의를 끌고 행동을 강화하려면 스위치 토글과 같은 일시적인 이벤트나 진동 및 벨소리와 같은 지속적인 이벤트에서 맞춤형 햅틱 패턴을 빌드하세요. 게임 컨트롤러를 통해 햅틱 피드백을 제공하려면 아래의 입력 기기 지원을 참고하시기 바랍니다.
Game Controller 프레임워크를 사용하여 플레이어가 더욱 자연스러운 방식으로 게임과 상호작용할 수 있도록 지원하세요.
게임이 컨트롤러를 지원하는 경우 App Store에서 게임 컨트롤러 배지가 추가됩니다.
Apple Silicon GPU의 강점을 활용해 보세요.
Apple Silicon을 위한 코드 빌드. 가상 메모리의 페이지 크기, 캐시 라인 크기, 가변 함수, 작성 및 실행이 동시에 가능한 메모리 등과 관련하여 적절한 조정이 필요합니다. 자세한 내용은 macOS 코드 내 아키텍처상 차이점 해결하기에서 확인하시기 바랍니다.
CPU 스레드 우선 순위 업데이트. POSIX 스레드 우선 순위 및 스케줄링 정책을 사용하는 것 외에도 GCD(Grand Central Dispatch)를 사용하여 스레드 스케줄링을 관리하며 시스템 응답성을 유지하고, QoS(Quality of Service)를 사용하여 스레드에 시맨틱을 더하세요. 자세한 내용은 Apple Silicon을 위해 코드 성능 조정하기에서 확인하시기 바랍니다.
Neon으로 성능 가속화. Neon 명령어 집합은 SIMD(단일 명령 다중 데이터) 연산을 제공하여 ARM 프로세서에서 성능을 가속화합니다. Apple 플랫폼에서 오픈 소스 Neon 라이브러리를 사용하려면 SSE2Neon 및 AVX2Neon을 참고하세요.
GPU 성능 및 효율성 최적화. 이미지 블록, 타일 셰이딩, 래스터 순서 그룹과 같은 GPU 기능을 사용하는 Metal 코드를 작성해 보세요. 자세한 내용은 Apple GPU 및 타일 기반 지연 렌더링에 맞게 앱 맞춤 설정하기에서 확인하시기 바랍니다.
visionOS에서 몰입감 넘치는 멋진 경험을 만들기 위해 코드를 수정하는 방법에 대해 알아보세요.
RealityKit을 사용하여 주변 현실 세계의 객체에 사실적으로 통합되는 가상 객체를 만들어 보세요.
Shared Space에서 RealityKit은 플레이어의 실제 방 조명을 객체에 적용합니다. RealityKit은 가상 객체가 실제 객체 근처에 있을 때 깊이 완화, 근거리 비네팅 페이드, 패스스루, 그림자 효과 등의 기타 효과를 적용하여 가상 객체를 더욱 사실적으로 보이게 해줍니다.
내장된 PBR(물리 기반 렌더링) 셰이더를 사용하거나 Reality Composer Pro에서 맞춤형 셰이더를 직접 만들 수 있습니다. 나만의 맞춤형 조명 효과를 적용할 수도 있습니다. 자세한 내용을 보려면 Reality Composer Pro 소개를 시청하시기 바랍니다.
Apple Vision Pro는 양쪽 눈에 각각 모델, 텍스처, 셰이더를 렌더링할 수 있습니다. RealityKit, SwiftUI 및 ARKit을 사용한 게임을 제작해 다른 세상에 온 듯한 완전한 몰입감을 선사하세요.
GPU의 직접 제어가 필요한 고성능 그래픽의 경우 Compositor Services를 사용하여 Metal에 접근하고 양쪽 눈에 각각 다른 장면을 직접 렌더링할 수 있습니다. 그런 다음 ARKit을 사용하여 공간 추적 및 손 동작 추적을 활용하세요. 자세한 내용을 보려면 몰입감 넘치는 앱을 위한 Metal 살펴보기를 시청하시기 바랍니다.
2D 게임을 3D 공간에 적용하려면 객체를 별도의 레이어 안에 렌더링하여 패럴랙스 효과를 더하는 것을 고려해 보세요. 또한 연기 및 불꽃과 같은 요소는 수직면에서 나오도록 하는 것이 좋습니다. 자세한 내용을 보려면 공간 UI 디자인하기를 시청하세요.
플레이어의 손을 포함한 실제 객체에 콘텐츠의 기준 위치를 고정하려면 RealityView를 사용하세요.
3D 공간에서 객체에 생동감을 불어넣으려면 장면의 특정 엔티티에서 RealityKit을 통해 오디오를 재생하세요. RealityKit은 리버브와 실제 소리를 자동으로 일치시켜 줍니다. 뛰어난 사운드트랙 만들기에서 언급된 다른 API를 사용하는 오디오의 경우, ARKit queryPose(atTimestamp:)
메서드를 사용하여 플레이어의 머리 위치를 가져와 머리 추적 기능을 구현할 수 있습니다. 자세한 내용을 보려면 몰입감 넘치는 사운드 디자인 살펴보기를 시청하시기 바랍니다.
플레이어가 눈, 손, 머리의 포즈를 입력 기기처럼 사용하여 경험에 참여할 수 있게 하세요.
SwiftUI에서 플레이어가 손을 뻗어 객체를 선택하거나 드래그할 수 있도록 해보세요. CollisionComponent
를 사용하여 객체의 모양을 정의하고 InputTargetComponent
를 사용하여 객체가 상호작용 가능하게 설정할 수 있습니다.
플레이어의 손을 사용한 맞춤형 제스처를 만들려면 ARKit을 사용하여 손을 추적하고 실내 환경의 가상 메시를 가져오세요. ARKit을 사용하여 수평면과 수직면을 찾고 카펫이나 목재와 같은 재질을 가져올 수도 있습니다. 자세한 내용을 보려면 공간 입력을 위한 디자인 및 공간 컴퓨팅을 위한 ARKit 소개를 시청하시기 바랍니다.
패스스루를 적용하면 플레이어가 자신이 들고 있는 기기를 볼 수 있습니다. 따라서 기존 게임의 경우, 플레이어가 Full Space에서 게임을 실행할 때 게임 컨트롤러나 키보드를 사용할 수 있습니다.
기존 iPad 및 iPhone 게임은 Apple Vision Pro에서 자동으로 실행되며, 윈도우에서 간접 및 직접 제스처를 사용하여 플레이할 수 있습니다. 입체감을 더하고 제스처 입력 및 효과와 같은 기기 기능을 최대한 활용하여 3D 공간에서의 2D 게임 경험을 향상하려면 RealityKit을 사용하여 공간 컴퓨팅용 게임을 디자인하세요.
기존 Unity VR 게임의 경우, Unity VR 앱을 몰입감 넘치는 공간으로 가져오기 및 몰입감 넘치는 Unity 앱 만들기를 시청하세요.
시작하려면 RealityKit 템플릿에서 visionOS 게임을 만든 다음 Apple Vision Pro 시뮬레이터에서 게임을 실행하세요. 자세한 내용을 보려면 공간 컴퓨팅을 위한 앱 빌드 시작하기 및 공간 컴퓨팅을 위한 멋진 게임 빌드하기를 시청하시기 바랍니다.
Apple은 기존 게임을 Apple 플랫폼으로 가져오는 데 도움이 되는 지원과 도구를 제공합니다.
Apple Silicon에서 Windows 실행 파일 평가. Windows™ 게임을 Mac으로 가져오는 경우, 게임을 수정하지 않고도 Apple Silicon이 탑재된 Mac에서 게임의 그래픽과 성능을 테스트할 수 있습니다. 자세한 내용을 보려면 게임을 Mac으로 가져오기: 게임 계획 세우기를 시청하고 Game Porting Toolkit을 다운로드하시기 바랍니다.
Unity 기반 게임에서 Apple 기술 사용. Unity 프로젝트에 Apple Unity 플러그인을 사용하여 GameKit, Core Haptics, PHASE, Accessibility, Game Controller 프레임워크를 활용해 보세요.
Metal에 C++ 사용. 기존 C++ 코드가 있는 경우 Metal에서 계속 사용할 수 있습니다. Metal-cpp를 사용하면 별도의 Objective-C 또는 Swift 파일을 사용할 필요 없이 C++에서 Metal API를 활용할 수 있습니다. 자세한 내용은 Metal-cpp 시작하기에서 확인하시기 바랍니다.
셰이더 코드를 Metal로 변환. Metal 셰이더 컨버터를 사용하여 DXIL(DirectX Intermediate Language)을 Metal 라이브러리로 변환한 후 Xcode 프로젝트에 추가하여 시간을 절약하세요. 자세한 내용을 보려면 게임을 Mac으로 가져오기: 셰이더 컴파일을 시청하고 Metal 셰이더 컨버터를 다운로드하시기 바랍니다.
게임 애셋 변환. Windows 애셋 제작 파이프라인이 있는 경우, Windows용 Metal 개발자 도구를 사용하여 애셋을 Apple 플랫폼으로 가져올 수 있습니다. Metal 컴파일러를 사용하여 그래픽을 컴파일하거나 셰이더를 계산하고, 텍스처 변환기를 사용하여 텍스처를 Metal이 지원하는 형식으로 변환할 수 있습니다.
Game Center를 통해 Apple이 제공하는 서비스를 활용해 보세요. 소셜 게임 환경을 만들고 게임 데이터를 저장할 수 있습니다. Apple은 플레이어들 사이의 공유 및 상호작용을 통해 게임이 유기적으로 홍보될 수 있도록 지원합니다.
노출 및 참여도 개선. Apple의 소셜 게이밍 네트워크인 Game Center를 활성화하면 App Store 및 친구를 통해 앱을 발견한 플레이어의 신규 유입을 유도할 수 있으며, 기존 플레이어에게는 계속 즐거운 경험을 하도록 장려할 수 있습니다.
게임 플레이를 장려하는 동기 부여 및 경쟁 의식. 친구의 활동을 통해 게임의 즐거움을 높이고 홍보하려면 GameKit 프레임워크를 사용하여 Game Center 소셜 게임 기능을 추가하세요.
게임 및 플레이어 데이터 저장. GameKit 또는 CloudKit을 사용하여 게임 데이터를 iCloud 계정에 저장하고 플레이어가 여러 기기에서 게임을 이어서 플레이할 수 있도록 지원하세요. 또한 게임의 비공개 또는 공용 iCloud 컨테이너에 게임 데이터를 저장하고 모든 플레이어가 해당 데이터에 접근할 수 있게 지원할 수 있습니다.
익숙한 멀티플레이어 경험 제공. GameKit의 랜덤 대결 및 통신 API를 사용하여 멀티플레이어 기능을 쉽게 추가할 수 있습니다.
자세한 내용은 게임에서 멀티플레이어 찾기에서 확인하시기 바랍니다.
게임 콘텐츠 캡처 및 플레이 재개. ScreenCaptureKit 프레임워크를 사용하여 macOS 게임에 화면 공유 또는 게임 스트리밍 기능을 추가할 수 있습니다. ScreenCaptureKit은 지정된 윈도우, 앱, 디스플레이의 비디오 및 오디오를 최소한의 CPU 및 GPU 오버헤드로 녹화합니다.
App Store를 사용하면 모든 Apple 플랫폼에서 전 세계 수억 명의 사용자에게 게임을 쉽게 배포할 수 있습니다. App Store는 고객 결제를 처리하고, 안전하며 안정적인 다운로드를 제공하고, 릴리즈를 관리하고, 게임을 홍보하도록 돕습니다.
App Store를 통한 게임 배포. Apple Developer Program에 가입하고 Xcode를 사용하여 빌드를 업로드하세요. App Store Connect를 사용하여 게임 관련 기능을 구성하고, 베타 테스트를 위해 게임을 배포하고, 앱 심사에 빌드를 제출하세요.
다운로드 크기 축소. App Store는 각 플랫폼에 맞게 빌드를 최적화하고, On-Demand Resources를 호스팅하여 게임 크기를 줄이고 더 빠르게 다운로드할 수 있도록 합니다. 자세한 내용은 앱 배포 준비하기에서 확인하시기 바랍니다. 또는 백그라운드 애셋을 사용하여 자체 리소스를 호스팅할 수 있습니다.
사용자의 게임 발견 지원. App Store에 앱 미리보기와 스크린샷, 그리고 플레이어의 흥미를 돋우는 게임 설명이 포함된 제품 페이지를 생성해 보세요.
Apple Silicon 단일 지원 macOS 게임 제작. M1 칩 및 이후 버전이 탑재된 Mac 전용으로 게임을 타겟팅하려면 Mac App Store에 앱 제출하기의 ‘Apple Silicon 전용 앱’ 섹션을 참고하세요.
macOS 게임 공증. Mac App Store 외부에서 배포하는 macOS 게임이 정품이며 알려진 악성 구성요소 검사를 거쳤음을 플레이어에게 확인해 주려면, Xcode 또는 notarytool
명령줄 도구를 사용하여 배포를 앞둔 macOS 게임을 공증하세요.
게임의 무결성 보호. 강화된 런타임 기능을 활성화하고 악성 코드 삽입, 동적 라이브러리 하이재킹, 프로세스 메모리 공간 변조를 방지하는 옵션을 선택하세요.
획기적인 미출시 게임을 Apple Arcade 게임 구독 서비스를 통해 처음 선보이고 싶으시다면 언제든지 Apple에 알려주세요.