2009-05-14 9 views

답변

5
  • 모든 업데이트 단계 (예 : 렌더링) (모든 UI 라이브러리에서 실제로 공통)를 수행하는 복합체. (나무/숲/글 머리 기호) UI 라이브러리의 많은에 대한
  • 옵저버 화면에 같은 항목 유형의 대부분을 그리기위한
  • 플라이급/게임/메뉴 사이의 전환에 대한
  • 상태 (다시, 특정 게임이 아니다) 콘솔/일시 정지/etc. states
  • mobs/NPC (한 번에 엄청난 양의 AI 문자가있는 게임, 예 : Left 4 Dead)를 만들기위한 일부 비트 업 종류의 게임에서 초록 공장. A *
  • 편집과 같은 알고리즘을 찾는 경로 스와핑 추론에 대한
  • 전략>은 주문과 이것 저것을 캐스팅하기 위해 클릭 할 수있는 교환 버튼과 액션 바있다 MMO의 같은 게임에 대한 명령.

내가 지금 생각할 수있는 전부입니다.

0

상태 패턴의 변형은 게임 상태를 모델링하는 데 유용합니다. Enginuity series of articles은 게임 엔진 디자인의 저수준 측면에 대한 개요입니다. 그것은 불완전하지만 좋은 것입니다. Guff 프레임 워크의 디자이너 outlined the use of state hierarchies은 게임 상태를 처리합니다. 계층 개념은 게임 상태에 대한 관점이 제한적이지만 (단지 상태가 아니라 전체 게임 루프를 포함 함) 좋지만. 또한 이 있습니다.

스크립트를 구현할 때입니다 매우 유용하고 협력 멀티 스레딩의 어떤 종류를 지원하는 스크립트 언어를 사용하는 강력한 입니다. Stackless Python이이를 제공합니다. Mono 2.6부터는 can do this in C# using continuations이지만 Mono 플랫폼 (.NET은 아님)에서만 변경이 필요했습니다.

2D 및 3D 그래픽, 애니메이션, 입력 등에 대한 일반적인 솔루션이 있습니다. 그 중 대부분은 DirectX, SDL 또는 유사한 프레임 워크에서 처리됩니다.

1

특별히 게임 별 소프트웨어 디자인 패턴이 있다고는 생각하지 않습니다. 게임은 다른 언어와 동일한 언어, 라이브러리, 플랫폼을 사용하며 소프트웨어 수준에서 거의 똑같은 문제에 직면합니다.

인기있는 것 같지만 고전적인 디자인 패턴과 같은 방식으로 코드 수준에서 공식화되지 않은 특정 방법이나 접근 방식이 있습니다. 한 예로 구성 요소 기반 액터가 있는데, 종종 동일한 객체에 집계되지 않고 ID 공유를 통해 신호/슬롯 유형 메커니즘을 통해 통신합니다. 다른 하나는 Lua, Python 또는 Javascript와 같은 스크립팅 목적으로 두 번째 언어를 포함시키는 것입니다.

+0

저는 게임의 모든 다른 구성 요소를 높은 수준에서 이해할 수 있고 유지할 수있는 것으로 구성하는 것과 같은 몇 가지 일반적인 아키텍처 패턴을 찾고 있습니다. MVC 유형 아키텍처 또는 계층화 된 아키텍처와 동일한 게임 개발과 같은 것입니다. –

+2

그들은 존재하지 않는다, 나는 두려워한다! 이런 종류의 질문은 GameDev에서 계속 반복됩니다.실제로는 표준 접근법이나 그와 유사한 어떤 것도 없습니다. 모든 것이 입력 업데이트 렌더링/출력 루프를 가지고 있으며 종종 Matt Olenik이 설명한 것과 비슷한 게임 상태 시스템이 있지만 그 이상으로 다양한 소규모 시스템과 패턴을 임시 배치합니다. 조언을 해줄 수는 있지만, 제 의견은 "공통"이라고 주장하면 거짓말을합니다. – Kylotan

1

가능한 게임 아키텍처를 자세하게 설명한 this PDF이 발견되었습니다. 그러나 객체 지향 디자인에 대해 생각하는 경향이있는 독자에게는 '불쾌감을 줄 수 있습니다.'

관련 문제