지도 시스템 (거의) 완성시켰습니다. 만세
이 작업을 하면서 세이브 파일에 대한 연구도 하였는데 여기 게시글을 확인하시면 됩니다.





지도 시스템 초기 디자인



초기에는 네비게이션 기능을 생각해서 디자인을 했습니다.
흰색 부분이 목적지까지의 길을 알려주고, 이미 가본 지역은 주황색으로, 가보지 않은 지역은 채도가 낮은 색으로 처리할 예정이었습니다.






현재 완성된 시스템



하지만 네비게이션 기능을 지우고 목적지 위치만을 알려주는 식으로 변경하였습니다. 목적지 위치만을 알려줌으로써 탐험의 재미를 느끼면서 길을 헤매는 상황을 없앴습니다.


그리고 목적지의 색상을 이용해서 위험한 지역인지 아니면 안전한 지역인지 알려주는 장치로도 사용될 예정입니다.
생각보다 이런 요소로 지역에 대한 분위기를 직관적으로 보여줄 수 있어 좋더라고요.



마크 기능 또한 구현했습니다. 여러 게임을 해보면서 마크 기능이 있느냐 없느냐에 따라서 피로도 차이가 심해지더군요. 소요되는 피로도를 줄여주고자 이 기능을 만들었습니다.



플레이 도중에 볼 수 있는 미니 맵 기능까지. 완벽하게 작동합니다. 출력되는 색상만 조정하면 마무리 될 것 같네요.






만들어지고 버려진 길찾기 기능


메인스토리의 라인을 보여주는 네비게이션 기능을 이용해서 길을 헤매는 상황을 없애려고 했었습니다만, 반대로 게임의 재미를 반감시키지 않을까해서 이 기능을 없앴습니다.
(부가적으로 시스템이 요구하는 비용을 줄이면서 성능에 도움까지! 조금이지만.)


그래도 이 기능을 어떤 식으로 구현하였는지는 알려주고 싶네요.



(출발은 빨간색, 도착은 파란색입니다.)
일단 위 이미지가 제가 원하는 길찾기의 이상적인 경로입니다.


GMS에서 제공해주는 길찾기 알고리즘을 이용해서 구현하였는데 생각과는 다르게 동작하더라고요. 바로 이렇게 말이죠.



어떤 식으로 하든 간에 일직선으로 쭉 이동하였습니다. 뭔가 제 눈에는 너무 부자연스러워 보였습니다. 오랜 고민 끝에 다음과 같은 방법을 떠올렸습니다.



맵의 형태를 다음과 같이 나누는 것입니다. 한 방을 12개의 블럭으로 표현하였습니다.



그랬더니 어느정도 제가 원하는 모습으로 경로를 찾아주었습니다. 막 일직선으로 경로를 찾는 경우는 없어졌지만 경로를 찾는 시간이 더 길어졌습니다.
경로로 사용되는 블럭이 12배 늘어났기 때문이죠.
이 때문에 실시간으로 매번 계산하는 것은 무리가 있고, 지도를 열었을 때 한 번 계산하고 기록해두는 방식을 이용해야 했습니다.



물론 단점만 있는 것은 아닙니다.
12개의 블럭으로 나타내었을 때 방을 표현할 수 있는 방법이 많아집니다. 더 정확한 네비게이션 기능을 제공해줄 수 있고요.


만들어논 길찾기 기능은 사용하진 않았지만 한 방을 여러 블록을 나눠논 덕분에 지도에서 방이 합쳐져 있는지, 또는 가로로 긴 통로인지 구분해서 그릴 수 있게 되었습니다. 결국엔 많은 도움이 되었죠.






다음 목표


이제 게임의 시각적인 분위기를 어느정도 잡아놔야 하기 때문에 배경이나 사물들을 그리는 방식을 연구할 것입니다. 추가로 플레이어를 움직이는 방식이나 여러 시스템들도 말이죠.
피격 시스템도 같이 만들 예정입니다.






글 읽어주셔서 감사합니다.
또 1~2주 안에 작업물들 싸들고 찾아오겠습니다.


즐거운 밤 되시길!