What is XNA?
마이크로 소프트에서 개발한 게임개발 플랫폼.
XNA 플랫폼을 위한 IDE로는 XNA Game Studio Express 1.0 Refresh 에 이어 2007년 12월 13일에 XNA Game Studio 2.0 이 릴리즈 되었다.
What is XNA Game Studio ?
XNA를 이용한 게임개발을 손쉽게 하기 위한 IDE. 무료로 사용할 수 있으며 상업용 게임 개발 및 배포가 가능하다. 현재 2.0 버전은 Visual Studio 2005 의 모든 버전에서 에서 동작하며 .NET Framework 2.0 을 필요로 한다.
PC용 게임과 X-BOX360용 콘솔 게임을 개발 할 수 있으며 X-BOX360 용 게임을 개발 하거나 X-BOX LIVE 를 통한 네트워크를 지원하기 위해서는 X-BOX LIVE Gold Membership 과 XNA Creators Club Membership이 필요하며 가입비는 아래와 같다.
* X-BOX LIVE Gold Membership : 5만원 / 1년
* XNA Creators Club Membership : USD 99$ / 1년
What is XNA Framework?
Goals
- Cross-Flatform한 게임개발
Window 와 XBox360 에서 사용되는 API의 95%를 같게 만드는 것이 목표.
- 게임개발을 쉽게 한다.
"First 5 minutes"
XNA Game Studio를 실행한 뒤 5분안에 직접적인 게임아이디어 구현을 시작할 수 있게 하는 것이 목표.
즉, 개발자는 윈도우를 만들고, Idle event를 처리하고, Graphic adapter에 대한 처리등을 신경쓰지 않아도 된다.
Layers
Game Layer
게임 코드, 리소스 등이 존재한다.
Extended Framework Layer
- Application Model
Platform을 추상화 시켜서 GraphicsDevice 나 GameCompnents 에 대한 처리를 쉽게 한다.
- Content Pipeline
게임 Contents 들을 프로그램으로 쉽게 불러올 수 있게 한다.
Core Framework Layer
- Graphics
Direct 3D 9 APIs를 .NET Framework에 맞게 리팩토링 및 최적화 하였다.이 리팩토링 과정에서 Fixed-Function Pipeline을 제거하였는데 이는, 앞으로 Programmable Pipeline에 대한 지원과 Direct 3D 10 과의 호환을 위한 것이다.
- Audio
XACT 를 기반으로 구성되어있다.
Audio 담당자가 XACT 툴을 사용하여 package를 만들면 프로그래머는 이를 매우 손쉽게 사용할 수 있다.
- Input
XInput 을 기반으로 구성되어 있다.
어떤 초기화 작업없이 입력 장치를 바로 사용할 수 있다.
즉, 장치에 대한 핸들을 얻거나 해제하는 등의 작업을 할 필요가 없다.
- Math
Vector2, Vector3, Vector4, Matrix, Plan, Ray 등의 타입을 제공하며Bounding voulume type 즉, intersection과 containment test를 제공하는BoundingBox, BoundingSphere, BoundingFrustum 을 제공한다. 기본적으로 오른손 좌표계를 사용한다.
- Storage
Window나 XBox360 에서 같은 API를 통해 read/write 작업을 수행할 수 있다.
Platform Layer
Direct 3D 9, XACT, XInput, XContent 의 API를 포함하며 가장 낮은 곳에 위치하는 Layer


