Windows 스토어 게임 개발

Windows 8 앱 개발자 블로그

Windows 8 엔지니어링 팀에서 제공하는 Windows 8용 Metro 스타일 앱 개발의 이해

Windows 스토어 게임 개발

Rate This
  • Comments 0

Windows 8은 혁신적인 폼 팩터, 새로운 칩 아키텍처, 흥미로운 상거래 모델, 엄청난 가능성으로 PC 환경을 바꾸어 놓았습니다. PC 게임은 오래 전부터 사람들이 컴퓨터를 사용하는 주된 이유 중 하나였습니다. 이제 게임은 그 어느 때보다도 새로운 장치 환경의 가치를 여실히 보여주고 있습니다. Windows 스토어를 통해 간편하게 게임을 받고, 즐기고, 친구와 공유하고, 안전하게 업데이트할 수 있습니다. 게임이 앱 다운로드에서 매우 높은 비율을 차지하고, 상당한 수익을 창출하고 있으며, 새 플랫폼에서 가장 높은 사용자의 호응을 불러오고 있다는 사실은 전혀 놀랍지 않은 일입니다. GDC가 얼마 앞으로 다가오면서 더욱 많은 개발자들이 Windows 8의 무한한 가능성에 대해 관심을 보이고 있습니다.

우수한 Windows 스토어 게임을 만들려면 어떻게 해야 할까요? 창의적이고, 혁신적이고, 수익성이 높은 게임을 간편하게 개발할 수 있도록 Windows가 제공하는 것은 무엇일까요? 여러분은 어떤 도구, 기술 및 서비스를 사용할 수 있습니까? 에코시스템에서는 무엇을 사용할 수 있을까요? 개발자들은 Windows 8 앱을 개발하면서 어떤 정보를 공유했을까요? 이 글에서는 이러한 질문에 대한 답을 제시하고 우수한 Windows 스토어 게임을 개발하는 방법을 알려 드립니다.

Windows 8 게임 디자인 및 개발 고려 사항

Windows 8은 즐거운 엔터테인먼트 경험을 제공할 수 있도록 특별히 설계되고 엔지니어링되었습니다. Windows 8 사용자 경험(UX) 지침에는 전체 화면 이미지를 사용하고 경계나 추가적인 창 장식이 없는 빠르고 원활한 상호 작용을 제공하도록 권장합니다. 디자인 지침에는 사용자의 호응을 유도하는 경험에 집중하고, 몰입할 수 있는 환경에서 상호 작용할 수 있는 앱을 제공하도록 권장하고 있습니다. 기본 게임 컨트롤은 쉽게 찾을 수 있는 곳에 배치하고 보조 컨트롤은 사용자가 필요로 하기 전에는 눈에 잘 띄지 않도록 앱 바나 설정 패널에 배치해야 합니다. 일반 앱을 개발할 때 아주 유용한 원칙입니다. 그런데 이러한 원칙이 게임에는 어떤 영향을 미칠까요? 지금까지 게임 개발자들은 빠르고 부드러우며 전체 화면으로 제공되는 몰입도가 뛰어난 경험을 제공해 왔습니다. 그렇지만 다음과 같은 기본적인 의문이 항상 따라다녔습니다.

  • 강력한 데스크톱 PC에서 노트북 및 태블릿으로 게임 메커니즘을 확장하려면 어떻게 해야 할까요?
  • 어떤 폼 팩터를 주요 대상으로 삼아야 할까요?
  • 게임 내에서 터치, 게임 컨트롤러, 키보드/마우스를 모두 지원할 수 있을까요?
  • 가장 중요한 화면 크기, 종횡비 및 해상도는 얼마일까요?

게임 개발자들은 오래 전부터 다양한 기술을 사용하여 PC 사용자에게 재미있는 게임을 제공해 왔습니다. Windows에서 사용되는 API는 시간이 흐르면서 장족의 발전을 거듭해 왔습니다. Windows 8에는 새로운 개발 플랫폼이 추가되었습니다. Windows 런타임 API는 이전 API에서 최고의 기술만을 추출하여 성능, 보안, 개발 일관성 및 서비스를 획기적으로 개선했습니다. Windows 스토어에는 게임을 검색, 배포 및 서비스하는 새로운 방법이 추가되었습니다. 이러한 최신 API는 새로운 개발 모델을 원하는 게임 개발자에게 엄청난 가치를 제공합니다. Windows 스토어 게임 개발을 시작할 때 다음과 같은 의문이 생길 수 있습니다.

  • 게임 개발에 가장 적합한 Windows 런타임 API는 무엇입니까?
  • 게임 장르가 달라도 같은 개발 모델을 사용할 수 있습니까?
  • 다른 플랫폼의 코드를 전환하려면 어떻게 해야 합니까?
  • 기존 버전의 Windows로 작성된 코드를 업데이트하려면 어떻게 해야 합니까?
  • 업데이트가 필요한 게임 자산은 무엇입니까?
  • 개발 비용을 절감하는 데 도움이 되는 리소스가 있습니까?
  • DirectX SDK는 어디에 있습니까?

상상 그 이상의 게임

모든 게임은 아이디어에서 시작됩니다. 아이디어를 얻는 경로는 매우 다양합니다. 길을 걷다가 또는 샤워를 하다가 갑자기 아이디어가 떠오르기도 하고 동료들과 협력하여 반복 작업을 하던 중 새로운 아이디어가 떠오르기도 합니다. 일단 아이디어를 얻었으면 어떤 종류의 게임인지 결정해야 합니다. 전혀 새로운 게임을 개발할 수도 있고 기존 게임을 포팅할 수도 있습니다. 슈팅, 퍼즐, 레이싱과 같은 게임을 만들 수도 있습니다. Windows 스토어에는 모든 장르의 게임이 모여 있습니다. //build/ 2012에서 발표된 게임 사례 연구를 보면 영감을 얻는 데 많은 도움이 될 것입니다. Windows 스토어 개발자 계정을 갖고 있다면 게임의 하위 범주를 검색하여 아이디어를 얻고 지역에 따라 어떤 게임 범주가 인기를 끌고 있는지 확인할 수 있습니다.

게임 디자인 지침

어떤 게임을 만들 것인지 결정했으면 그 다음으로 프런트 엔드 디자인을 결정합니다. 그러면 나중에 개발 시간을 상당히 단축할 수 있습니다. Windows 8 게임 카테고리 디자인 지침에는 사용자의 흥미를 유발하여 타일 및 알림을 계속 확인하도록 할 수 있는 방법이 나와 있습니다. 또한 어떤 전체 레이아웃을 사용하고 기본 및 보조 컨트롤을 어디에 배치해야 하는지에 대한 조언도 제공합니다.

상호 작용에 대한 권장 사항이 제공되며 게임에 터치, 센서 및 계약을 포함시키는 방법도 설명되어 있습니다. 게임 메커니즘 및 컨트롤을 최대한 빨리 결정해서 개발 범주를 확정해야 합니다. 하지만 Windows 런타임 플랫폼을 사용하면 같은 코드를 사용하여 더욱 간편하게 터치, 펜(잉크) 및 마우스를 지원할 수 있으므로 폼 팩터마다 특별한 메커니즘을 디자인할 필요는 없습니다. 모든 Windows PC에는 게임 컨트롤러를 연결하는 위치가 있습니다. 게임을 개발할 때 이 컨트롤 메커니즘을 꼭 사용해 보시기 바랍니다.

어떻게, 어떤 속도로 플레이어에게 게임 상호 작용과 메커니즘을 소개할 것인지에 대한 계획을 세워야 합니다. 너무 느리면 흥미를 잃게 되고 너무 빠르면 포기하게 됩니다. 아마도 가장 중요한 것은 사용할 수익 모델과 상거래 플랫폼을 결정하는 일일 것입니다. Windows 스토어에서는 개발자가 비즈니스 모델을 선택할 수 있습니다. Windows 스토어는 무료 게임, 광고 기반, 앱 내 구매 및 다운로드 가능 콘텐츠를 지원합니다. 기본적으로 제공되는 시간제 또는 기능제 평가판을 Windows 스토어 게임에 사용할 수 있습니다. 또는 타사 상거래 제공업체를 이용하거나 개발자가 직접 만든 것을 사용할 수도 있습니다. 어떤 방법을 선택하든 게임의 성공, 즉 수익이나 인기에 영향을 미치는 중요한 요소이므로 신중하게 고민해야 합니다.

다른 Windows 스토어 앱과 마찬가지로 게임 역시 다양한 활성화, 보기 및 일시 중지 상태를 지원해야 합니다. 디자인 지침을 보면 게임을 일시 중지하는 방법과 시기, 게임 상태를 일시 중지하는 방법과 시기, 전체 화면/동시 보기/전체 보기 상태를 처리하는 방법을 결정할 때 고려할 사항이 설명되어 있습니다. 게임에서 가로 및 세로 방향을 지원하는 방법을 결정해야 합니다. 여러 화면 크기에 맞게 게임 자산의 해상도를 조정할 때 대상 및 기타 화면 컨트롤의 크기를 고려해야 합니다. 화면 종횡비, 해상도 및 DPI 설정도 고려해야 합니다. 이러한 점에 주의한다면 어떤 화면 크기, 어떤 배율에서도 게임 콘텐츠가 정확하게 렌더링될 것입니다.

마지막으로, 게임의 접근성과 소셜 네트워킹 기능을 강화하는 데 도움이 되는 몇 가지 팁이 더 있습니다. 고대비 모드와 추가 오디오 대기열은 가시성을 높이고 게임하기 좋은 환경을 만드는 데 도움이 되므로 조명 조건이 좋지 않거나 시각 장애가 있는 플레이어를 위해 도입하는 것이 좋습니다. 또한 플랫폼에서 기본적으로 제공되는 온라인 ID(인증), 데이터 로밍 및 다른 앱과의 공유 기능을 사용하면 게임 결과를 비교하거나 여러 PC에서 게임을 하는 등의 소셜 활동을 통해 사용자의 참여도를 높일 수 있습니다.

게임 개발 지침

DirectX는 Windows 게임 개발 플랫폼의 핵심으로 간주되고 있습니다. 하지만 그 외에도 여러 구성 요소가 개발되어 Windows 8 SDK로 전환되었고 그 결과 다양한 Windows 게임 에코시스템을 지원하는 데 필요한 모든 기능이 플랫폼에 탑재되었습니다. Windows 게임 개발 플랫폼은 일관적이고 포괄적인 개발 방법을 제공합니다. 다른 게임 개발 플랫폼의 모범 사례도 적용했습니다. 하지만 핵심 아키텍처 목표 두 가지에 역점을 두어 관찰했다는 점이 가장 주목할 만합니다. 아키텍처를 결정할 때 가장 중요한 것이 성능 및 전력 소모라는 점은 Windows 8 그래픽의 뛰어난 하드웨어 가속 성능 블로그 글에서 설명했습니다. Windows 8은 전체 플랫폼이 빠르고 원활한 엔터테인먼트 경험을 제공하도록 설계되었기 때문에 간편하게 게임을 개발할 수 있습니다.

게임 개발에서 선호하는 언어는 C++와 DirectX

Windows 런타임은 편리하고 일관적인 방법으로 모든 최신 장치 및 센서를 노출하고 Windows 이벤트를 간단하게 처리할 수 있는 풍부한 API를 제공합니다. Windows SDK는 하나밖에 없기 때문에 Windows 스토어 게임 개발에 필요한 모든 API를 Microsoft Visual Studio 2012에서 얻을 수 있습니다. 현실적이고 몰입도가 뛰어난 경험을 제공하려면 Windows 8 DirectX API를 사용하여 3D 게임을 구축하는 것이 좋습니다. 가장 간편하게 게임을 개발할 수 있는 DirectX 버전으로, DirectX 9.1부터 DirectX 11.1의 최신 하드웨어 기능까지 광범위한 그래픽 수준을 지원하므로 전력 효율성이 좋은 ARM 기반 휴대용 Windows 8 태블릿 PC에서 오버클록된 다중 GPU 게이머 장치에 이르는 모든 PC에 최적화된 게임을 개발할 수 있습니다.

특정 개발 언어를 자유롭게 다룰 수 있는 분이라면 Windows 8에서도 기존의 기술과 경험을 대부분 사용할 수 있습니다. 개발하는 게임 종류 및 개발자의 기호에 따라 다양한 기술을 결합하여 Windows 스토어 게임을 개발할 수 있습니다. 구문 또는 모델에 대한 어떠한 제약도 없습니다. 관리 코드 개발자는 Windows 스토어 플랫폼의 강점과 기능을 활용하는 XAML로 재미있고 부드럽게 작동하는 2D 게임을 개발할 수 있습니다. 웹 개발자의 경우 웹 및 웹 게임을 개발하던 기존의 기술을 잘 활용하면 Windows 스토어를 통해 수익성이 높은 게임을 개발할 수 있습니다. 3D 대화형 게임의 경우 C++와 DirectX를 함께 사용할 것을(선택적으로 XAML까지 사용 가능) 권장하며 이에 대해서는 이 문서의 나머지 부분에서 집중적으로 설명하겠습니다.

게임 개발 구성 요소

Windows 8은 모든 OS 버전에서 사용하고 모든 PC에 탑재된 게임 기술을 기본적으로 제공하므로 기술을 따로 배포하거나 여러 버전을 관리할 필요가 없습니다. 추가 구성 요소를 검색, 다운로드 및 설치할 필요도 없습니다.

Windows 8 게임 개발 구성 요소 및 라이브러리그림 1: Windows 8 게임 개발 구성 요소 및 라이브러리

그래픽, 오디오, 입력에서 파일 I/O, 스케줄링, 수식, 네트워킹에 이르는 모든 구성 요소를 원하는 개발 언어로 사용할 수 있습니다. 하위 수준 구성 요소는 뛰어난 유연성, 리소스 관리 및 성능을 제공하지만 처리 작업과 그에 필요한 데이터 흐름을 포괄적으로 제어하려면 코드가 추가로 필요할 수 있습니다. C++를 사용하면 Windows 8 플랫폼의 GPU, CPU 및 하위 수준 서비스와 직접 연결되므로 고성능 코드를 작성할 수 있습니다. 최신 C++/CX 언어 확장을 사용하면 C#처럼 간단한 구문을 작성할 수 있습니다. 참조를 계산하여 개체를 투명하게 관리할 수 있습니다. 하지만 게임의 원활한 수행을 저해할 수 있는 런타임 계층, 가비지 수집 또는 JIT(Just-In-Time) 컴파일 동작은 없습니다.

3D 및 2D 그래픽에서 미디어, 이미지 및 기타 게임 구성 요소의 경우 Windows 8 DirectX 기술에서 구축에 필요한 포괄적인 API 모음, 구성 요소 및 라이브러리를 제공합니다. 이에 대한 개요는 DirectX 게임 개발 시작에서 확인할 수 있습니다. 새로운 Windows 8 그래픽 스택은 통합이 강화됨에 따라 Direct2D, Direct3D, DirectVideo 및 DirectCompute 구성 요소를 손쉽게 함께 사용할 수 있게 되었으며 이전보다 리소스 중복이 줄었습니다. 또한 XInput 라이브러리를 통해 Xbox 컨트롤러를 기본적으로 지원하도록 했습니다. 자세한 내용은 DirectX 게임의 입력 및 컨트롤 작업을 참조하십시오. XAudio2로 오디오 및 사운드 믹싱을 개선한 API에 대해서는 DirectX 게임의 오디오 작업 단원에서 다루고 있으며 간소화된 수식 함수와 그 유형에 대해서는 DirectXMath 프로그래밍 지침에 설명되어 있습니다.

DirectX/C++ 개발 방식의 최대 장점 중 하나는 코드의 상당 부분을 재사용하여 Windows 스토어 게임(및 Windows 데스크톱 게임), Windows Phone 게임, Xbox 360 게임을 만들 수 있다는 것입니다. DirectX API는 모든 Microsoft 게임 플랫폼과 관련되어 있습니다. 우수한 Windows 게임을 개발하는 데 필요한 모든 것은 런타임, Windows SDK 및 Visual Studio 2012에 포함되어 있습니다. 기존 DirectX SDK에 대한 내용은 DirectX SDK는 어디에 있습니까?를 참조하십시오. Windows 8에서 제공하는 개발 모델이 몇 가지 더 있습니다. DirectX 및 XAML 상호 운용성을 지원하는 하이브리드 모델은 제어 기능과 성능이 우수하며 사용법이 간편한 WinRT UI 도구 키트를 제공합니다.

개발 도구

우리는 Windows 스토어 게임 개발자의 요구를 만족할 수 있는 우수한 도구 모음을 제공하고 있습니다. Visual Studio 2012는 Direct3D 게임 개발을 훨씬 간편하게 시작할 수 있는 DirectX Windows 스토어 앱용 템플릿을 제공합니다. 템플릿 코드는 기본적인 보기 공급자 인프라, 창 지원 및 필요한 모든 헤더와 구성 요소에 대한 참조를 지원합니다. 그 외에 개발자가 선택하는 게임 개발 모델에 관계없이 모범 사례에 따라 게임을 개발할 수 있도록 도와주는 템플릿도 있습니다.

뿐만 아니라 Visual Studio 2012에는 게임 개발, 디버깅 및 프로파일링을 개선하는 새로운 기능이 추가되었습니다. Visual Studio 2012 그래픽 도구에 상당한 투자를 하여 그래픽 응용 프로그램 개발을 원활하게 통합할 수 있도록 했습니다. 개발자는 익숙한 IDE 인터페이스를 떠나지 않고도 3D 모델을 작업하고, 텍스처와 이미지를 보고, HLSL 셰이더를 만들고 편집하고 컴파일할 수 있습니다. 이제 Visual Studio 2012는 그래픽 API 캡처와 재생 기능이 통합되어(이전에는 Windows PIX라고 함) 이전보다 더욱 직관적으로 그래픽 작업이 많은 DirectX 응용 프로그램을 디버깅할 수 있습니다.

샘플 및 자습서

다음 샘플은 게임 개발을 신속하게 시작할 수 있는 다양한 소스 코드 예를 제공합니다. 각 샘플은 특정 기술 또는 방법에 초점을 맞추고 있습니다. 자습서와 샘플은 개발자의 수준을 염두에 두고 개발되었습니다. 이제 개발을 시작하는 분들을 위해 최소의 코드와 가장 간단한 방법부터 익혀 나가는 논리적 순서로 구성되어 있습니다. 전체 게임이 완성될 때까지 이전 샘플에 한두 가지 개념을 추가한 새로운 샘플을 제공하는 방식이 반복됩니다. Windows 스토어 앱 코드 작성(DirectX 및 C++)에는 Windows 스토어 앱의 DirectX 및 C++ 코드를 작성하기 위해 알아야 하는 내용이 설명되어 있습니다.

  1. Direct3D 자습서: 5단계로 구성된 이 자습서는 Direct3D를 초기화하고, 표면에 그리고, 스왑 체인을 사용하여 표면에 업데이트를 표시하는 방법을 설명합니다. 이 샘플에 나오는 "회전하는 정육면체"는 다른 Direct3D 샘플을 확장한 것입니다. 따라서 Direct3D API를 처음 시작하는 분들도 쉽게 따라 할 수 있습니다.
  2. DirectX 터치 샘플: D3D 자습서의 회전하는 정육면체에 최소의 터치 지원을 추가하는 방법을 보여 줍니다. 특히 Direct3D 애니메이션 업데이트를 Windows 런타임에서 제공하는 터치 이벤트에 연결하는 방법을 집중적으로 설명합니다. 손가락을 모으고 벌려 확대/축소하는 동작은 범프 매핑을 참조하십시오.
  3. Direct3D 스프라이트 샘플: 스프라이트 일괄 처리 동작을 Direct3D로 구현하는 방법을 보여 주며 이는 XNA SpriteBatch API와 비슷합니다. 스프라이트는 3D 장면에서 독립적으로 전환 및 관리할 수 있는 2D 비트맵으로, 주로 2D 게임에 사용되거나 3D 게임에서 계산이 복잡하거나 멀리 있는 개체를 나타낼 때 사용됩니다.
  4. 리소스 로딩 샘플: 셰이더, 텍스처, 메시 같은 리소스 및 자산을 로드하는 방법을 보여 줍니다. 참고로, 각 콘텐츠 유형마다 프로젝트 내에서 연결된 빌드 규칙이 있습니다. 개발자는 고유의 콘텐츠 프로세서 앱을 추가하고 고유의 규칙을 만들어서 호출할 수 있습니다.
  5. Direct3D 범프 매핑 샘플: 일반 맵과 픽셀당 조명을 사용한 범프 매핑을 보여 줍니다. 이 샘플은 일반 맵 및 컬러 텍스처를 사용하여 개체 표면을 음영 처리하는 코드를 보여 줍니다. 또한 제스처 인식기 없이 손가락을 모으고 벌려 확대/축소하는 기본적인 컨트롤 구현 방법을 설명합니다.
  6. Direct3D 사후 처리 샘플: Windows 스토어 C++ 앱의 축소된 중간 버퍼를 Direct3D와 함께 사용하여 회전하는 간단한 정육면체를 사후 처리하는 방법을 보여 줍니다. 하드웨어의 기능 수준에 따라 두 가지 셰이더를 사용하는 방법을 보여 줍니다. 중간 렌더링 대상을 수정하여 더 작은 표면을 렌더링하도록 성능을 개선한 후 장치의 최종 기본 해상도를 높여서 품질을 높일 수 있습니다.
  7. AUDIO2 오디오 파일 재생 샘플: 이 샘플 앱은 대기 시간이 짧은 대화형 사운드 효과에 사용되는 XAudio2 API를 DirectX 게임에 통합하여 사운드 경험을 개선하는 방법을 보여 줍니다.
  8. XINPUT 게임 컨트롤러 샘플: DirectX 게임에 Xbox 컨트롤러 지원을 추가하는 방법을 보여 줍니다. 이 샘플은 Xbox 게임 컨트롤러의 입력을 읽어서 아날로그 스틱을 움직이고 단추를 누르는 동작에 대한 데이터를 표시합니다. Direct2D 및 DirectWrite를 사용하여 연결된 컨트롤러의 입력 상태를 읽어서 디스플레이에 표시하는 방법을 보여 줍니다.
  9. Direct3D 입체 3D 샘플: Windows 8은 핵심 OS 기능으로써 스테레오 3D를 지원합니다. 이 앱은 DirectX 게임에 입체 3D를 넣는 방법을 보여 줍니다. Direct3D의 시스템 스테레오 변화에 응답하는 방법도 보여 줍니다.
  10. 평가판 및 앱 내 구매는 게임의 성공에 매우 중요한 요소입니다. 이 샘플에서는 Windows 스토어에서 제공하는 라이선싱 API를 사용하여 게임 또는 앱 내 구매에서 지원되는 기능의 라이선스 상태를 확인하는 방법을 보여 줍니다.

다음은 개별 기술을 결합하여 전체 게임을 완성하는 종합 샘플입니다.

  • DirectX 간단한 3D 슈팅 게임: 이 최종 샘플 앱과 포괄적인 코드 연습은 간단한 1인칭 슈팅 갤러리 게임에 다양한 컨트롤 유형과 DirectX 기술을 넣는 방법을 보여 줍니다. 각 기술 샘플의 기본 지식을 이미 알고 있는 분들은 현재 제공되고 있는 Windows 스토어 Direct3D 게임의 모든 구성 요소를 살펴볼 수 있는 좋은 기회입니다.
  • XAML DirectX 간단한 3D 슈팅 게임: C++ 앱에 DirectX(Direct3D 11.1, Direct2D, XInput, XAudio2)와 XAML을 사용하여 간단한 1인칭 3D 게임을 구현하는 방법을 종합적으로 보여 줍니다. Direct3D는 3D 콘텐츠를 렌더링하는 데 사용되고 XAML은 HUD(heads-up display)와 게임 상태 메시지에 사용됩니다.
  • DirectX Marble Maze 게임 샘플: 플레이어가 기울이기 컨트롤을 사용하여 온갖 위험으로 가득한 미로 사이로 대리석을 굴려 통과하는 간단한 미로 게임 앱입니다. 모든 게임 구성 요소를 단일 응용 프로그램에 맞추는 방법을 보여 줍니다. 또한 완전한 코드 연습의 형태로 이 앱에 대한 다양한 지침을 제공하고 있습니다.

게임 개발을 위한 기술

��임 개발과 깊게 관련된 개발 패턴, 모범 사례 및 기술을 살펴볼 필요가 있습니다.

  • 다양한 Direct3D 기능 수준용 개발에서는 그래픽 성능이 서로 다른 여러 장치에서 게임을 최적화하는 방법을 설명합니다. DirectX와 C++를 함께 사용하여 Windows용으로 개발한 Windows 스토어 게임의 고객층을 확장하는 데 도움이 됩니다.
  • 비동기 프로그래밍에서는 게임에서 다중 코어 및 하이퍼 스레드 CPU를 최대한 활용하는 방법을 설명합니다. 게임의 그래픽, 오디오, 논리, 파일 I/O 및 네트워킹을 모두 병렬 처리하면 최고의 성능과 긴 배터리 수명을 제공할 수 있습니다.
  • Windows 스토어 게임에는 스레드 풀 병렬 처리를 사용합니다. CreateThread 같은 기존의 스레딩 API는 사용하지 않습니다. 이 에도 설명되어 있지만 UI를 렌더링하고 응답 속도를 높이는 데 있어서 작업 모델은 매우 중요합니다.
  • 화면 방향 지원에서는 화면 회전, 콘텐츠 DPI 조정, DirectX 응용 프로그램 입력을 다룹니다. 다양한 화면 해상도에서 잘 작동하는 게임을 만드는 데 도움이 됩니다.
  • 게임에 마우스 이동/보기 컨트롤 추가에서는 Windows 스토어 개발 모델에 터치를 추가하는 데 사용된 기존의 마우스와 비슷한 탐색 기술을 설명합니다.
  • 마우스 컨트롤 개발에서는 시스템 커서를 숨기고 절대값 대신 화면의 상대 좌표를 반환하는 상대적 마우스 컨트롤 구현에 대해 설명합니다.
  • 게임 게시 요구 사항에서는 Windows 8 게임 개발자에게 등급 인증이나 패키징 같은 일반적인 게임 게시 시나리오에 제공되는 도구 및 지원에 대해 설명합니다.
  • Windows RT 및 ARM 프로세서 지원에서는 Direct3D 기능 수준 9_1을 목표로 ARM 패키지를 컴파일하여 Windows RT 장치에서 DirectX Windows 스토어 게임을 실행하는 방법을 설명합니다.

개발 시간 또는 비용을 절감하는 미들웨어 사용

고품질의 우수한 게임을 개발하려면 비용이 많이 듭니다. 여러 플랫폼에서 실행되는 게임을 개발하는 과정은 복잡하고, 오류가 자주 발생하고, 비용도 많이 듭니다. 여러 유명 게임 스튜디오에서 게임 개발 프로세스 또는 "파이프라인"을 구성하는 도구와 생산 기술을 개발하고 있습니다. 이를 통해 게임 자산을 다양한 게임과 플랫폼에 활용할 수 있습니다. 렌더링 엔진, 사용자 인터페이스 도구 키트, 가시성 폐색, 물리학 시뮬레이터, 오디오 비디오 제작, 애니메이션 보간, 인공 지능 등은 게임 개발에 일반적으로 사용되는 기술 카테고리 중 극히 일부에 불과합니다. 어떤 게임 기술은 개발하고 보완하는 데 몇 년이 걸릴 수도 있습니다.

게임 파이프라인은 매우 가치가 높기 때문에 여러 스튜디오에서는 게임 만큼이나 파이프라인에도 전략적 투자를 고려하고 있습니다. 하지만 모든 사람이 파이프라인 개발에 시간과 비용을 투자할 여력이 있는 것은 아닙니다. 다행히도 타사 공급업체에서 이러한 기능을 제공하는 종단간 게임 개발 파이프라인이나 개별 기술 라이브러리를 제공하고 있습니다. Windows 8이 출시된 후로 여러 게임 미들웨어 공급업체에서 기존 제품을 새로운 Windows 스토어 앱 모델로 전환했습니다. 이러한 제품을 사용하면 위험을 크게 줄이면서도 훨씬 빨리 Windows 스토어에 게임을 게시할 수 있습니다. 시간이 지나면 Windows 스토어 게임 개발용 제품을 출시하는 공급업체가 점차 늘어날 것입니다. 다음은 이 글을 작성한 시점을 기준으로 Windows 8 게임 개발을 지원하는 제품 버전을 발표 또는 출시한 타사 게임 미들웨어 공급업체를 알파벳 순서로 정리한 목록입니다.

  • Appcelerator
  • appMobi {!}
  • Audiokinetic Wwise
  • Autodesk Scaleform
  • Cocos2d
  • Epic Unreal Engine 3
  • Exit Games Photon Server
  • Fortumo Mobile Payments
  • Firelight Technologies FMOD
  • GameSalad Creator
  • Havok Physics
  • Havok Vision Engine
  • MonoGame
  • Ogre Rendering Engine
  • NVIDIA PhysX
  • Scirra Construct 2
  • SharpDX
  • ShiVa3D
  • SlimDX
  • Unigine Engine
  • Unity 3d
  • Yoyo Games GameMaker
   

Microsoft’s XNA Game Studio는 Xbox 360, Windows Phone 및 Windows를 대상으로 하는 게임 개발 파이프라인입니다. 하지만 Windows 스토어 게임 개발과 호환되지 않습니다(XNA 게임은 Windows 8의 데스크톱 앱으로 지원됨). Visual C++/CX를 사용한 DirectX 개발은 XNA의 패턴과 사례를 많이 차용했기 때문에 개념적으로 상당히 비슷합니다. 따라서 XNA 게임 개발자들은 비교적 어려움 없이 DirectX 및 C++ 개발로 전환할 수 있을 것입니다. XNA Game Studio 기능을 상당히 많이 모사한 오픈 소스 MonoGame 라이브러리를 적절하게 사용하여 큰 성공을 거둔 개발자들도 있습니다. XNA로 개발된 게임 자산을 Windows 스토어에 활용했다는 기사도 여러 차례 보도되었습니다. 이 주제에 대한 자세한 내용은 링크를 참조하십시오.

게임 개발을 위한 추가 리소스

요약

Windows 8은 게임에 가장 적합한 새로운 폼 팩터, 혁신적인 기술, 수익성이 높은 상거래 모델로 PC 환경을 바꾸어 놓았습니다. 새로운 이 플랫폼을 잘 활용하는 개발자에게 무한한 가능성이 열려 있습니다. 이 글을 작성하는 시점에도 Windows 스토어에 수천 개의 게임이 제공되고 있으며 날마다 그 수가 늘어나고 있습니다. 개발자들이 우수한 Windows 스토어 게임을 개발하여 성공을 거두려면 무엇을 해야 하는지 알리기 위해 이 글을 작성했습니다. 손쉬운 방법으로 창의적이고, 수익성이 높은 게임을 개발할 수 있도록 Windows 8에서 제공하는 기능을 설명하는 데 초점을 맞추었습니다. 플랫폼에서 제공하는 도구, 기술 및 서비스와 타사 기술을 살펴보았습니다. 샌프란시스코에서 매년 열리는 GDC(Game Developer Conference)가 얼마 남지 않은 이 시점에서 이 글이 Windows 스토어 게임 개발을 위한 길잡이가 되기를 바랍니다.

게임 개발은 계속되어야 합니다!

수석 프로그램 관리자, Shai Hinitz

  • Loading...
Leave a Comment
  • Please add 5 and 2 and type the answer here:
  • Post