XNA는 왜 게임 엔진으로 간주되지 않습니까?


13

게임 엔진으로 간주되는 XNA가 무엇인지 궁금합니다. 그것은 게임 엔진이해야 할 모든 것을합니다 (물리 부분 제외). 또한 게임 엔진 에 대한 Wikipedia 기사에 정의 된 모든 측면을 지원합니다 .

XNA는 왜 게임 엔진으로 간주되지 않습니까?


19
@Miro 그건 말이되지 않습니다.
공산주의 오리

2
점은 무엇인가? 필요한 작업을 수행하면 사용하십시오. 그렇지 않다면하지 마십시오. 사람들이 그것을 어떻게 부르는가? 어쨌든 그것은 단지 마케팅 원숭이에서 주로 사용되는 레이블 일뿐입니다.)
Maik Semder

공산주의
오리가이

4
@Maik Semder 전혀 레이블이 아닙니다. 엔진과 프레임 워크는 별개의 두 가지로 XNA가 후자입니다. XNA가 엔진이 아니라는 것을 구별하고 이해하는 것이 유용합니다. 그렇지 않으면 실제로 XNA에서 엔진을 작성해야하거나 플러그인 일부 비트를 제공하지 않음을 발견하면 매우 혼란 스러울 수 있습니다 실제 엔진과 같은 기능을 재생합니다.
doppelgreener

3
@Maik 이것은 우리가하는 일의 일부입니다. 나는 driver 라고 말하고 , 그것이 무엇인지 아닌지, 무엇을하는지, 어떻게 사용할 수 있는지 알고 있습니다. 프레임 워크를 말할 때 비슷한 일이 발생 하지만 프레임 워크가 무엇인지, 엔진이 아닌 것을 인식하는 경우에만 발생합니다. 이러한 실질적인 영향을 고려할 때, 나는 주로 "사람들이 어떻게 그것을
부르는가에

답변:


28

Microsoft XNA는 컴퓨터 게임 개발 및 관리를 용이하게하는 Microsoft가 제공하는 관리 런타임 환경을 갖춘 도구 세트입니다 . XNA는 게임 개발자가 "반복적 인 상용구 코드"를 작성하지 못하도록 하고 게임 제작의 다양한 측면을 단일 시스템으로 가져 오려고합니다.

XNA는 프레임 워크로 설계되었습니다. 실제로 XNA는 Microsoft XNA Framework이므로 기술적으로 이름이 엔진이 아닙니다.

'엔진'은 없습니다. 알아 차리면 XNA.Framework.Game에서 메인 클래스를 파생시키고 그리기 및 업데이트 기능을 직접 재정의해야합니다. 즉시 사용 가능한 중앙 렌더링 시스템, 입력 시스템 또는 오디오 시스템이 없습니다. SpriteBatch와 정점 클래스가 있고 KeyboardState가 있으며 일부 오디오 클래스가 있습니다. 그러나 저수준 그리기 코드에 대한 추상화 일뿐입니다.

편집 : 유용성을 위해 엔진, 프레임 워크, 라이브러리 또는 도구 세트로 레이블이 지정된 경우 왜 중요한가?

다소 정리하기 위해 : XNA에서 엔진을 개발하고 있습니다. 분명히 나는 ​​조나단이 언급했듯이 언리얼과 같은 방식으로는 그렇게 할 수 없습니다. 그러나 XNA에는없는 몇 가지 중요한 사항이 있습니다.

Plug-n-play : 일종의 템플릿을 만들 수 있기를 원합니다.이 HP,이 메시,이 애니메이션 및 BOOM을 사용하십시오! 게임에 NPC가 있습니다.

숨겨진 저수준-XNA는 이미이 작업을 수행하지만 GameServiceProviders를 사용하고 싶지 않습니다. 나는 단지 물건을 함께 밀고 싶다.

엔진과 분리 된 게임- '게임'클래스가있을 수 있지만 기본 시스템에서 논리와 코드를 분리하고 싶습니다. if(player.hasitem(Item.SECRET_SWORD_OF_SECRETNESS)그래픽 렌더러의 버퍼 업데이트와 혼합 하고 싶지 않습니다 .


그리기와 업데이트 설정을 재정의해야하지만 렌더링 엔진이 없다는 것을 의미하지는 않습니다. 포인트가 모든 것을 그릴 준비가되어 있으며 샘플을 보는 것은 추상 그리기 호출뿐만 아니라 그것은 2d GameEngine (3d 물건을 실제로 확인하지 않았습니다) 이상을 가지고 있으며, 입력 컨트롤러가 있다는 것을 기억할 수있는 한, Microsoft가 이름을 지정했거나 논리적 인 이유가 있기 때문에 프레임 워크입니다. ?
Ali1S232

1
@Gajet : 언리얼 엔진이나 크라이 엔진이 아닌 XNA에서 엔진을 생성하는 방법 에 대한 토론이 잠시 있습니다 . 게임 엔진의 일반적인 특징은 비트를 연결하면 무언가 가 나올 것입니다 ( TV Tropes는 엔진이 이와 관련하여 상당히 데이터 중심적 일 수 있다고 주장합니다 ). 반면에 XNA는 기본적으로 모든 작업을 직접 수행 할 수있게 해줍니다. 장치와 인터페이스하기 위해 미들웨어를 만들 필요는 없습니다.
doppelgreener

1
또한 나는 아직 게임 엔진에 대한 명확한 정의를 찾지 못했다고 생각하지만, 내가 아는 것은 게임 엔진 이 있으며 XNA는 단순히 미들웨어를 제외하고는 어떤 일도하지 않는다는 것입니다. 매우 간단한 저수준 구성 요소).
doppelgreener

@Jonathan Hobbs : 이제 당신이 말하는 것을 볼 수 있지만 GameBryo (NetImmerse)를 시도했지만 게임 엔진으로 간주되었지만 광속까지 XNA 자체보다 기능이 적을 때까지는 단지 중간 정도였습니다. 질문 제목을 다음으로 변경할 수 있습니다what makes an sdk to be called a GameEngine?
Ali1S232

1
하지만 실제로 원한다면, 기존 엔진을 프레임 워크로 사용하여 엔진을 개발할 있습니다. 많은 사람들이 지진 3 기술을 사용하여 더 유용한 엔진을 만들었습니다. 그런 다음 다시 원한다면 "엔진"없이 게임을 만들 수도 있습니다. xna를 프레임 워크라고 부르는 것이 더 정확하지만, "프레임 워크"만큼 강력하게 정의되어 있지 않기 때문에 "엔진"과의 구별에 대해서는 모르겠습니다.
Tetrad

5

프레임 워크는 특정 유형의 응용 프로그램을 위해 구축 된 최소 아키텍처를 제공합니다. 명시된 아키텍처 목표를 넘어 구현 세부 사항에 대한 가정을 최소화합니다. 크로스 플랫폼 게임 개발 프레임 워크는 "플랫폼에 관계없이 모든 컴퓨터 게임에 공통적 인 것"을 제공하는 목표를 가질 수 있지만 타이밍 및 엔티티 관리와 같은 추상적 요소만을 XNA 프레임 워크 (암시 적으로) 구현할 수 있습니다. "XNA CLR에서 실행되도록 작성된 거의 모든 컴퓨터 게임에 공통적 인 것"을 제공한다는 목표를 가지고 있습니다. 이 초점이 너무 좁다는 것을 감안할 때 엔진 기능에 불명예를 포함시킬 수있었습니다. "프레임 워크"라는 제목 아래에 모두 번들로 묶습니다. 이는 게임 개발자가 즐길 수있는 특정 구현의 자유를 나타냅니다.

대략적으로 말하면, 프레임 워크는 유용한 토대를 제공하면서 가능한 한 제한이 없어야합니다. 반면에 엔진은 일반적으로 특정 기능에보다 중점을두고 있으며 엔진을 사용함에있어 특정 제한이 있음을 인정합니다.


2

나는 '게임 엔진'을 사용한 적이 없지만 이것에 대한 이해는 특정 유형의 게임 개발을 위해 사전 정의 된 골격 게임 구조와 번들로 제공되는 사전 정의 된 도구 세트에 가깝습니다. 그리고 특정 유형의 게임 개발을위한 구조는 게임 엔진의 주요 정의 요소이며, 분명히 언급 된 Wikipedia 기사가 좋아하는 것 같습니다. 나에게 XNA 프레임 워크는 기존 베어 본 프로그래밍 언어에 사전 빌드 된 루틴을 추가한다는 점에서 AJAX와 같은 타사 라이브러리 세트와 더 유사합니다. 프로그래머가 이러한 라이브러리 루틴으로 수행 할 수있는 작업과 수행 할 수없는 작업에 대한 제한이나 지침은 없습니다. 내 마음에 그것은 어떤 식 으로든 엔진과 유사하지 않습니다. 그런 다음 비즈니스 소프트웨어 / 웹 중심 배경에서 왔습니다.

XNA를 사용하여 게임 아이디어에 대한 프레임 워크를 구축했으며 C #을 통해 다른 라이브러리를 사용하는 것처럼 보입니다. 테스트 프로그램에서 해킹 한 프로세스를 사용하여 Windows 및 가능한 Xbox 용 게임을 2 ~ 3 개 제작합니다.

내가 말했듯이 내 마음에 이것은 이것이 '게임 엔진'으로 이해 한 것과 거리가 멀기 때문에이 게시물을 보았을 때 누군가가 왜 그 비교를 할 것인지 전혀 몰랐습니다. 내가 잘못?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.