안타깝게도 이번주에 여러 일이 있어서 진행을 많이 하지는 못했다.
하지만, 핵심적인 알고리즘인 A*알고리즘을 공부할 수 있었다. 하지만, A*의 경로 탐색을 실시간으로 하기에는 약간 무리가 있을 것 같다. 그래서 나는 현재 프로젝트를 디펜스게임으로 바꾸어 보려고 한다.
목적지인 집이 있고, 슬라임은 집을 공격해서 부술 수 있다. 부서지면 게임은 끝나게 되고, 플레이어는 나오는 슬라임을 제거하여 집을 지키면 되는 간단한 게임을 만들어보려고 한다.
우선 이번주 진행 사항에 대하여 살펴보자.
1. A* 알고리즘
A*의 경우 좀 보완하고 싶은 부분이 있어 자잘한 부분들을 모두 구현하고 나면 다시 보완할 생각이고, 따로 포스팅 할 생각이다.
현재 몬스터는 플레이어의 위치까지 최단경로로 이동한다. 이 때 맵을 바꿔줌에 따라서 최단경로는 변하게 되어 있다. 이 부분은 완성하고 나면 확실하게 수정이 필요할 것 같다.
또 하나 문제점을 발견했다.
우연히 shared_ptr 혹은 unique_ptr에서는 Memory leak 현상이 일어나지 않을까? 라는 의문이 들었고, 디버깅 해본 결과
안타깝게도 memory leak이 존재했다. 그래서 난 다시 스마트포인터와 memory에 대해 공부해야겠다는 생각을 했다. 그러므로 이후에 memory관련 포스팅을 하면서 한번 더 공부해야 할 것 같다. 또한 문제점이 한 가지 발견 되었는데, 애니메이션이라던가, 이동관련요소들이 조금 문제가 있는 것을 알게 되었다. 아마 한동안 프로젝트를 진행하면서 고쳐나가야 할 사항들이 되지 않을까 싶다. 그래서 2~3주 정도면 완성될 것 같았다는 착각은 접고 열심히 프로젝트를 진행해봐야 할 것 같다.
현재까지 총 8회의 commit을 하였고, 평일에는 언리얼 공부를 하고 있어서 주말에만 진행하게 될 것 같다.
앞으로 프로젝트 진행하면서 해야 할 사항을 살펴보면
Memory Leak 현상 수정
시간 관련(애니메이션, 이동) 수정
A*알고리즘 보완
나머지 게임 요소(몬스터 생성,삭제, 플레이어 공격, 설치물 설치...)
등이 있고 다음 주에 또 포스팅하게 될 것이다.
현재 진행 중인 프로젝트는 GitHub에 계속해서 올리고 있습니다.
https://github.com/taehyun1234/2D-Game-Project
아 그리고.. unique_ptr을 사용할 때 왜 leak현상이 일어나는지 알고계신분 있으시면 알려주시면 감사하겠습니다.
'WinAPI' 카테고리의 다른 글
[WinAPI] 2D 게임 현황 <완성> (0) | 2021.08.14 |
---|---|
[WinAPI] 2D 게임 현황 <3주차> (0) | 2021.08.08 |
[WinAPI] 2D 게임 현황 <1주차> (0) | 2021.07.25 |
[WinAPI] 개발계획 - 2D Game (0) | 2021.07.24 |
[WinAPI] 학기 텀프로젝트 (0) | 2019.11.01 |