대부분의 괜찮은 엔진과 프레임 워크는 필요한 기능을 제공하며 절대 방해하지 않습니다.
그들은 할? 오히려 그것은 그래픽으로 말해서 당신이 무엇을하고 있는지에 달려 있습니다.
많은 종류의 게임에는 그래픽 질문에 대한 표준 답변이 있습니다. 예를 들어, 평균 2D 게임은 XNA / MonoGame과 같은 2D 기술로 잘 처리 될 수 있습니다. 그것은 단지 스프라이트로, 지형을 위해 배치로 나올 수 있고, 회전 할 수 있습니다.
그러나 게임이 어떤 경우 로 사용 평균 2D 게임, 당신은 화면에 깊이 상대의 외관이 사기꾼을 구축하는 높이 맵을 사용하는 등, 멋진 기술에 대해 읽어보십시오. 그리고 당신은 그것을하고 싶습니다.
이제 일반 매핑과 시차 매핑을 사용하고 있습니다. "렌더링 스프라이트"와 같은 맥락에서 많은 순수한 2D 엔진이 필요합니다. 특히, 다중 텍스처 "스프릿 블리 팅"이 필요합니다. 이는 많은 2D 엔진이 할 수있는 일이 아닙니다.
엔진이 적응할 수 없다면 어떻게해야합니까? 즉, 노멀 맵을 통해 색상과 조명에 대해 여러 패스를 수행해야합니다. 그러나 색상 조회에 시차 매핑을 적용하려면 노멀 맵의 높이 필드가 필요하기 때문에 작동하지 않습니다. 그래서 ... 지금 뭐? 투명성을 위해서는 알파가 필요하므로 알파를 훔칠 수 없습니다. 그리고 엔진은 다중 텍스처를 지원하지 않습니다.
따라서 다음 중 하나를 선택해야합니다.
- 아이디어를 포기하십시오. 이것은 게임이 엔진에 의해 기능적으로 제한됨을 의미합니다.
- 다중 텍스처를 갖도록 엔진을 해킹하십시오. 소스 코드에 액세스 할 수 있다고 가정하면 이제 다른 사람의 코드를 찌르기 위해 직접 소스 코드를 사용하고 있습니다. 이것은 또한 당신이 그것을 유지 하고 걸림돌로 그것을 깨뜨리지 않아야 함을 의미합니다 .
- 엔진의 한계 내에서 최선을 다하십시오. 따라서 노멀 맵에서는 시차를 얻을 수 있지만 색상에서는 시차를 얻을 수 없습니다. 정확히 원하는 것이 아닐 수도 있지만 아무것도 아닌 것보다 낫습니다.
예를 들어, Geometry Wars를 보자. 대부분의 2D 엔진은 이러한 종류의 비주얼을 빨아 들일 것입니다. 대부분의 라인은 선이 아닌 스프라이트 그리기 주위에 만들어지기 때문입니다. 매우 특수한 종류의 렌더러가 필요한 게임입니다.
하루가 끝나면 게임 의 요구에 중요한 게임 요소를 책임 져야합니다 . 게임의 시각적 모양이 특정 효과가 아닌 사용하는 이미지 및 모델의 아트 스타일로 주로 개발 된 경우 사전 패키지 솔루션을 사용하는 것이 좋습니다. 그러나 게임의 비주얼 스타일이 커스텀 렌더링 코드에 의해 크게 정의된다면, 상자 밖에서 일을하기로 결정하면 표준 엔진이 심각한 제한이 될 가능성이 높습니다.
또한, 매우 실용적인 문제가 있습니다 : 모든 게임 엔진이 똑같이 이식성이있는 것은 아닙니다.
최근 모바일 플랫폼의 등장으로 게임 시장은 수많은 OS 및 사용자 인터페이스 장치에 퍼져 있습니다. 모든 엔진이 모든 장치에서 작동하는 것은 아닙니다. 엔진이 플랫폼에서 작동하지 않는 경우에, 당신은 확실히 시간이 걸릴하지 않을거야 만드는 것이 하나의 작업을. 결국 , 처음에 엔진을 사용하는 이유입니다 .
특정 플랫폼에서 게임 기능을하는 것이 중요하다면 다시 책임을 져야합니다. 그리고 성공을 보장하는 "가장 쉬운"방법은 직접 수행하는 것입니다. 여러 하위 플랫폼에서 작동 할 수있는 엔진을 구축하기 위해 일부 하위 수준의 세부 사항을 처리해야하는 경우 더 간단한 플랫폼 별 프레임 워크를 사용합니다. 그렇게하면, 그것이 깨지면 그것은 당신의 코드입니다. 당신은 그것을 고칠 수있는 가장 좋은 사람입니다.