본 게임개발일지는 본인이 게임개발에 참여한 게임에 대한 얘기이며
게임개발에 느낀점이나 시행착오 등을 기록하기위해 작성된 글입니다
공부해나가는 입장으로서 부족한점이 많아 이해해주시면 감사하겠습니다
점프맵 개발일지를 정말 오랜만에 작성하는거 같다
사실 개발은 계속 하고있었다! 일지작성을 계속해서 안했을뿐..!
일지를 꾸준히 작성하는건 정말 어려운 마음가짐인거같다..
점프맵 뿐만 아니라 개인개발 개발일지도 마찬가지로 일지들을 한동안 작성을 안했는데
요즘 게임개발 뿐만아니라 취업준비때문에 여러가지를 하느라 많이 바빠서 신경을 못썼던거 같다
현재 블로그 최신 글들을 보면 죄다 게임개발 공부거나 코테 공부에 관한 내용들이다
정보처리 기사도 준비중이다
머리가 이상한건 넘어가도록 하자.. 새로 찍어야지
하지만 비록 부족한 실력으로 구현하는거지만 점프맵(프로젝트 개발)도 분명 나한테 도움이 될 것이다!
변명 늘어놓지말고 게임개발은 개발대로 열심히 하고 일지도 일지대로 다시한번 꾸준히 남겨보도록 하자
마지막 점프맵 개발일지를 남긴지 시간이 좀 지났기에 구현내용에 최신화된 내용들이 많기때문에 하나하나 설명해보고자 한다
가장 크게 변한점은 Menu Scene이 생겼다는 점이다
메뉴 Scene의 현재 구현된 전체적인 기능들을 녹화해보았다
GIF로 만드는 과정에서 프레임 드랍이 생겼는데 실제로보면 더 부드럽게 움직인다
게임 스테이지 클리어 여부는 싱글턴 패턴을 사용해 GameManager를 인스턴스화 해서
MainGame과 Menu에 클리어 진척도를 저장하는 리스트를 사용하여 메뉴 스테이지 이미지에 반영한다
그리고 Menu Scene에서 신경썼던 부분이 UI의 움직임을 어떻게하면 어색하지 않고
게임처럼 움직일까를 고민해봤던거 같다
관련 내용은 이전에 블로그로 작성했으니 다음 링크를 참고하면 될거같다
<참고링크 👉 부드럽게 가속하는 오브젝트 만들기>
추가로 Cancel버튼이 아닌 화면밖을 터치했을 때도 마찬가지로 UI창이 취소되도록 만들었는데
배경에 Button 컴포넌트를 추가하고 클릭시 취소하고
취소되는 순서는 LIFO(후입선출, Last In First Out) 형태가 되어야하기 때문에
Stack<GameObject>
구조를 사용해서 의도하는 순서대로 취소되도록 만들었다
지금 개발중인 점프맵 게임에서는 스테이지별로 블럭의 컨셉이 다 존재한다 기본부터 얼음, 불, 모래 등등...
블럭 하나하나 구현을 어떻게 했는지에 대해 간략하게 설명해보려고 한다
Sand 스테이지에 있는 모래블럭은 플레이어가 밟게되면 일정시간 이후에 부서지고 위에있던 플레이어는 낙하하게 된다
일정시간 이후에 모래블럭은 다시 생성된다
(현재 남아있는 구현 과제) 플레이어가 있는 위치에 모래블럭이 생성되면 collider가 이상하게 충돌되는 현상이 있어
회의 후 플레이어가 있는 자리에 모래블럭이 생성하지 않도록 결정 -> 추후 구현
타일들을 어떻게 구현해야할지에 대해 생각을 많이해봤다
현재는 블럭들이 플레이어의 움직임을 제한하거나 조작하는게 많아 Player스크립트에서
Player가 접촉하는 타일을 인식하고 그 타일에 따라 Rigidbody에 있는 물리 값들을 조절하는 방식을 사용했다
우선 구현에 급급했던거 같다
다시 생각해보니 타일들을 하나의 클래스로 묶은다음 플레이어의 물리값을 조절하는건
GameManager를 통해 조작하는 방식이 제일 깔끔하지 않을까란 생각이 드는데 한번 시도해봐야겠다
다음은 현재 구현한 방법이다
Player 스크립트에서 위와 같이 물리값들을 조절한다
코드가 좀 지저분하다
이펙트가 있는 블럭들(ex. 부스러지는 이펙트가 있는 모래블럭, 불꽃이 나오는 용암블럭(미구현))은
이펙트를 프리팹으로 생성한 후에 Instantiate와 Destroy로 동적으로 오브젝트를 생성 및 삭제해서 구현했다
다음은 모래블럭 구현코드이다
코루틴을 사용하여 시간차를 두어 프리팹 생성 및 점점 어두워지는 효과도 구현했다
해당 효과는 게임 시작 전 광고 시청시 쉴드를 지급한다
무료 게임으로 출시를 예정하는 만큼 광고나 인게임 결제 요소를 추가할 예정이다!
이제 어느정도 게임의 구실을 갖췄다고 하지만 아직 구현해야할게 산더미같이 있다
한번 간단하게 정리해보면
📚 구현해야할 남은 목표들
- 구글 플레이스토어 연동 및 데이터베이스 연동 -> 랭킹시스템 구현
- 저장기능
- 광고(애드몹 예상) 연동하기
- 구현한 블럭 및 몬스터,함정들로 스테이지들 만들기
- 밸런스 조정
- 상점 구현 및 인앱결제 연동하기
- 기타 정해야할것들(미션, 클리어 조건 등등..)
- 가챠 시스템 만들기(스킨 뽑기)
당장 생각나는것들을 나열해봤는데 아마 이보다 더 있지않을까 싶다
간단한 게임이라 생각해서 금방금방 할줄알았는데
아무래도 개발을 나 혼자 맡다보니 개인사정에 의해서 지체되고 또 다른일이 생기면 또 지체되고...
아무래도 집중을 제대로 못한거같다
한탄해서 어쩌겠나 다 나한테 도움될 일들인데..!
앞으로 좀더 파이팅해서 개발하고 일지도 파이팅해서 남겨봐야겠다
빨리 출시되면 좋겠어요. 완전 재밌을 거 같아요!!