데이터 중심 설계 란 무엇입니까? [닫은]


11

게임용 데이터 중심 디자인을 다루는 기사를 많이 읽었습니다. 다음과 같이 보입니다.

  • 하드 코딩 없음
  • 엔진에 게임 특정 코드가 없습니다
  • AI, 컷씬 등을위한 스크립팅.
  • 재사용 성을위한 코드 일반화
  • 구성 요소 설계
  • 모듈성
  • 낮은 커플 링
  • 편집자 (데이터,지도, 스크립트 용)
  • 외부 데이터 검색
  • 상수 텍스트 파일에 보관 ( .ini또는 기타)
  • 디자이너의 스크립팅 및 조작을 위해 편집기를 통해 데이터 노출

이제 내 질문은,이 이해가 맞습니까?


3
사이트에 오신 것을 환영합니다. 여기에 두 가지 질문이 있으며 (일반적으로 게시물 당 하나의 질문 만해야 함) "시작하는 방법"에 대한 두 번째 질문은 주제를 벗어난 것으로 간주되므로 질문을 수정하고 파싱했습니다. 무언가를 시작하는 방법에 대한 토론을 원한다면 게임 개발 채팅을 방문하십시오 .

@JoshPetrie하지만 지금은 많은 사이트를 방문한 적이 있고 그에 대한 답변을 얻지 못한 것이 가장 중요했습니다. 방향을 찌르는 사람조차 없습니다. 이 있어야합니다 일부 이러한 주제에 대한 통찰력의 비트를 가지고 사람들.
OmniOwl


1
아마도 그것은 당신에게 가장 중요하지만 여기서는 주제가 아닙니다 ( faq 참조 ). 나는 또한 질문을 막을 수 있었다. 시작하는 방법에 대한 질문을 하려면 게임 개발 채팅 또는 GDNet 과 같은 실제 토론 포럼을 방문하십시오 .

1
오프 주제 질문에 대한 도움이 필요하면 @Vipar 채팅에 참여하십시오. 당신이 도움을 얻을 것이라고 보장하지는 않지만 많은 현명한 사람들이 그 주위에 매달려 있습니다.
ClassicThunder

답변:


10

이것이 올바르지 않다고 말하고 싶습니다. 데이터 기반 디자인에서 가장 중요한 아이디어는 데이터를 수정하거나 업데이트하는 것과 데이터를 분리하는 것 입니다.

따라서 표준 OO 심층 계층 구조에서 다음과 같이 진행하십시오.

class MyCreature{
     vector position;
     void update(){ position += 1; }
}

별도의 상태와 시스템으로

class CreatureState{
    vector postion;
}

class MovementSystem{
    list<CreatureState> states;
    void update() {
        for each CreatureState state in states {
            state.position += 1;
        }
}

현재 가장 영향력있는 DDD 패러다임에는 Entity Systems가 있습니다. 찾아 볼만한 멋진 자료는 다음과 같습니다.

http://gamedevrubberduck.wordpress.com/2012/12/26/a-hybrid-entity-system-component-architecture/

http://entity-systems.wikidot.com/

물론 모든 패러다임 / 아이디어와 마찬가지로 정확한 정의가 없으며 DDD를 말할 때 모두가 동일한 아이디어를 이해하는 것은 아니지만 이것이 내가 가장 중요하게 생각하는 것입니다.


예, 분리 부분을 언급하는 것을 잊었습니다. 그리고 이것은 제가보고 싶은 종류입니다. 나는 너무 많은 이론을 읽을 수 있습니다. 구체적인 예가 필요합니다. 감사합니다. 기사도 살펴보십시오!
OmniOwl

아 잠깐 전에 내가 읽은 최고의 설명을 마침내 찾았습니다. 그것이 내가 여기에 묻는 질문에 대한 답변이라는 것이 밝혀졌습니다. gamedev.stackexchange.com/questions/48971/… : D
Roy T.

4

나는 당신이 정의를 지나치게 복잡하게 생각합니다. 글 머리 기호 목록에 포함 된 많은 원칙 은 소프트웨어 엔지니어링 관점에서 좋은 원칙 이지만 반드시 "데이터 중심"정의의 일부는 아닙니다. 이들 중 많은 부분이 겹치거나 데이터 기반 접근 방식을 사용하여 가장 잘 구현 되지만 데이터 구동 방식을 구성하지는 않습니다.

데이터 중심 소프트웨어 개발의 실제 정의는 일반적으로 상당히 간단합니다. 프로그램은 주로 코드 내에 사전 정의되고 고정 된 일련의 단계를 거치지 않고 일부 외부 정보 (일부 레벨 데이터, 스크립트 데이터 등)를 기반으로 작업을 수행합니다. 제어 흐름을 결정하는 자체


당신은 내가 일을 너무 복잡하게하는 것이 옳을 것입니다. 내가하는 경향이 있습니다. 그러나이 코딩을 시작하는 방법에 대해 마음을 감쌀 수 없습니다.
OmniOwl

1
귀하의 질문에 대한 답변을 GDNet에 게시했습니다 . 문제의 요점은 너무 열심히 노력하지 말고 궁극적으로 원하는 것의 간단한 측면을 골라 작은 게임을 만드십시오.

나는 또한 보았다. 이에 대해 이야기 할 시간을 내 주셔서 감사합니다.
OmniOwl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.