나는 많은 양의 게임 소스를 보지 않았고 게임 방식으로 많이 만들지 않았다고 말함으로써 이것을 서두를 것입니다.
그러나 웹 응용 프로그램에서 '엔터프라이즈'코딩 방법을 사용하려고 시도 할 때 게임 소스 코드를 보면 "이 논리가 비즈니스 논리와 관련하여 무엇을 하는가? 리팩토링이 필요합니다." "
게임 프로젝트를 시작하려고 할 때 걱정이되며, dev 프로세스를 mvc / tdd하려고하면 우리를 방해하거나 도울 것인지 확실하지 않습니다.이를 사용하는 많은 게임 예제가 보이지 않기 때문에 또는 지역 사회에서 더 나은 건축 관행을 요구합니다.
다음은 프로토 타이핑 게임에 대한 훌륭한 기사에서 발췌 한 내용 이지만, 많은 게임 개발자들이 프로덕션 게임 코드를 작성할 때 사용하는 태도와 똑 같았습니다.
실수 # 4 : 게임이 아닌 시스템 구축
... 당신이 직접 앞으로 나아 가지 않는 일을하고있는 것을 발견했다면, 바로 거기에서 멈추십시오. 프로그래머로서 우리는 코드를 일반화하고 우아하게 만들고 모든 상황을 처리 할 수있는 경향이 있습니다. 우리는 가려움증이 긁히지 않는 것이 아니라 방법을 알아야합니다. 코드가 아니라 결국에 제공하는 게임에 관한 것임을 깨닫는 데 몇 년이 걸렸습니다.
우아한 게임 구성 요소 시스템을 작성하지 말고 편집기를 완전히 건너 뛰고 코드로 상태를 고정 시키십시오. 데이터 중심의 자체 구문 분석, XML 크래시를 피하고 저주받은 것을 코딩하십시오.
... 가능한 한 빨리 화면에 물건을 넣으십시오.
그리고“시간이 더 걸리고 올바른 방법으로하면 게임에서 재사용 할 수 있습니다”라는 주장을 절대 사용하지 마십시오. 이제까지.
게임이 (주로) 시각적으로 지향되어 있기 때문에 코드의 가중치가 무거워서 물건을 모델 / 컨트롤러로 옮길 때 얻을 수있는 이점이 매우 적기 때문에 왜 귀찮습니까?
MVC가 성능 오버 헤드를 발생 시킨다는 주장을 들었지만, 이는 조기에 최적화 된 것으로 보이며 MVC 오버 헤드 (예 : 렌더 파이프 라인, AI 알고리즘, 데이터 구조)에 대해 걱정하기 전에 해결해야 할 더 중요한 성능 문제가 있습니다. 순회 등).
TDD에 대해서도 마찬가지입니다. 테스트 사례를 사용하는 게임을 자주 볼 수는 없지만 위의 디자인 문제 (혼합보기 / 비즈니스)와 시각적 구성 요소 또는 확률 적 결과에 의존하는 구성 요소 (예 : 물리 시뮬레이션 내에서 작동)를 테스트하기 어렵다는 사실 때문일 수 있습니다. ).
아마도 잘못된 소스 코드를보고 있는데 왜 게임 디자인에 이러한 '엔터프라이즈'관행이 더 많이 보이지 않습니까? 게임의 요구 사항이 실제로 다른가요? 아니면 사람 / 문화 문제 (게임 개발자가 다른 배경에서 왔으므로 코딩 습관이 다름)입니까?