DGC 때문에 델파이로 전향하게 된 녀석입니다..^^
하지만 이걸로 실제 게임 샘플을 만들다 보니 여러가지 문제점이
발생하더군요...
우선적으로 함수들과 프로퍼티들이 완벽하지 못하다는 것입니다.
allplayer8이라는 함수(움핫 델파이에서두 함수라고 해도 되나 ?)
이것은 슈팅게임이나 간단한 아케이드의 주인공 캐릭을
생성할때 적합한 함수입니다. 우선적으로 뛰어난 점은
속도가 가속되었다가 멈출때는 일정 계산루틴을 통해서
아주 약간씩 밀리면서 멈추도록 설계되어 있다는 점입니다.
어정쩡하게 키보드를 딱 멈춘순가에 팍 멈추는 것이 아니라는
점이지요...
하지만 단점은 collision 이라는 녀석에 있는데 이것은
스프라이트 끼리의 충돌을 찾아내는 녀석입니다.
이녀석의 경우 약간 문제가 있더군요...
특히 이녀석을 가지고 블록격파를 만들려고 한다면...으윽
그건 참 고통일 것입니다. 방법은 DGC에서 소스를 제공하므로
그 소스수준에서 수정을 해야 하는 것이지요...흐
그리고 DGC에서는 스프라이트에 대한 방향성을 가지고 있는데
Direction 이라는 녀석이 바로 방향입니다.
이 경우에 잘되어 있는 것이 Flip 기능들이더군요..
X,Y축을 중심으로 입사각 만큼의 반사각으로 Flip을 시켜서
튕겨낼수도 있습니다.
CheckTile등도 지원하고 있습니다. 이 함수들도 별반 문제는 없지만
블록격파를 만들기에는 좀 문제점들이 있더군요..
블록격파의 경우에는 블록을 격파하는 스프라이트 즉 '볼'이
블록내부에 끼여서 버벅거릴수가 있다는 것입니다.
스프라이트의 이동에 대해서 스피드를 지정할수가 있는데
그 스피드는 스프라이트의 이동 간격으로 조정되는것 같던데
블럭이 격파되는 블럭이라면 괜찮지만
격파되지 않는 블럭이라면 내부에 박혀서 이상하게 Flip되는
현상이 나타나게 될것입니다....킁 -.-
(만들다 보니 오히려 블럭격파가 힘들다는걸 우엉...)
테트리스류의 게임이나 액션슈팅등 몇가지 게임에는 전혀
문제가 없이 그냥 쓰일수 있습니다.
하지만 제 나름대로의 분석결과로는
롤플레잉이나 몇가지 섬세하게 처리해야 할 게임등에서는
문제점을 많이 내포 하고 있습니다.
DGC는 Image Livrary Editor, Intro, Sound, Map Editor등을
지원하고 있지만...그냥 쓰신다면 물론 막강하게 볼수도 있지만
조금 덩치가 큰 게임을 만들게 되면 실행파일에 Map이나 Image등의
건더더기가 붙는다면 문제가 커지게 되겠지요..
제가 보기에는 DGC를 가지고 게임을 제작하기 보다는
DGC를 분석해서 자신의 루틴을 가지고 게임을 제작해야 더 좋을것
같더군요...그리고 스프라이트 에디터와 맵에디터도 새로 제작해서
그 포맷에 맞는 내용을 구현하는것이 좋을것입니다.
롤플레잉의 경우는 수많은 맵을 가지게 되므로 자신이 가장최적화
시킬수 있는 알고리즘을 생각해 내어서 일정한 방식으로 포맷을하고
저장해서 사용하는게 제일 좋을꺼 같군요...
다른 분들도 대부분을 아는 내용을 주저리주저리 쓸래니
영 -.- 쑥스럽군요...
하지만 DGC의 가장 큰 장점은 .Pas 소스의 완전공개입니다.
RingZero같은 제품을 쓸필요가 전혀 없어지게 되는 것이지요..
조금 시간이 걸리기는 하겠지만...
DirectX에 대한 기반을 조금씩 이해하면서
자신만의 라이브러리를 구축하게 된다면 DGC이상의 자료는
없다고 판단되는군요...
아악...Delphi Unleashed에 나온 내용도 좋더군요...
킁킁...
너무 횡설수설한 감이 있지만..아주 조금이나마
게임제작을 해보실려는 분들에게는 도움이 되었기를 바랍니다
|