라이브러리, 프레임 워크, 엔진 및 SDK를 평가하고 최고를 선택하기위한 짧은 치트 시트
- 라이브러리, 프레임 워크, 엔진 SDK 등은 문제를 해결하거나 문제를 해결하고 특정 요구 사항을 충족하도록 돕기위한 도구입니다.
- 평가는 어느 것이 가장 요구 사항을 충족하는지 파악하는 것을 의미합니다.
따라서 평가를 시작하기 전에 평가에 의해 답변되어야하는 질문이기 때문에 어떤 시나리오에서 어떤 요구 사항을 갖고 있는지 / 필요한지 명확해야합니다.
시나리오는 요구 사항의 출처를 정의합니다 (요구 사항과 요구 사항을 결정하는 사람).
일반적인 시나리오는 다음과 같습니다.
가장 취미적인 프로젝트 시나리오
당신은 당신 자신 또는 일부 친구들과 함께 당신의 (아마도 첫 번째) 게임을 만들고 싶어합니다. 완벽하게 모든 것을 스스로 결정할 수 있으며 기본 기술 요구 사항 및 기술 요구 사항 (모바일 게임, PC 게임, 콘솔 게임, 웹 게임이어야 함)으로 제한됩니다. 원하는 것을 결정할 수 있습니다.
암시 적 요구 사항은 특정 내용 (언어, 특정 프레임 워크 / 엔진)을 배우고 싶을 것입니다.
학생 시나리오
교사로부터 요구 사항이 올 수 있습니다. 이 경우의 일반적인 요구 사항 : 게임에는 물리 요소와 멀티 플레이어 네트워크 지원이 필요합니다. 또는 C ++로 작성해야합니다. 따라서 평가가 쉬워집니다. C ++로 코딩 할 수 있고 이미 네트워크 및 물리 엔진을 포함 할 수있는 게임 엔진을 찾고 있습니다.
더 악한 (실제) 요구 사항 : 모든 것을 처음부터 작성해야하지만 라이브러리 사용은 허용됩니다. 따라서 편집기가 허용되지 않습니다 (예 : Unity3D). 따라서 엔진 / SDK가 아닌 라이브러리를 찾고 있습니다.
인디 게임 시나리오
나중에 게임으로 돈을 벌고 싶습니다. 따라서 게임을 판매하려는 상점에서 어떤 요구 사항이 있는지 확인하는 방법을 판매해야합니다.
Java 게임, HTML5 게임 등을 허용합니까? ...)
특정 라이브러리를 포함해야합니까 (있는 경우 해당 언어로 제공되는 라이브러리)
Google Playstore에서는 게임을 Android 게임으로 작성해야하고 Apple AppStore에서는 게임을 iOS 앱으로 작성해야합니다. 또는 멀티 플랫폼 엔진을 선택해야합니다.
전문 시나리오
요구 사항을 제공하는 상점이있을뿐만 아니라 요구 사항에 대한 상상력이있는 게시자 또는 고객 일 가능성이 높습니다. 이 시나리오에서는 더 많은 고용 된 개발자로 구성된 팀도 있습니다. 기술 세트에 따라 새로운 요구 사항이 발생합니다 (프로그래머는 c ++ 만 작성할 수 있으므로 새로운 것을 배우는 데 많은 시간이 필요없는 순수한 Java / Android 게임 엔진을 사용할 수 없음).
이 시나리오에 대해서는 자세히 설명하지 않습니다. 일단 직원으로 구성된 팀을 구성하고 고객 / 출판사를 찾은 후에는 평가할 대상을 이미 알고 있습니다.
내가 취미 나 인디이고 다른 사람이 없을 때 내 요구 사항이 무엇인지 어떻게 결정합니까?
당신의 목표와 게임에 대해 스스로 질문을하십니까?
내 게임은 무엇이어야합니까? 모바일, PC, 웹 (html / Js), 사용할 컨트롤러 (터치 스크린, 자이로 스코프, 게임 패드)
내 게임의 새로운 기능과 다른 게임에도 어떤 기능이 있습니까? 다른 게임들 (렌더링, 오디오, 입력 처리)이 가지고있는 부분들은 여러분이 찾을 수있는 대부분의 (게임 엔진) 도구에 의해 수행 될 것입니다.
내 프로젝트의 크기는 무엇입니까 : 화난 새나 하늘 림? Angry Birds는 거의 모든 도구에서 수행 할 수 있으며 skyrim은 수년 간의 추가 사용자 정의를 통해 고성능 도구로 제한됩니다 (고성능 지형 엔진은 쉽지 않습니다)
게임을 끝내는 것이 나의 유일한 목표입니까? 예? 완벽하게도 Unity, Unreal과 같은 고급 기능을 사용할 수 있습니다. 편리한 편집기와 대규모 커뮤니티를 통해 자습서를 제공하고 질문에 답변 할 수 있습니다. 메시 로딩, 자체 수학 함수 구현 등과 같은 저수준 작업을 처리해야하는 부담을 덜어줍니다.
무언가를 배우는 것이 나의 목표입니까? 예? 무엇을 배우고 싶습니까?
어떤 언어를 선택해야합니까? 목표가 여전히 게임을 끝내는 것이라면 자신 / 팀이 가장 잘 알고있는 것을 선택하십시오. 특정 언어를 배우려면 해당 언어로 된 도구를 선택하십시오.
도구 X가 내 게임에 충분한 성능을 발휘합니까? 아마, 당신은 알지 못할 것입니다. 대량 생산에서도 최적화 및 연마 단계는 오랜 시간이 걸리며이를 달성하기위한 큰 노력입니다. 성능 문제가 발생했을 때 성능에주의를 기울이십시오. 한계에 도달하지 않으면 도구의 성능을 모릅니다. 도구 개발자 웹 사이트의 모든 내용은 대략적인 추측입니다. 몇 년 동안 도구를 평가 한 후 개발자 웹 사이트에서 아무것도 보이지 않았습니다.
이러한 질문에 대답하면 요구 사항이 나타납니다. 평가에서 도구 목록을 찾고 도구가 제공 할 수 있거나 제공 할 수없는 것 (홈페이지를 읽는 것이 아니라)을 테스트하고 있습니다.
요구 사항은 돌로 자르지 않고 동적입니다. 그들은 개발하는 동안왔다 갔다 할 것입니다. 게임에 물리가 필요한지 여부는 디자인에 달려 있습니다. 설계가 변경되면 요구 사항도 변경 될 수 있습니다.
요구 사항을 충족하고 시작하십시오. 변화하는 요구 사항은 프로젝트 규모와 경험 수준에 관계없이 매일 고통받는 개발자, 행복하고 행복한 개발자입니다.