엔진을 사용하여 게임 개발을 시작하는 것이 영리합니까? [닫은]


14

나중에 XNA로 게임을 개발하기 위해 C # 프로그래밍을 시작했습니다. C #을위한 좋은 게임 개발 책을 읽었습니다. 이미 다른 언어를 알고 있었기 때문에 C # 기능과 구문 코드를 빠르게 배울 수있었습니다. 그런 다음 XNA로 넘어갔습니다. 내가 읽은 책이 조금 오래되었으므로 따로 보관하고 인터넷을 통해 XNA에 대한 게임 개발 자습서를 살펴보기 시작했습니다. 2D 그래픽을 사용하여 대부분을 달성하고 이해할 수있었습니다. 애니메이션 스프라이트를 만들고 캐릭터를 어느 방향 으로든 움직이고 캐릭터 움직임과 함께 배경을 스크롤했습니다. "raw"XNA로 모든 것이 이루어졌습니다.

나는 그러한 것들 중 일부를 이해하기 어렵다는 것을 알았고, 어떤 것들이 이미 프레임 워크에 내장되어 있음을 발견했습니다. 다른 게임 엔진을 찾았는데, " FlatRedBall " , " Axiom "" Quick Start Engine " 과 같은 간단한 라인 코드를 명확하게 이해할 수 있습니다. 나는 "OGRE" , "Unreal""Unity" 와 같은 유명한 것들을 이미 알고있었습니다 . 동시에 나는 모든 것을 버리고 유명한 게임 엔진 프로그래밍을 배우기 시작했다. 배우는 데 시간이 걸렸기 때문에 XNA를 유지하고 싶었습니다. 시간 낭비하고 싶지 않습니다.

이번에는 경험 많은 사람들에게 맡깁니다. 게임 개발을 시작하더라도 게임 엔진을 통해 제공되는 것을 사용할 수 있습니까? 어떤 사람들은 벌거 벗은 틀의 지루한 일상에 익숙해지는 것이 좋다고 생각할 수 있습니다. 그렇다면 처음에 권장되는 것은 무엇입니까? 시장마다 다릅니다. 우리는 아마도 RPG 특정을 원한다고 생각할 수 있습니다.


1
나는 내 마음에 같은 것을 가지고 있었다. 나는 4 년 동안 XNA를 사용해왔다. 나는 MMORPG를 만들기 시작했다. 어디로 가는지, 어디로 가야하는지보세요. 항상 그렇듯이 작게 시작하고 더 큰 계획이 없다면 원하는 것을 사용하고 너무 많은 시간이 지나기 전에 무언가를 끝내십시오.
Michael Coleman

@Omnion, MMORPG를 만들기 위해 4 년 동안 XNA를 사용하는 것은 사용하는 것이 아니라 결정, 헌신, 자유 시간 및 실제 적용의 문제입니다. 시간이 지남에 따라 동기 부여와 헌신을 유지하는 한 누구나 XNA를 사용하여 MMORPG를 완료 할 수 있습니다. 시간은 자유 시간과 작업 속도에 따라 달라 지지만 프로젝트의 규모 나 범위에 관계없이 크게 시작하더라도 실용적 일 수 있습니다. 핵심은 엔지니어링 프로세스를 구성하는 것입니다. 시간이 지남에 따라 한 번에 한 단계 씩 베이비 스텝은 규모에 상관없이 프로젝트를 완성합니다.

1
나는 단지 사람들이 자신의 프로젝트가 너무 크다고 믿지 말고 실용성의 현실을 이해하도록 격려하기 위해 이것을 언급합니다. 프로젝트를 마치는 데 꿈보다 더 많은 것이 필요하다는 것을 이해한다면, 그들은 "어디서도"가 아닙니다. 저는 항상 사람들이 꿈을 실현하고 타협하지 않도록 격려하고 싶습니다. 크기에 관계없이 달성 할 수 있도록 실용화하십시오. 시간이 지나면 무엇이든 가능합니다.

답변:


11

배우고 싶은 내용에 따라 다릅니다. "게임을 만들려면"엔진을 사용하는 것이 좋습니다. 나는 개인적으로 이것을 권장하지 않습니다.

컴퓨터 그래픽의 작동 방식을 실제로 이해하려면 더 깊이 들어가서 모든 내용을 배워야합니다. 선형 대수 (최소한 행렬, 벡터 및 선형 공간) 새로 고침에서 그래픽 파이프 라인 작동 방식 이해에 이르기까지. XNA는 시작하기에 가장 좋은 프레임 워크입니다. 내 첫 게임이 그 안에 있었다 (실제 게임, 첫 3D 앱은 openGL의 배틀 탱크였다). 3D 프로그래밍을 시작하려면 야심 찬 계획이 없다면 지금 RPG를 수행 할 수 없습니다. 큐브로 가득 찬 공간에서 날아가고 빨간색을 쏴서 기본을 배우는 곳에서 게임을 만들어야합니다. 생각보다 시간이 더 걸릴 것입니다 :). 그러나 그것은 당신에게 많은 것을 가르쳐 줄 것입니다.

그리고 그것을 위해 가십시오! 3D 그래픽 프로그래밍은 생활을 위해 할 수있는 가장 좋은 일입니다. 하나의 패키지로 어렵고 재미 있고 독창적입니다.


3
XNA 대신 MonoGame을 확인하는 것이 좋습니다. Microsoft는 XNA 개발을 중단했으며 Windows 8 Metro UI 지원이 부족합니다. Reddit에서 읽은 일부 게시물에 따르면 그들의 대표자는 실제로 MonoGame을 추천하고 있습니다. 결과적으로 크로스 플랫폼 (Linux, OSX, Android, iOS)을 얻을 수 있습니다.
David C. Bishop

17

기존 엔진을 사용하는 데 아무런 문제가 없으며 모두 목표에 달려 있습니다.

일부 게임이나 게임 디자인을 만드는 데 가장 관심이있는 경우 게임 플레이 코드를 더 빨리 얻을수록 좋습니다. C # 지식을 사용하고 스크립트를 객체에 첨부하고 즉시 실행되는 것을 가질 수 있기 때문에 Unity와 같은 것이 좋습니다.

게임 프로그래머가 되려면 더 낮은 수준에서 이해해야합니다. XNA와 같은 프레임 워크는 좋은 출발점입니다. 게임의 각 구성 요소를 구축하는 방법을 배우면서 프레임 워크를 사용하여 작업을 시작한 다음 프레임 워크의 일부를 고유 코드로 바꿀 수 있습니다.


1
나는 너의 것이 내 것보다 더 많은 것을 좋아한다. 당신을 위해 +1.
Notabene

6
게임 프로그래머가되고 싶다고 말하고 엔진을 시작한 다음, 자신이 찾은 다른 리소스와 대조하기 위해 자신이 좋은 예제로 사용했다고 가정 할 때 특히 유용합니다. 엔진 아키텍처.
michael.bartnett

그러나 엔진을 사용하는 경우에도 컴퓨터 그래픽 기본 사항은 여전히 ​​확실해야합니다.
Notabene

1

아마추어의 조언

// 수년간의 학습 과정에서 제로에서 아마추어로


Unity 나 Torque2D MIT와 같은 고급 엔진에서 멀리 떨어져있을 것입니다. 그것들은 작은 프로토 타입에는 훌륭하지만 내 비디오 게임을 개발하기 위해 진지하게 받아들이지 않을 것입니다. 내가 왜? 단순한 SideScroller 또는 아케이드 리메이크에 불과하지 않은 한 요점은 무엇입니까?

대부분의 게임 엔진, 라이브러리 또는 프레임 워크는 절대 사용할 수없는 기능과 기능을 가진 팽팽한 코드로 가장 간단한 작업을 수행합니다.


몇 년 전에 게임 개발을 처음 시작했을 때, 나는 정상에서 시작했습니다. 매우 높은 수준의 엔진. RPG MAKER와 같이 너무 높지는 않지만 Unity와 Torque와 같이 분명히 높습니다. 그런 다음 리소스와 자습서가 너무 많기 때문에 XNA와 C #으로 내려갔습니다. 저의 주요 프로젝트는 성능이 필요했습니다. 또는 대규모 프로젝트가 아니더라도 소프트웨어에서 놀라운 성능을 원한다는 것에 강박 적입니다. XNA는 단순히 그것을 자르지 않았으며 읽은 엔진에 많은 문제가있어서 고치려면 두통이 필요했습니다. C ++에서 자체 엔진을 롤링 할 때와 동일한 작업 (XNA 버그 및 문제 수정)을 수행 할 때 XNA / C #과 같은 "상위 레벨"을 사용하는 요점은 무엇입니까?

꽤 많은 학습을 한 후에 게임 엔진이 어떻게 설계되고 엔진 코드 자체를 조사하기 시작했는지에 대해 배웠습니다. 대부분의 전문가들이 말한 내용과 게임 엔진 비평가의 불만이 '엔진을 사용하는 이유는 무엇입니까?'

내 C ++을 닦고 그 언어에 사용 된 철학에 실제로 들어가는 것이 많은 도움이되었습니다. 그러나 나는 너무 많은 시간을 배우면서 게임을 시작하고 싶었습니다.

그래서 나는 많은 찬사를 받았으며 C ++이며 매우 낮은 수준이었습니다 : SDL. 불행히도 이것은 두통이었습니다. 너무 낮기 때문에이 라이브러리를 사용하는 이유가 없습니다. 차라리 OpenGL을 배우고 처음부터 스스로 배우고 싶습니다. 솔직히 이미지를 뒤집는 것 같은 기본적인 작업을 수행하기 위해 나 자신의 코드를 구현해야한다는 사실이 대부분이었습니다. 소프트웨어 렌더러를 원한다면 좋지만 IMO 하드웨어 (OpenGL) 이상 (SFML)으로 낮추려고합니다.

아마존에서 다른 책을 사고 또 다른 API를 배우고 싶지 않아서 더 높아졌습니다. SFML은 인터넷 전체에서 높은 평가를 받고있는 것은 말할 것도없이 훌륭합니다. 나는 거의 부정적인 말없이 긍정적 인 리뷰를 끝없이 읽었습니다. SDL에 대해서도 같은 말을 할 수 없습니다. 그것은 모든 극단적 인 기본 사항을 처리하지만 나머지는 나와 선택한 다른 라이브러리에 맡깁니다. 나는 그 이후로 계속 붙어 있습니다.


게임 엔진 인 IMO는 바보입니다. 저수준 라이브러리는 전문가와 초보자 프로그래머 모두에게 더 나은 선택입니다.

또한 프로그래밍 개념에 대해 더 많이 배웠고, 고급 WYSIWYG 게임 엔진에서 배운 것보다 더 낮은 수준에서 물건을 처리해야 할 때 소프트웨어 개발 기술을 향상 시켰습니다.

Unity와 같은 것이 XNA를 통해 무엇을 제공합니까? 시각적 편집 및 목발. 초보자는 결국 C ++을 사용하는 경우와 마찬가지로 게임 전체를 거의 코딩해야하며 비주얼 편집기는 자신이 만들 수있는 작업에 비효율적입니다.

XNA와 같은 것은 SFML 또는 OpenGL 및 기타 유용한 라이브러리의 자체 구현을 통해 무엇을 제공합니까? IMO, 절대적으로 아무 것도 아닙니다. C ++ 대신 C #, 초보 튜토리얼이 많지만 전문성이 크게 떨어지고 IMO가 C ++로 배워야 할 내용에 대한 목발이되는 두통을 피할 수 있습니다. 나는 처음에 C ++에 겁을 먹었고 C #을 좋아했습니다. 주로 C ++에서 겪었던 것과 같은 문제가있는 바보의 의견에 대한 소문과 소문 때문에 대부분 좋은 프로그래머를 원했습니다. 나는 C ++의 문제점을 극복하기 위해 더 많은 기초를 배우고 약점을 연마해야한다는 것을 깨달았습니다. C #의 일부 단순성을 놓친 적이 있습니까? 조차! 번거 로움없이 C ++ 로하는 방법을 알고 있습니다.


저수준의 라이브러리 나 DirectX / OpenGL을 배우는 것이 당신을 위협한다면, 풀 비디오 게임을 만드는 복잡한 과정에 들어갈 때까지 기다리십시오.

게임 엔진에 대한 나의 철학은 고립 된 상황을 제외하고 엔진의 중복성과 무용성을 설명하는 두 가지 예에서 요약 될 수 있습니다.

저수준 라이브러리에 겁 먹은 초보자는 Unity와 같은 고급 엔진 (그래픽 렌더링, 오디오 재생, 콘텐츠로드, 실제 기본 항목 제외)을 사용하더라도 게임 제작과 거의 동일하다는 사실을 알게되면 발작을 당하게됩니다 기스로부터. API를 이해하지 못하거나 디스플레이로 렌더링 할 클래스를 개발하지 않고 게임을 엔지니어링하는 것이 복잡합니다.

Unity와 같은 방식으로 전체 게임을 만드는 복잡성에 겁 먹지 않는 전문가들은 Unity를 사용할 필요가 없습니다. 특정 엔진의 API와 요구 사항을 자신있게 배우는 데 시간이 걸리기 때문일 것입니다. 기본을 수행하는 데 필요한 몇 가지 클래스를 코딩하는 데 걸리는 시간보다 더 많은 시간이 걸립니다.

따라서 초보자는 엔지니어링 기술이 부족하기 때문에 엔진으로 아무것도 만들 수 없기 때문에 엔진은 초보자에게 쓸모가 없습니다. 마찬가지로 엔진은 재향 군인에게 쓸모가 없습니다. 이미 엔진없이 엔진을 수행 할 수있는 엔지니어링 기술을 보유하고 있으며 게임 엔진의 API를 배우는 데 어려움을 겪는 것보다 더 효율적이고 구체적인 '엔진'을 굴릴 수 있기 때문입니다. 기능 및 성능 문제. 오픈 소스가 아니기 때문에 때로는 만질 수없는 엔진으로 작업하는 엄청난 악몽을 언급하지 않아도됩니다 (또는 심지어는 다른 사람의 코드를 읽는 것은 때때로 악몽 일 수 있음).

심지어 "낮은 수준"의 "게임 프레임 워크"조차도 창을 만들고 디스플레이로 렌더링하며 오디오를 재생하는 몇 가지 클래스에 지나지 않습니다. 이것은 전문가가 SDL / SFML과 같은 다른 라이브러리 나 자체 OpenGL / DirectX / OpenAL 구현을 사용하여 실제로 전체 비디오 게임을 완료하는 데 걸리는 시간의 일부로 전문가가 처음부터 스스로 할 수있는 일입니다.


TLDR;

  1. 당신이 프로그램을 원하는 경우, 프로그래머로 배우 .

  2. 엔진을 사용 하지 말고 바보가되어서는 안되며 매우 유용한 라이브러리를 무시하십시오.

  3. 게임 디자이너 가 되려면 WYSIWYG 엔진을 사용하여 해당 게임을 펌핑하십시오!

  4. 게임 프로그래머 가 되려면 목발 같은 엔진은 피하십시오.

  5. ME의 경우 더 높은 수준의 게임 엔진을 사용하면 프로그래머가 될 수있는 능력이 무너졌습니다. 저수준의 라이브러리를 사용하기 시작하거나 라이브러리를 전혀 사용하지 않는 순간, 나는 완전히 새로운 초보자에서 참조, 튜토리얼 또는 책과 함께 책을 읽지 않고도 비디오 게임을 만들 수있는 사람에게 빨리 배우기 시작했습니다. 내 컴파일러와 많은 엔지니어링 및 연습.

짧은 레벨의 시간에 저수준 라이브러리에서 얻은 학습량은 높은 레벨의 ENGINES에서 매우 긴 시간에 얻은 것보다 훨씬 컸습니다. **


2
면책 조항 : 이것은 단지 내 이야기이며 학습 스타일입니다. 다른 사람들은 다를 수 있습니다. Game DESIGNER (엔진에 의존) 대신 Game PROGRAMMER (낮은 수준의 물건)가 되려고했을 때 학습 과정에는 차이가있었습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.