Unity3D와 같은 엔진이 초보자를위한 OpenGL과 같은 기본 라이브러리를 강조한 이유는 무엇입니까? [닫은]


25

저는 3D 게임의 초보자 일뿐입니다. 선호하는 플랫폼은 Android입니다. 다른 포럼에서 "사용할 내용 : OpenGL 또는 Unity3d?"에 관한 질문을 게시했습니다. 그들은 모두 Unity3D와 내장 기능 및 도구를 강조했습니다. OpenGL을 사용하려면 직접 코딩해야합니다. 그러나 누군가는 대부분의 복잡한 게임에는 맞춤형 엔진이 필요하다고 말합니다. OpenGL에서 Unity3D와 같은 엔진을 사용하는 이유는 무엇입니까?


15
두 단어 : 즉시 만족. OpenGL 앱을 사용하려면 많은 코드 라인과 광범위한 개념에 대한 이해가 필요하지만 많은 것을 알지 않고도 단일성으로 "유용한"무언가를 얻을 수 있습니다.
Jari Komppa

5
아마도 우리는이 하나의 실에서 그것을 설명 할 수 있고 모든 "어떤 기술을 사용해야합니까"질문은 영원히 사라질 것입니다. 또한 나는 유니콘을 원한다
jhocking

8
"대부분의 복잡한 게임에는 커스텀 엔진이 필요합니다." 실제로 놀랍게도 많은 AAA 게임이 언리얼 엔진 과 같은 주식 엔진을 기반으로 합니다.
Philipp

2
또한 초보자는 어쨌든 맞춤형 엔진이 필요할 정도로 게임을 복잡하게 만들 수 없습니다.
Christian

이것은 단지 Gamasutra에 나타 났으며,이 질문에 대한 직접적인 대답은 아니지만 gamasutra.com/blogs/ChrisDeLeon/20140426/215519/… 와 관련 이 있습니다. OpenGL의 기초는 '최신'첫 번째 프로젝트입니다.
Steven Stadnicki 05:09에

답변:


30

나는 당신이 이미이 질문에 스스로 대답했다고 생각합니다. 당신은 "나는 3D 게임의 초보자 일뿐" 이라고 말했습니다 . 또한 당신은 "... Unity3D와 그것을 사용하는 것은 내장 된 기능과 도구이며, OpenGL을 사용하려면 직접 코딩해야합니다"라고 말했습니다 .

본질적으로 이것은 OpenGL을 단독으로 사용하는 경우 게임 엔진을 작성하고 몇 년 후에 게임을 작성한다는 의미입니다. 게임에 집중하고 싶다면 가능한 리소스를 활용하여 가능한 한 그 목표에 근접하게하십시오. 게임 엔진을 사용하는 것은 게임을 만드는 데 필요한 모든 것을 작성하는 대신 게임을 만드는 데 집중하는 가장 좋은 방법입니다.

이 관련 질문을 참조 : 라이브러리와 엔진 사이의 차이는 무엇입니까 이 하나의 게임 엔진에 비해 게임 프레임 워크입니다 무엇?


OpenGL은 그래픽 전용이며 unity3d는 내 게임에 대한 물리 요구 사항뿐만 아니라 그래픽이있는 완전한 프레임 워크입니까?
Aman Grover

1
화합은 그것보다 훨씬 많지만 그렇습니다.
jhocking

3
@AmanGrover : 또한 GL을 사용하면 "그래픽 전용"이 실제로 "GPU에 명령을 제출하기위한 것"임을 인식하십시오. Unity는 프로그래머가 모든 실제 그래픽 작업을 여전히 수행해야하는 반면 Unity에는 모든 중요한 그래픽 기능과 알고리즘이 포함되어 있으며 바로 사용할 수 있습니다.
Sean Middleditch

2
엔진을 쓰거나 게임을 쓰지 마십시오. 그것이 내가 접근하라는 말입니다. 실제 게임을 만드는 동안 누군가가 게임 엔진을 만드는 것을 의미합니다. 이것이 내가 바이트에 동의하지 않는 지점입니다.
LaVolpe

28

초보자는 정의에 따라 자신이하는 일을 모릅니다 .

OpenGL은 학습 곡선을 가지고 있습니다. 물론, 몇 개의 glBegin 명령을 내릴 수 있고, 화면에 삼각형을 배치하는 것에 흥미를 느끼고, 아직 갈 준비가되어 있지 않은 좀 더 복잡한 무언가로 깊이 빠져 나갈 수 있습니다. 배우기에는 좋은 방법이 아닙니다. 비유 (약간 과장된)가 기본적인 고등 물리학을 배우고 나서 대형 하드론 충돌체를 담당하고있을 수 있습니다. 그것은 싱크대 또는 수영 대가 아니며, 수영 또는 방치 형입니다.

대부분의 사람들은 "게임을 만들고 싶습니다. 무엇을 사용해야합니까?"라고 묻는 것으로 가정합니다. 질문은 실제로 게임을 만들고 싶어합니다 (그렇지 않으면 반드시 다른 질문을 했었을 것입니까?). 따라서 답변은 질문에 맞춰져 있으며 기존 툴킷, 프레임 워크 또는 엔진을 사용하는 것이 그러한 야심을 달성하는 데 도움이되는 한 가지 방법입니다 단일 매트릭스를 업데이트하기 위해 UBO 또는 glUniform 호출이 바람직한 지 여부에 대해 고민하여 산만하지 않습니다.

이것은 한 번에 한 걸음 씩 나아가 학습 과정을 더 쉽게 만들고 끝 부분에 보람있는 일입니다. 게임 제작 방법 성숙하고 강력한 3D API 를 동시에 올바르게 사용하는 방법 을 배우는 것은 초보자에게는 너무 많은 것일 수 있습니다. 이것은 독촉-크루거 효과 에서 음의 의미를 뺀 것과 같습니다 . 당신은 당신이 모르는 것을 모르므로, 당신이 실제로 무엇을하고 있는지에 대한 사실적인 그림을 실제로 가지고 있지 않습니다.

반면에 OpenGL을 배우는 것이 목표라면 실제로 게임을 만들고 싶지는 않습니다! OpenGL을 배우고 싶고 게임을 만드는 맥락에서 그것을하는 것은 재미있는 학습 방법이 될 수 있지만, 게임을 만드는 것은 그 자체가 목적이 아닌 목적을위한 수단입니다 (그리고 OpenGL을 배우는 유일한 방법은 아닙니다) ). 당신은 아마 그것을 공개하지 않을 것입니다, 그리고 당신은 거의 확실히 몇 년 안에 그것을 되돌아보고 당신이 한 어리석은 일들에 의해 끔찍하게 당황하게 될 것입니다.


22

이 프로젝트에서 무엇을 얻고 싶은가에 달려 있습니다. 주요 목표가 게임 디자인에 초점을 맞추는 것이라면 미리 제작 된 엔진을 사용하는 것이 좋습니다. 그 이유는 게임 제작 부분에 훨씬 더 빨리 도달 할 수 있기 때문입니다. 게임 제작의 프로그래밍 부분에 대해 배우는 것이 목표라면 (특히 업계에서 직업을 준비하려는 경우) OpenGL을 사용하는 것이 더 소중한 경험이 될 것입니다. 위의 내용 중 100 %는 사실이 아님을 명심하십시오.

이런 종류의 일을 결정할 때 실제로 규칙이 없습니다. 이런 종류의 질문에서 당신이 듣는 대부분의 의견은 의견이며, 그들 중 자신의 프로젝트 및 기술과 완전히 관련이있는 사람은 거의 없습니다.


고맙습니다. 네, 저는이 분야에서 일자리를 찾고 있습니다. 그래서 OpenGL과 함께 갈 것입니다.
Aman Grover

9
나는 '베어'OpenGL로 작업하는 것이 게임 산업에 침입하는 사람에게 더 가치가 있다고 동의하지 않는다. Unity는 현대적이고 비교적 성숙한 게임 엔진의 훌륭한 예입니다. 그것이 제공하는 기능을 이해하는 것 (유사한 기능을 직접 제공하는 방법을 배우기 위해)은 게임 개발 과정 자체를 이해하는 훌륭한 방법 인 반면 OpenGL은 의미있는 의미에서 게임 특정 적이지는 않습니다.
Steven Stadnicki

이것은 단지 이런 것들에 대한 규칙이없고 의견 만있는 법을 보여줍니다. 그것은 당신이 필요로하고 / 원하는 것에 달려 있습니다.
jhocking

5
@AmanGrover-게임을하지 마십시오! 한 번에 한 가지를 배우는 것이 더 쉬워집니다. 태양계 시뮬레이터를 만듭니다. 기본 프리미티브 그리기, 번역 및 회전 방법 배우기, 행성을 VBO에 더 빨리 그리기 위해 그리기, 일부 셰이더를 사용하여 애니메이션 구름 만들기, 기본 이해하기에 좋은 거리입니다.
Maximus Minimus

3
@KamikazeSoctsman 다시, 여기에 동의하지 않았습니다. 나는 OGL이 쓸모 없다고 말하는 것이 아닙니다. -그러나 지난 10 년 동안 OpenGL 지식을 몇 번만 사용하여 짧은 시간에 맞춰 시작했습니다. 반대로 게임 그래픽 엔진은 성능에 매우 민감한 경향이 있기 때문에 내 경험상 새로운 프로그래머가 시작하는 가장 일반적인 장소 중 하나입니다 . 3D 수학을 반드시 알아야하고 렌더링의 원리를 이해해야합니다. 그러나 이것은 OGL을 배우는 것과는 크게 다릅니다.
Steven Stadnicki

6

차이점은 간단합니다. Unity는 4 개의 둥근 바퀴가 달린 캐리지로 장소를 제공합니다. OpenGL은 상점을 설립하고 개선되고보다 현대적인 캐리지와 휠을 성형 할 수있는 톱밥입니다. 그것은 사람들이 먼저했던 일을 배우기 위해 많은 시간을 투자하는 경우입니다.

초보자로서의 목표는 기존 캐리지와 그 디자인을 먼저 연구하는 것입니다. 창 밖으로 모든 것을 버리고 처음부터 시작하는 것은 중요하지 않습니다. 먼저 이미 존재 하는 것을 배우고 철저한 지식을 얻으십시오. 그렇지 않은 경우 제한 사항을 어떻게 알 수 있으며 제한을 모르는 경우 어떻게 제한을 극복 할 수 있습니까? 쓸모없고 이미 사용 가능한 모든 활기찬 기존 도구에 무해한 평범한 것을 만드는 요점은 무엇입니까?

신생 게임 개발자의 단계는 다음과 같습니다.

  1. 현대적인 프레임 워크 / 엔진을 익히고 그것에 대한 깊은 이해를 얻으십시오 (게임 디자인, 그래픽 및 OpenGL의 다양한 측면을 모두 배우는 데 도움이 될 것입니다).
  2. 그것으로 작은 게임을 만들고 그 과정에서 더 많은 것을 배우십시오.
  3. 엔진에는 유기적으로 장애물과 한계가 있습니다.
  4. 주제에 대해 자세히 알아보십시오.
  5. 개선이 필요한 영역을 개선하기 위해 노력하십시오.

이미 만들어진 것을 만들기 위해 혼자서 일하는 것은 당신이 진실로 생산적이지 못하거나 그 문제에 대한 좋은 학습자가 아니기 때문에 누군가에게 소중한 개발자가 될 수는 없습니다. 읽고 이해하십시오. 오래된 포켓몬이 말한 것처럼 "매우 효과적이지 않다 ...".

최악의 부분은 이런 종류의 접근 방식은 만족스럽지 않기 때문에 다루기가 쉽지 않다는 것입니다. 당신은 매일 만족을주는 무언가를해야합니다. 그렇지 않으면 당신의 의지는 그것을 유지할 수 없을 것입니다.

요약하자면, 엔진으로 작업을 수행 할 수 있고 그런 식으로 성공할 가능성이 훨씬 높기 때문에 엔진이 강조됩니다. 훌륭한 게임 제작자조차도 다른 사람의 이전 작업에 의존했으며 그와 같은 것은 진보의 본질입니다. 자신 만의 맞춤형 레고 조각을 만들기 전에 큰 그림을 이해하고 다른 사람이 제공 한 레고 조각을 가지고 노는 방법을 알아야합니다.


4

당신의 목표를 가정하면 게임을 만드는 것입니다,하고 사용자 정의 엔진에 대해 이야기 남자 요구는 잘못됐다. 복잡한 게임을 위해서는 오랜 기간 동안 또는 그 품질에 맞는 (적어도 주어진 게임의 목적을 위해) 업계에 종사 한 전문가가 설계, 구현, 최적화, 테스트를 거쳐 유지 관리되는 성숙한 엔진이 필요합니다. 가능하다면.

대규모 게임 개발자는 사내 엔진을 구축하지만 향후 게임에 여전히 많이 재사용합니다. 그러나 예산과 팀 규모 및 기타 많은 요소가 독립 개발자와는 크게 다르다는 점을 명심하십시오. 기존 엔진이 기술적으로 부족하지 않더라도 자체 엔진을 구축하는 것이 훨씬 더 비즈니스 적 의미가있을 수 있습니다.

물론 기존 엔진에는 많은 기능이 기본적으로 존재하지 않으므로 해당 엔진에서 전혀 구현할 수 없지만 일반적으로 부정확하기 때문에 오해가 여전히 있습니다.

Portal 및 Antichamber와 같은 가장 혁신적인 최신 게임 중 일부는 기존 엔진을 사용하여 제작되었습니다. Aion 및 TERA와 같은 다소 복잡한 온라인 게임은 기존 엔진을 사용하여 제작되었습니다. Bioshock Infinite 및 Thief와 같이 시각적으로 아름다운 게임 중 일부는 기존 엔진을 사용하여 제작되었습니다. 물론 일부는 그렇지 않았습니다. 그러나 요점은 : 내가 본 것 중 실제로 는 맞춤형 엔진 이 필요 하지 않은 것입니다 .

반면에 그래픽 프로그래밍의 개념을 배우는 것이 목표라면 OpenGL을 사용하는 것이 좋습니다. 그럼에도 불구하고 기존 엔진 몇 가지에 익숙해지면 자신이하는 일과 목표를 이해하는 데 큰 도움이됩니다.


1
-1. 게임 산업에 대한 꽤 큰 주장. 대부분 부정확합니다. 나는 다스에 대한 귀하의 게시물을 뿌린다 수 있으면 좋겠다 citation needed
팬더 파자마

1
@ 판다 파자마 내 대답에는 게임 산업에 대한 단 하나의 주장이 있습니다. 그것이 당신을 많이 귀찮게한다면, 그것을 수정하거나 완전히 제거하는 것을 환영합니다.
TC

저의 (제한된) 경험에 따르면 일반화 할 수없는 것이 게임 산업이라는 것이 밝혀졌습니다. 각 회사마다 사물을 보는 방식이 다르며 회사 내부의 팀마다 모든 것에 대한 정책이 크게 다를 수 있습니다. 이 특별한 경우에 사내 엔진은 비용을 발생시키고 몇 가지 장점과 단점을 가져옵니다. 순 결과가 저축인지 비용인지는 계산하기가 매우 어려우며 프로젝트마다 다릅니다. 또한 예산을 책정 할 때 중요하지만 중요한 요소는 아닙니다.
Panda Pajama

@PandaPajama Granted, 내 편집을 참조하십시오. 나는 예산 요소와 결정을 내리는 데 도움이되는 모든 것을 포함하여 일반적으로 그들에게 더 사업 적으로 의미가 있다고 말했다. 기존 엔진의 기술적 한계가 아닐 수도 있다고 지적했다.
TC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.