2011-01-05 5 views
5

저는 최근 엔티티 프로그래밍에 대한 기본적인 개념을 배웠고 더 많은 것을 배우고 싶습니다. 내가 가진 개념은 거대한 추상화였습니다. 이게 옳은 거니?엔티티 프로그래밍 자습서?

+0

TekPub ......... –

+0

질문을 언급하지 않고 (그리고 5 개의 태그 한도가 있기 때문에) 다시 편집 할 수 있지만 C++을 삭제하고 게임 개발을 추가했습니다. 토니 호크에 대한 귀하의 의견을 –

+0

에 적어 주셨습니다. 받아 들일 만합니다, 고맙습니다. Tony Hawk의 측면에서 보았을 때, 나는 새로운 Entities를 사용하여 더 많은 것을 얻었습니다. 그것은 내가 실제로 거기에 대해 호기심을 갖게 한 리드 개발자 중 한 명이 읽은 기사였습니다. – AedonEtLIRA

답변

2

Entity은 단순히 장면 그래프/"your world"에있는 객체의 기본 추상화입니다. 아무것도 더.

각 게임 엔진은 엔티티를 다양한 방식으로 정의하고 사용합니다. 일부 게임 엔진은 엔티티에 세계 좌표 또는 공통 속성을 첨부 할 수도 있고 그렇지 않을 수도 있습니다. 게임마다 다르기 때문에 그것에 대해 말할 수있는 것은별로 없습니다.

아직 읽지 않았 으면 프로그래밍 추상화에 대해 자세히 읽는 것이 좋습니다. 다형성, 추상 기본 클래스, Liskov Substitution Principle (LSP), 또는 Code Complete 코드를 살펴 보는 것이 좋습니다. 또는 특정 게임 엔진에 대해 자세히 배우고 SDK를 사용하여 무언가를 개발할 수 있습니다 (예 : UDK는 매우 멋지게 보입니다).

+0

내가 찾던 것이 꽤 많았 기 때문에 그 책들을 들여다 봐야 할 것이다. 그게 사실 이죠. "물리적 인"물체를 방대하게 추상화 한 것일까 요? 육체적으로 나는 세상에서 공간을 차지하는 것을 의미합니다. 정말로 클래스 추상화의 멋진 방법일까요? 예 : class c extends entity. c는 필요한 모든 것을 가지고 있지만 클래스 c에 대한 id 포인터를 보유하고있는 엔티티로 표현할 수 있습니까? – AedonEtLIRA

+1

@AedonEtLIRA : 그래, 단지 추상화. 일부 게임에는 비 물리적 엔티티도 있습니다. 모든 추상화와 마찬가지로 기본 추상화에있는 기능이 많을수록 게임 엔진의 조각이 많이 사용됩니다. 하지만 너무 많은 기능을 사용하면 일부 기능을 사용할 수 없게 될 수도 있습니다. 예를 들어, 월드 좌표를 추가하면 비 물리적 엔티티 (AI 트리거, 전역 상태, 이벤트 스크립팅 등에 사용될 수 있음)를 가질 수 없습니다. 그러나 비 물리적 엔티티가 이해가되지 않거나 게임 아키텍처가이를 처리하는 데 더 좋은 방법 일 수 있습니다. 모든 게임 관련 내용. –

+1

@AedonEtLIRA : 튜토리얼을 찾을 수 있는지 알 수 있지만 기본적으로 큰 목록 인 (또는 C++, std :: vector )이며 루프를 반복하고 가상 메서드를 호출합니다. 또는 회원을 얻거나 설정하십시오. 예를 들어, 물리학을하거나 게임 로직을 실행할 수있게 해주는'Update' 메소드가있을 것입니다. 이러한 엔터티는 엔진의 다른 부분에 대해 여러 개의 다른 연결된 클래스가 있거나 둘 이상의 목록에있을 수 있습니다. –

3

내가 알 수있는 바로는 매우 잘 알려진 방법으로 보이지 않습니다. 내가 찾을 수있는 유일한 정보는 내가 생각한 것을 뒷받침하는 것 같다. '엔티티'프로그래밍이란 데이터 구조 (예 : 게임의 씬 그래프)에서 모두 상호 교환 가능하게 사용될 수있는 여러 개체를 갖는 것을 의미합니다. 또한 엔터티는 데이터로 정의 할 수 있어야합니다. 즉, 엔터티를 XML 파일로 구성하거나 마찬가지로 중요한 XML 파일에 작성하여 다시로드 할 수 있습니다.

내가 기억하는 한, Quake는 정적이 아닌 개체 (즉, 지형을 구성하는 BSP 트리 이외의 개체)를 언급하기 위해 '엔터티'라는 용어를 사용했습니다. 조명, 문 등과 같은 것들

관련 문제