개발 일지를 남기면서 프로젝트를 진행하는게 도움이 될 것 같아서, 2007년 11월 24일 블로그를 개설했습니다. =)
원래 이번 프로젝트의 계획은, 순수한 Direct3D9의 Quad를 이용해서 맵을 렌더링 하고, 그 위에 또 Quad로 만들어진 오브젝트를 올려놓는 식으로 제작하는 방식이었습니다. 하지만 속도가 만족스럽지 않고, UV맵핑을 이용했을 시, 픽셀과 1:1 대응이 상당히 힘들다는 것을 알게되었습니다 (솔직히 말하자면, DXSDK 문서 다 읽고도 이해를 못했지요. Shader가 아닌 Pipeline에서 이걸 어떻게 구현하나 하구요...)
추수감사절이라 목요일부터 학교도 쉬겠다.. 시간이 많아서, 수요일에 C++를 이용한 DxSDK Beginner's 튜토리얼들을 모두 작성해보고, Frank D. Luna 서적과 MDX KickStart(물론 C#을 이용한 Managed DirectX에 관한 책이었지만, 나름대로 쉽게 풀어놔서 DirctX의 전반적인 구조를 이해하는데 도움이 많이 되었습니다.) 를 읽어가며 맵 렌더링 클래스를 작성했습니다. 하지만, 그 결과는 별로 좋지가 않았습니다. =/
Vertex Buffer, Index Buffer에 수만개의 Vertices를 넣어가며 제작한 맵 렌더링 클래스..
텍셀과 픽셀의 1:1 대응을 구현하지 못해, UV맵핑이 엉망이되어, 보시다싶이 맵 중앙에 금이가버렸습니다. OTL
외국 게임 개발 사이트에 여러가지 질문을 해봤지만 별 다른 반응이 없길래... 할 수 없이 D3DXSPRITE9 인터페이스를 이용해야겠다고 다시 마음을 잡아 계획을 변경하고, 금요일 아침부터 열심히 D3DXSPRITE9를 공부하여서, 결국은 맵과 맵 오브젝트를 렌더링 할 수 있는 클래스를 작성했습니다. =]
이번 봄에 SDL로 제작한 마제스티 렌더링 엔진... 파일 관리나 소스코드 작성에 있어 정말 지저분한게 많았습니다.
가장 힘들었던 것은 Object가 제대로 표시되지 않았던 것과, 8비트 비트맵에서 첫번째 픽셀 값을 가져와서 ColorKey로 텍스쳐에 적용시키는 것이었던 것 같네요. 덕분에 비트맵 구조 한번 제대로 공부했습니다. ㅎㅎ
아고라시 광장 중앙 스크린 샷. 실제로 프로그램을 구동하면 분수는 에니메이션 처리되어 나타납니다.
초보 수련장 스크린 샷. 광장에 있는 할배한테 말걸면 여기로 데려다줬죠. 토깽이 때려잡던 기억이 나네요.
렙 3000때 마제가 망해버리는 바람에 직접 플레이 할 기회는 없었지만, 불꽃지대의 스크린샷입니다.
레드윈드 숲이였던가? 이름은 기억이 안나는데, 상반신은 황소이고 하반신은 말이었던 괴물들 때려잡던 기억이 납니다.
일단, 학교 과제도 있고 하니 일단은 여기까지만 해둬야겠네요. 3주 있으면 겨울 방학이니 그 때 부터 본격적으로 마제스티 제작에 들어가야겠습니다.
아직 갈길이 까마득합니다 -_- 그래픽 클래스도 아직 완성된 상태가 아니고... 일단은 에니메이션 프레임 버그부터 좀 잡아줘야할 것 같습니다. 그리고 메인캐릭터 그림들 패킹하고, 아이템 패킹, 폰트 프린트 함수 등등, 대강 다 짜놔야 할텐데, 겨울 방학 안에 다 끝낼 수 있을런지 모르겠습니다.
그 것보다 걱정되는건, 네트워크 프로그래밍은 지금 거의 무지에 가까운 상태입니다. -_- 소켓 공부하랴, 데이타베이스 공부하랴, 다중 쓰레드 공부하랴 앞으로 할일이 태산입니다. 하지만 여기서 포기할 수는 없습니다. 앞으로 계속 노력해서 꼭 Majesty : Renaissance 프로젝트를 완성하겠습니다. =]
* P.S.. 방금 에니메이션 버그 고쳤습니다. 프레임 중복 추가 검사를 빼먹었었네요. =S