※ 본 아티클은 CMP MEDIA LLC와의 라이선스 계약에 의해 국문으로 제공됩니다.
게임 개발에 효율적인 XML 파일 판독
초록 현대 게임 엔진은 게임을 시작하는 동안 거의 모든 서브 모듈에서 다량의 데이터를 판독한다. 일반적인 데이터 포맷 XML은 이 분야에서 사실상의 표준으로 자리잡고 있다. XML의 장점 가운데 하나는 용이한 가독성이다. 이러한 포맷에 대해 게임 개발업자의 삶을 보다 편리하게 만드는 표준 툴과 익스포터(exporter)는 다수가 있다. 그러나 대용량 파일에서 이러한 데이터 포맷을 이용할 때는 메모리 소모가 많고 판독 시간과 메모리 세분화가 오래 걸린다는 단점이 있다. 이는 특히 콘솔 게임 개발일 때 더욱 심각하다. 본 논문에서는 표준 DOM(문서 객체 모델)이 아니라 SAX(XML용 단순 응용 인터페이스)를 이용하여 이러한 단점을 피할 수 있음을 증명하고자 한다. 두 모델은 XML 데이터를 분석하기 위한 접근방식이다. 후자는 게임 개발업자에게 알려지지 않았으며, 처음에는 사용하는 것이 다소 어려운 것으로 보인다. 그러나 이를 제대로 적용하면 개발에 필요한 업무량은 두 접근 모두 거의 동일하며, 제어 흐름만 다를 뿐이라는 점을 입증하고자 한다. 서론 XML [RFC 3076]은 엘리먼트와 속성을 사용자가 개별적으로 정의할 수 있는 HTML 포맷을 일반화한 것이다. 현재, 이 데이터 포맷에는 이종 데이터를 명시해야 하는 다양한 범위의 애플리케이션이 있다. 데이터 포맷은 ASCII나 Unicode이기 때문에, 특히 게임 개발업자의 흥미를 자극한다. 이 포맷은 툴을 이용하면 자동으로 생성되지만, 신속하고 간단한 변화를 위하여 수동으로도 편집할 수 있다 한편 XML 파일 처리에 도움을 주기 위하여 다양한 툴과 표준이 개발되었다. 특수 XML 포맷의 구문론과 의미론을 명시하기 위해 여러 표준이 작성되었다. 구형 포맷 규격에 속하는 것으로 DTD가 있다. DTD는 특수 XML 구문론을 명시하는 XML 포맷의 특수 확장 포맷이다. 이보다 발전한 접근방식은 SCHEMA[derVlist2002]가 택한 방식이다. SCHEMA는 XML 파일을 위한 구문론 및 의미론 규격기술 언어이다. SCHEMA 규격 자체가 XML로 작성된다. 의미론을 명시할 수 있는 능력은 기본값이나 제한 사항과 같은 내용을 포함한다. 여기에서 XMLSpy[XMLSpy]와 같이 사용자가 파일을 편집하는데 도움이 되도록 Schema 규격을 처리할 수 있는 XML 에디터가 있다. 데이터베이스 프로그램은 대부분 XML 포맷으로 데이터를 익스포트할 수 있는 가능성을 제공한다. 또 하나의 흥미로운 XML 기술은 XSLT [W3CR]이다. XSLT는 XML 포맷의 데이터를 다른 데이터로 변형할 수 있는 문법 변형 언어이다. 물론 이것은 게임 개발의 관점에서 대단히 흥미로운 언어이다. 개발업자는 게임 설계가 완성되면서 게임 데이터의 포맷 변화를 극복해야 하는 경우가 많기 때문이다. 이와 같이 XML이 제공하는 가능성을 간파하여, 본 연구진은 가장 간단하면서도 효율적인 방식으로 XML 데이터를 게임에 도입할 수 있는 방법을 집중적으로 다루고자 한다. 간단한 완구 표본으로, 불필요한 장비를 모두 제거한 자동차를 나타내는 아래의 XML 규격을 검토해 보도록 하겠다.
이는 옵션 분석에 대한 아래 설명에서 예제로 이용될 것이다. 단순화를 위하여 제시된 예제에서 10.0와 같은 텍스트 구성소는 사용하지 않는다. 제시된 접근법을 확장하여 이러한 구성소를 수용하는 것은 간단하다..... .........................(중략)
* 자세한 내용은 첨부문서(pdf)를 참고하시기 바랍니다.
|