답변:
장점 :
대부분의 코딩이 완료되지 않은 경우 대부분은 콘텐츠, 레벨 레이아웃 등 만 걱정하면됩니다.
이러한 라인과 함께 메모리 관리, 자산 로딩, 조명 (복잡한 엔진) 등이 모두 철저하게 (희망적으로) 설계되고 테스트되었습니다.
아래에서 언급했듯이 엔진이 크로스 플랫폼 인 경우 게임을 포팅하는 작업이 거의 또는 전혀 필요하지 않습니다.
단점 :
단점 목록이 더 길다는 사실을 잊지 마십시오. 필요한 모든 시스템을 코딩하고 테스트하는 데 시간이 너무 길어 생산주기에 비해 너무 길거나 코드보다 예술에 더 많은 기술이 있다면 게임 엔진을 사용하는 것이 확실히 좋은 생각입니다.
게임 엔진의 비교는이 질문의 작품에 있습니다 : 다양한 3D 게임 엔진의 장단점
제 경우에는 게임 엔진으로 인해 아무것도하지 않는 데 많은 시간 (수개월)이 걸렸습니다. 나는 그들이 현명하고 적당히 사용되어야한다는 것을 이해하지만, 이제는 전염병처럼 그들을 피합니다.
나를 위해, 나는 모든 가능성에 집착하게 될 것입니다 ! 엔진 X의 긴 기능 목록을 보면 "와우,이 모든 것을 할 수 있습니다! 내 게임은 훌륭 할 것입니다!" 그래서 나는 그것을 다운로드하고, 데모를 실행하고, 실제로 작동하는 기능에 현혹됩니다. 그런 다음 IDE에서 새 프로젝트를 만들고 어디에서 시작할지 알 수 없었습니다. 몇 가지 코드를 작성하고 데모 프로젝트에서 배우고 기반으로 할 수는 있지만 데모 일뿐입니다.
나는 아무것도 시작하지 않고 무언가를 만드는 법을 몰랐습니다. 나는 첫 단계를 몰랐다. 나는 엔진의 아이디어를 좋아했고, 나에게 깊은 인상을 주었고 무언가를 만들도록 동기를 부여 받았지만 실제 개발에 대한 지식은 너무 제한되어 엔진을 빌드 경로에 추가하는 방법을 알고 심지어 시작하기 위해 몇 줄을 쓸 수도 있습니다. 엔진을 껐다가 다시 껐습니다. 그 이상의 가치는 없었습니다.
나는 아기 단계의 사람입니다. 차라리 한 번에 한 단계 씩 내 자신의 게임을 만들고 유용한 기능을 리팩토링하고 그 기능을 라이브러리에 수집하여 언젠가는 "엔진"이라고 생각할 수 있습니다. 그래서 지금은 엔진 과대 광고를 피하고 저수준 물건을 고수합니다.
그리고 엔진은 그 자리를 가지고 있습니다. 당신이 엔진을 찾고 자신에게 생각한다면, "이것은 내가 쓸 것입니다! 그들은 이미 저를 위해 일을 했으므로 바퀴를 재발 명 할 필요가 없으며, 그것을 게임에 연결하는 방법을 정확히 알고 있습니다 내가 이미 시작했거나 (적어도 완전히 계획되어 있고 시작할 준비가 되었음) "그러면 아마도 적합 할 것입니다. 사용법과 정확한 코드를 작성하여 엔진을 사용하여 유용한 것을 만드는 방법을 정확히 알게 될 것입니다. 그러나 엔진을 얻으면 부엌 싱크대 이외의 모든 것이 있으며 거인의 어깨에 서 있다고 생각하면 실수입니다. 당신은 당신 앞에 거대한 서 있고, 당신은 그것의 어깨까지 올라 가야합니다.
따라서 내게 큰 단점은 할 수있는 모든 일에 얽매이지 마십시오. 어떤 엔진을 선택하든 엄청난 잠재력이 있습니다. 그러나 실제로 잠재력을 활용하는 방법을 모르는 경우, 생활이 더 쉬워 지거나 업무를 수행하는 데 도움이되지 않는 이유는 무엇입니까?
게임 엔진의 가장 큰 단점은 학습해야한다는 것입니다. 일반적으로 프로그래밍을 처음 사용하는 경우 엔진이 처리하는 모든 작업을 수행하기 위해 코드를 작성하는 법을 배우는 것보다 여전히 빠를 수 있지만 경험이 있다면 앉을 시간이 없습니다. 다운하고 코딩을 시작하지만 익숙하지 않은 엔진에 대해 배우는 데 상당한 시간이 소요됩니다.
찾을 수있는 가장 큰 것은 지원입니다. 게임 엔진이 완벽하지 않고 마음을 읽지 못하기 때문에 어느 시점에서 SOMETHING에 갇힐 것입니다. 그래서:
소프트웨어 개발 경험이 많고 최근에 게임을 처음부터 새로 개발하려는 사람은 여기 2 센트입니다.
지금까지의 대답은 장단점의 긴 목록을 제공했습니다. 게임 엔진을 사용하지 않는 가장 중요한 이유는 무엇입니까? 나는 도전을 순수하게 게임을 작성하고 보상을 학습의 작업에 갔다로서 내가 싶어서, 아니 엔진 단지는 OpenGL과 SDL로 처음부터하기로 결정 배우그 추상화 수준 이상의 모든 것. 어느 단계에서도 그 결정을 후회하지 않았습니다. 내 게임은 기본이지만 부드러운 2D 소행성의 멋진 스크롤 버전입니다. 나는 대단한 우수한 게임들과 경쟁하려고하지는 않지만 게임을 배포하고 사람들은 게임을 즐겼습니다. 게임 멀티 플레이어를 만들 때도 같은 접근법을 사용합니다. 이것은 큰 도전이며 라이브러리를 사용하면 더 쉬울 수 있지만 목표는 쉽지 않습니다. 저의 목표는 배우는 것입니다. 저에게는 시간제 활동이므로 시간이 많지 않고 진행이 느립니다. 그러나 나는이 접근법에 대한 이유가 있습니다. "고등 학습"이라고합니다.
자, 당신 자신의 질문에 대답하십시오. 당신은이 학습이 가져올 수있는 이익을 위해 게임 엔진이 대신하는 일을 배우고 싶습니까? 그렇다면 게임 엔진을 사용하지 마십시오.
"복잡한"의 의미를 자세히 설명해야합니다. 좋은 게임 엔진은 다음을 모두 처리합니다.
스스로 생각하십시오. 각 코드를 작성하는 방법을 알고 있습니까? 각 엔진을 프로그래밍하는 데 얼마나 걸립니까? 엔진을 만드는 방법을 배우려면 얼마나 걸립니까?