게임 엔진 사용의 장점과 단점은 무엇입니까? [닫은]


28

게임 엔진 사용 여부를 어떻게 알 수 있습니까? Android 용으로 비교적 복잡한 2D 게임을 만들고 싶습니다. 게임 엔진을 찾고 설치하고 배우거나 모든 것을 수동으로 수행할지 여부를 결정하려면 어떤 요소를 고려해야합니까?


게임 디자인이 최고의 태그인지 확실하지 않습니다. 그러나 엔진은 블랙리스트에 올랐습니다. 이 질문은 아마도 삭제되어야합니다.
Gnemlock

답변:


25

장점 :

  • 대부분의 코딩이 완료되지 않은 경우 대부분은 콘텐츠, 레벨 레이아웃 등 만 걱정하면됩니다.

  • 이러한 라인과 함께 메모리 관리, 자산 로딩, 조명 (복잡한 엔진) 등이 모두 철저하게 (희망적으로) 설계되고 테스트되었습니다.

  • 아래에서 언급했듯이 엔진이 크로스 플랫폼 인 경우 게임을 포팅하는 작업이 거의 또는 전혀 필요하지 않습니다.

단점 :

  • 무엇이든 수정하고 있다면 이제 새로운 코드베이스에 익숙해 져야합니다.
  • 엔진에 버그가있는 경우 오픈 소스가 아니면 수정할 수 없습니다.
  • 엔진은 게임용으로 특별히 설계되지 않았으므로 게임용으로 특별히 작성한 코드보다 효율이 떨어질 수 있습니다.
  • 게임 엔진은 일반적으로 무료가 아닙니다.
  • 게임이 작 으면 엔진을 사용하는 오버 헤드가 코드를 직접 작성하는 데 투자 할 가치가 없을 수 있습니다.
  • 게임 엔진에 편집자 나 도구가있는 경우 아티스트에게 넘기거나 직접 의지하기 전에 이들을 빌드하고 테스트해야합니다.

단점 목록이 더 길다는 사실을 잊지 마십시오. 필요한 모든 시스템을 코딩하고 테스트하는 데 시간이 너무 길어 생산주기에 비해 너무 길거나 코드보다 예술에 더 많은 기술이 있다면 게임 엔진을 사용하는 것이 확실히 좋은 생각입니다.

게임 엔진의 비교는이 질문의 작품에 있습니다 : 다양한 3D 게임 엔진의 장단점


3
이것은 전반적으로 꽤 좋은 대답이지만 첫 문장에서 눈썹을 row습니다. "모든 코딩이 완료되지 않은 경우"또는 "대부분의 저수준 코딩이 완료된 경우"로 바꾸는 것이 좋습니다. "게임을 코딩 할 필요가 없다"라는 신화를 영속하는 것은 무책임한 점으로 오도하고있다.
jhocking 2012 년

또한 엔진은 쉽게 할 수있는 일을 제한 할 수 있습니다. 예를 들어, 많은 사람들이 Minecraft 또는 Dwarf-Fortress 스타일의 수정 가능한 지형을 지원하지 않습니다. 필요하지 않은 게임에는 좋지만 Minecraft 복제본을 사용하여 행운을 빕니다.
user253751

15

제 경우에는 게임 엔진으로 인해 아무것도하지 않는 데 많은 시간 (수개월)이 걸렸습니다. 나는 그들이 현명하고 적당히 사용되어야한다는 것을 이해하지만, 이제는 전염병처럼 그들을 피합니다.

나를 위해, 나는 모든 가능성에 집착하게 될 것입니다 ! 엔진 X의 긴 기능 목록을 보면 "와우,이 모든 것을 할 수 있습니다! 내 게임은 훌륭 할 것입니다!" 그래서 나는 그것을 다운로드하고, 데모를 실행하고, 실제로 작동하는 기능에 현혹됩니다. 그런 다음 IDE에서 새 프로젝트를 만들고 어디에서 시작할지 알 수 없었습니다. 몇 가지 코드를 작성하고 데모 프로젝트에서 배우고 기반으로 할 수는 있지만 데모 일뿐입니다.

나는 아무것도 시작하지 않고 무언가를 만드는 법을 몰랐습니다. 나는 첫 단계를 몰랐다. 나는 엔진의 아이디어를 좋아했고, 나에게 깊은 인상을 주었고 무언가를 만들도록 동기를 부여 받았지만 실제 개발에 대한 지식은 너무 제한되어 엔진을 빌드 경로에 추가하는 방법을 알고 심지어 시작하기 위해 몇 줄을 쓸 수도 있습니다. 엔진을 껐다가 다시 껐습니다. 그 이상의 가치는 없었습니다.

나는 아기 단계의 사람입니다. 차라리 한 번에 한 단계 씩 내 자신의 게임을 만들고 유용한 기능을 리팩토링하고 그 기능을 라이브러리에 수집하여 언젠가는 "엔진"이라고 생각할 수 있습니다. 그래서 지금은 엔진 과대 광고를 피하고 저수준 물건을 고수합니다.

그리고 엔진은 그 자리를 가지고 있습니다. 당신이 엔진을 찾고 자신에게 생각한다면, "이것은 내가 쓸 것입니다! 그들은 이미 저를 위해 일을 했으므로 바퀴를 재발 명 할 필요가 없으며, 그것을 게임에 연결하는 방법을 정확히 알고 있습니다 내가 이미 시작했거나 (적어도 완전히 계획되어 있고 시작할 준비가 되었음) "그러면 아마도 적합 할 것입니다. 사용법과 정확한 코드를 작성하여 엔진을 사용하여 유용한 것을 만드는 방법을 정확히 알게 될 것입니다. 그러나 엔진을 얻으면 부엌 싱크대 이외의 모든 것이 있으며 거인의 어깨에 서 있다고 생각하면 실수입니다. 당신은 당신 앞에 거대한 서 있고, 당신은 그것의 어깨까지 올라 가야합니다.

따라서 내게 큰 단점은 할 수있는 모든 일에 얽매이지 마십시오. 어떤 엔진을 선택하든 엄청난 잠재력이 있습니다. 그러나 실제로 잠재력을 활용하는 방법을 모르는 경우, 생활이 더 쉬워 지거나 업무를 수행하는 데 도움이되지 않는 이유는 무엇입니까?


4

게임 엔진의 가장 큰 단점은 학습해야한다는 것입니다. 일반적으로 프로그래밍을 처음 사용하는 경우 엔진이 처리하는 모든 작업을 수행하기 위해 코드를 작성하는 법을 배우는 것보다 여전히 빠를 수 있지만 경험이 있다면 앉을 시간이 없습니다. 다운하고 코딩을 시작하지만 익숙하지 않은 엔진에 대해 배우는 데 상당한 시간이 소요됩니다.

찾을 수있는 가장 큰 것은 지원입니다. 게임 엔진이 완벽하지 않고 마음을 읽지 못하기 때문에 어느 시점에서 SOMETHING에 갇힐 것입니다. 그래서:

  • 문서가 있습니까?
  • 문서가 실제로 좋은가요?
  • 기술 지원이 있습니까 (일반적으로 비용을 지불하지 않는 한)? 처리 시간은 무엇입니까?
  • 질문을 게시하고 실제 답변을 얻을 수있는 커뮤니티 포럼이 있습니까?
  • 엔진 사용을 시작하는 방법을 보여주는 자습서가 있습니까? 샘플 소스 코드가 포함되어 있습니까? 속도를 높이는 데 얼마나 유용합니까?

2
문서를 눈에 잘 띄게하기위한 +1 ... 많은 오픈 소스 게임 엔진이 실패하는 곳
LearnCocos2D

3

소프트웨어 개발 경험이 많고 최근에 게임을 처음부터 새로 개발하려는 사람은 여기 2 센트입니다.

지금까지의 대답은 장단점의 긴 목록을 제공했습니다. 게임 엔진을 사용하지 않는 가장 중요한 이유는 무엇입니까? 나는 도전을 순수하게 게임을 작성하고 보상을 학습의 작업에 갔다로서 내가 싶어서, 아니 엔진 단지는 OpenGL과 SDL로 처음부터하기로 결정 배우그 추상화 수준 이상의 모든 것. 어느 단계에서도 그 결정을 후회하지 않았습니다. 내 게임은 기본이지만 부드러운 2D 소행성의 멋진 스크롤 버전입니다. 나는 대단한 우수한 게임들과 경쟁하려고하지는 않지만 게임을 배포하고 사람들은 게임을 즐겼습니다. 게임 멀티 플레이어를 만들 때도 같은 접근법을 사용합니다. 이것은 큰 도전이며 라이브러리를 사용하면 더 쉬울 수 있지만 목표는 쉽지 않습니다. 저의 목표는 배우는 것입니다. 저에게는 시간제 활동이므로 시간이 많지 않고 진행이 느립니다. 그러나 나는이 접근법에 대한 이유가 있습니다. "고등 학습"이라고합니다.

자, 당신 자신의 질문에 대답하십시오. 당신은이 학습이 가져올 수있는 이익을 위해 게임 엔진이 대신하는 일을 배우고 싶습니까? 그렇다면 게임 엔진을 사용하지 마십시오.


2

"복잡한"의 의미를 자세히 설명해야합니다. 좋은 게임 엔진은 다음을 모두 처리합니다.

  • 안정적인 프레임 속도로 렌더링
  • 입력 처리
  • 사용자 인터페이스
  • 소리 / 음악
  • 자원 관리 (이미지, 사운드, 데이터 파일)
  • 게임 저장 /로드
  • 물리학 (2d 또는 3d)

스스로 생각하십시오. 각 코드를 작성하는 방법을 알고 있습니까? 각 엔진을 프로그래밍하는 데 얼마나 걸립니까? 엔진을 만드는 방법을 배우려면 얼마나 걸립니까?


1

가장 큰 장점 : 많은 일들이 당신을 위해 이루어집니다. 휠을 다시 발명하지 않아도됩니다.

또 다른 장점 : 게임 엔진은 크로스 플랫폼 (Unity) 일 수도 있습니다.

단점? 제어? 엔진은 렌더링과 같은 몇 가지 사항을 처리하므로 버그 나 성능 문제가있는 경우 직접 해결할 수 없습니다.

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