Database - Template & Instance

Nebula 엔진의 데이터베이스 시스템에 대한 이야기.

sqlite DB의 내용을 살펴 보면 Categories에 TemplateInstance로 엔티티들이 구분되어 있는 것을 알 수 있다.

이 두 종류의 엔티티를 구분하는 방법은 우선 Template은 일반적인 플레이어나 몬스터와 같은 게임 엔티티들에 대한 값들로게임 내에서 여러 개의 엔티티들을 생성할 때 사용한다. 즉, 하나의 Template으로 복수개를 엔티티를 생성하는데 생성하는 코드는 게임 로직에 의존적이다. 그래서 Template이 플레이어 Actor나 몬스터의 표현에 사용되는 반면에 Instance는 배경 오브젝트 엔티티에 사용된다. Instance의 단어가 의미하는 그래도 게임에서는 해당 Instance의 값들을 이용해서 이 게임 엔티티를 게임 내에 생성한다. 대표적인 예로 게임 내 등장하는 나무 등이 여기에 해당한다. 만약 주어진 맵에 100개의 나무가 사용이 되었다면 이 엔티티의 Instance도 100개가 데이터베이스 내에 존재한다. 반면에 A라는 몬스터의 값은 데이터베이스 내에 해당 Template으로 하나만 존재하고 게임 내에서는 이 Template을 이용해서 필요한 개수만큼의 몬스터를 생성한다.

Template은 생성에 필요한 의 역할을 한다면 Instance는 그 자체가 이미 하나의 완전한 엔티티를 나타낸다. 


by kimsama | 2009/08/21 23:52 | Nebula Croquis | 트랙백 | 덧글(0)

트랙백 주소 : http://kimsama.egloos.com/tb/1940883
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶