아마추어의 조언
// 수년간의 학습 과정에서 제로에서 아마추어로
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;
당신이 프로그램을 원하는 경우, 프로그래머로 배우 .
엔진을 사용 하지 말고 바보가되어서는 안되며 매우 유용한 라이브러리를 무시하십시오.
게임 디자이너 가 되려면 WYSIWYG 엔진을 사용하여 해당 게임을 펌핑하십시오!
게임 프로그래머 가 되려면 목발 같은 엔진은 피하십시오.
ME의 경우 더 높은 수준의 게임 엔진을 사용하면 프로그래머가 될 수있는 능력이 무너졌습니다. 저수준의 라이브러리를 사용하기 시작하거나 라이브러리를 전혀 사용하지 않는 순간, 나는 완전히 새로운 초보자에서 참조, 튜토리얼 또는 책과 함께 책을 읽지 않고도 비디오 게임을 만들 수있는 사람에게 빨리 배우기 시작했습니다. 내 컴파일러와 많은 엔지니어링 및 연습.
짧은 레벨의 시간에 저수준 라이브러리에서 얻은 학습량은 높은 레벨의 ENGINES에서 매우 긴 시간에 얻은 것보다 훨씬 컸습니다. **