게임 로직을 다시 코딩 할 필요없이 어떤 코드 철학 / 추상화 / 프로그램 설계 구조로 게임을 2D 및 3D 그래픽 (별도)과 함께 사용할 수 있습니까?
동일한 코드를 사용하여 최소한의 것을 변경하는 것 (예 : 2D 자산의 파일 이름을 3D 자산의 파일 이름으로 교환)과 제네릭 / 템플릿 당 기본 클래스의 몇 가지 전문화를 꽂을 수 있습니다.
실제 상황에 맞는 실제 상황에서 : 정말 좋은 게이머 리그를 보유한 플레이어를위한 최고의 성능, 배고픈 3D 클라이언트가있는 LAN 멀티 플레이어 게임을 상상해보십시오. 누군가 다락방에서 발견 한 먼지가 많은 상자. 그러나 그것은 여전히 같은 게임입니다-같은 이벤트가 등록되고 (누군가가 동전을 줍습니다), 동일한 네트워크 프로토콜이 사용되며 세계는 비례합니다.
MVC 상황에 놓으려면 : 컨트롤러는 완전히 동일합니다 ( "Up"키를 누르면 플레이어 가속이 3.5 단위 / 초로 설정 됨). 뷰는 완전히 다르며 (2D 대 3D) 모델은 동일합니다 그래픽과 직접 관련된 모든 것을 제외하고 (환경에 대한 충돌 검사는 5 초마다 수행되며 동일한 알고리즘을 사용합니다. 이는 2D 버전의 모든 게임 오브젝트에 대해 Z 좌표가 있음을 의미하지만 예를 들어 플레이어가 공중에있을 때 더 왼쪽에 표시되는 그림자와 같은 다른 방식으로 사용자에게 무시되거나 표시됩니다.
이를 매혹적인 주제로 삼는 것은 개발자가 자신의 데이터가 어떻게 구성되어 있고 제어 흐름이 어떻게 진행되는지에 대한 명확한 아이디어를 가질 수 있어야한다는 것입니다. 이것은 SDL, D3DX 또는 OpenGL과 같은 그래픽 라이브러리 이외의 것을 사용하는 것을 의미하지 않습니다. 게임 엔진이 없습니다!
이것은 대부분 이론적 인 질문이므로 프로그래밍 언어는 사용하지 않겠습니다.하지만 예제를 제공하려면 원하는 언어, C ++을 사용하고 싶거나 Brainfuck이라고 생각하는 경우 사용하십시오. 도전에 이르기까지 (추상적 인 답변뿐만 아니라 추상적 인 답변도 높이 평가됩니다!).