아티스트 구인 홍보 겸 생각 정리를 위한 개발 일지입니다.
여기서 좀 더 게임의 특색을 추가하기 위해 "런앤건 + 로그라이크" 라는 장르를 시도하려는 기획이 있습니다.
그러기 위해서 기존 런앤건 장르 처럼 1스테이지의 맵이 있는 것이 아니라 노드로 구분된 맵들을 연결할 필요가 있는 데 오늘은 그것을 시도해볼 계획입니다.
우선 제 프로젝트는 맵 파일들을 Tiled로 제작하여 그것을 불러오는 식으로 처리하고 있습니다.
이렇게 외부 프로그램을 사용하는 것은 디자이너와 프로그래머 간의 결합도를 없애서 좀 더 협업하기 좋다고 생각하는데... 지금 프로그래머만 2명이라 무슨 의미가 있나 싶네요.
여튼 다시 본론으로 돌아오자면 연결하는 방법은 다음과 같습니다.
1. 맵에 입구와 출구 지점 만들기
2. 출구로 나가면 다음 맵 지점의 입구로 스폰 처리
그럼 간단하게 Tiled로 입구와 출구 지점을 만들어 주겠습니다.
영역을 정해준 뒤 Custom Property를 추가하여 입구와 출구를 구분할 수 있도록 적절히 데이터를 넣어줍니다.
이렇게 넣어준 데이터는 XML 데이터를 읽어서 유니티에서 사용할 객체의 데이터로 적절히 파싱할 예정입니다.
대충 요런 객체로 만들어 줄겁니다.
맵을 로드하게 되면 위에서 설명한 객체를 데이터를 삼아 Gizmo를 그려주는 Game Object를 생성해서 입구, 출구가 구분되도록 그려주면 1단계는 완료라고 볼 수 있습니다.
출구로 이동하게 되면 일단 사라지게 해서 충돌 체크도 적절히 되는지 확인합니다.
그리고 맵을 이런 식으로 Layer 인덱스와 노드 인덱스를 통해 인덱싱 하여 찾아갈 수 있도록 할 겁니다.
그렇게 찾아갈 수 있도록 파라미터가 될 프로퍼티를 추가합니다.
그러면 포탈을 스폰하기 전에 적절한 인덱스들만 할당해주면 플레이어가 출구로 이동하면 현재 맵을 초기화하고 해당하는 노드의 맵을 불러오고 입구에 플레이어를 스폰하면 됩니다.
이런식으로 출구 포탈에 플레이어가 충돌하면 다음 맵을 불러오면 되는거죠 (페이드 인아웃 같은 노드를 넘어가는 효과를 위해 비동기처리로 구현했습니다.)
이렇게 2단계도 완료했습니다 물론 여기서 기획에 따라 몇 가지 처리가 더 필요하지만 일단 오늘은 여기까지 입니다!
아티스트 구인 홍보겸 일지를 간단하게 써보았는데 이렇게 일지 쓰는 게 처음이기도 하고 설명도 잘하는 편이 아니라서 돌이켜보면 모자란게 많네요.
뭐... 다음에 좀 더 발전된 일지로 찾아뵙도록 하고 아티스트 분들은 동방탄주록 오픈 카톡방이나 여기 댓글로 많은 지원 바랍니다.
부족한 부분이나 궁금한 점은 댓글로 질문 주시면 최대한 자세히 답변 달아드리겠습니다!
땅 밑에 공간이 너무 넓은데 혹시 밑에서도 적 같은게 튀어나옴?
아뇨 그냥 지형 배치를 좀 높게 한겁니다! 밑에서 적 같은 게 나와도 좋겠네요 ㅎㅎ
나만 그러려나 저런 지형보면 마리오처럼 두더지 튀어나올 것 같아보임 ㅋㅋㅋ