0

디자인 패턴에 대한 좋은 책을 찾고 있는데 저는 Realtime Strategy 게임 (예 : Starcraft), MVC에 어떤 패턴을 권하고 싶습니까?.AS3에서 RTS 게임에 가장 적합한 디자인 패턴은 무엇입니까?

저는 Flash에서 기본 RTS를 만들고 싶습니다.이 점에 대해 가장 좋은 패턴을 연구하기를 원합니다.

건배!

+0

+1 바보가 원인없이 하향식했기 때문에 +1. –

+1

최고 * 단일 * 디자인 패턴이 없습니다. 여러 패턴을 결합해야합니다. – BoltClock

+0

이것은 "MS Office 복제/QA 웹 사이트/사용자 정의 OS에 가장 적합한 디자인 패턴은 무엇입니까?"라고 묻는 것과 같습니다. RTS가 단일 패턴에 어떻게 적용될 수 있습니까? "RTS에있는 많은 유닛을 제어하는 ​​것"을 의미합니까? 우리에게 세부 사항을 알려주십시오 - 얼마나 많은 유닛이 필요한지, 게임에는 그리드 또는 자유 좌표가 있습니다. – alxx

답변

0

단위를 많이 지원하려면 FlyweightObject Pool을 사용할 수 있습니다. Flyweight 객체는 큰 ByteArray에서 몇 바이트로 완전히 저장할 수 있습니다. 사용 가능한 객체를 얻으려면 해당 바이트를 읽고 빈 객체를 가져 와서 해당 바이트의 데이터로 채 웁니다. 개체 풀은 상수 할당/가비지 수집을 방지하기 위해 사용 가능한 개체를 보유 할 수 있습니다. 이렇게하면 ByteArray에서 수천 개의 유닛을 보유하고 풀링 된 오브젝트 쉘을 통해 관리 할 수 ​​있습니다.
타일 단위 속성을 단위로 저장하는 것이 더 적합하지만 타일이 다소 정적 인 반면 단위는 생성되고 정기적으로 파괴됩니다.

3

질문 의이 종류에 문제는 대답은 완전히 귀하의 디자인에 따라 다릅니다. RTS 게임은 간단한 게임이라해도 복잡합니다. 그들은 서로 협력해야하는 많은 시스템을 가지고 있으며 각각의 시스템은 공통 목표에 따라 다르게 설계되어야합니다.

하지만 여기에 대해서는 조금씩 설명하겠습니다.

일반적으로 rts의 AI 시스템에는 몇 가지 수준이 있습니다. 단위 레벨 AI는 스위치 기반의 상태 머신만큼이나 단순한 것일 수 있습니다. 전체 상태 동작 트리 (복합/데코레이터)까지 있습니다. 일반적으로 전략적 수준 AI에 대한 일정 수준의 계획 시스템이 필요합니다. (지휘관 레벨과 인공 지능 플레이어) 일반적으로 리소스 관리자와 같은 몇 가지 측면과 리소스 관리자와 같은 몇 가지 측면이 있습니다. 또한 플래시의 이벤트 기반 모델과 잘 어울리는 이벤트 기반 시스템으로 이동할 수도 있습니다.

기본 게임 엔진의 경우 스위치 기반에서 클래스 기반으로 기본 상태 시스템을 쉽게 구현하여 모든 것을 묶어 메뉴 시스템에 묶을 수 있습니다.

개별 플레이어의 경우 Model-View-Controller는 AI 플레이어가 인간 플레이어가 액세스 할 수있는 모든 것에 노출되도록하려는 매우 자연스러운 패턴입니다. 따라서 유일한 변화는 분명히 볼 필요가없는 컨트롤러 (뇌) 일 것입니다.

내가 말했듯이 이것은 정상적인 stackoverflow 질문처럼 대답 할 수있는 것이 아니라 디자인에 완전히 의존하고 구현 방법을 결정합니다. (대부분의 것들과 마찬가지로) RTS 게임 디자인에 관해서는 수많은 리소스가 있습니다. 모든 것을 받아 들여야 제가 할 수있는 유일한 충고입니다. 심지어 단순한 RTS는 복잡한 시스템입니다.

당신에게 행운을 비네. 나는이 포스트가 그것에 대해 어떻게 생각하는지 생각해보기를 바란다. (균형이 RTS의 모든 것임을 기억하십시오)

0

많은 디자인 패턴에 익숙하고 적절한 경우 게임의 아키텍처에 적용하는 것이 좋습니다.

예를 들어, 전체 애플리케이션, 적 생성을위한 공장 패턴, 상점 아이템의 데코레이터 패턴 등을 위해 MVC 아키텍처를 사용할 수 있습니다. 즉, 디자인 패턴은 단순히 객체를 구조화하는 방법론입니다.이 객체를 정의하는 방법과 객체를 함께 결정하는 방법은 규범이 아닙니다.

관련 문제