드디어 토끼마을에 도로가 생겼어!
먼저 오늘은 도로의 생성 방법에 대해 알아보고, 패스파인딩에 대한 내용은 2편에서 작성해볼게.
도로는 기본적으로 그리드 하나에 대응하는 일종의 '건물'로서 만들어져.
그래서 실제 게임에서도 도로를 건설할 때 한칸한칸씩 직접 도로를 건설할 수 있게 될거야.
하지만 지금 상태로는 도로가 옆 도로와 연결되지 않아서 좀 아쉬워 보여.
아무래도 도로가 도로다운 모습을 갖추기 위해서는 옆 도로들과 잘 연결되는 것이 필요하겠지?
가장 간단한 구현 방식은 가능한 도로의 모든 갯수를 전부 미리 만들어놓는 방식인데, 그러면 시간이 너무 많이 걸리기 때문에 절차적 생성 방식을 이용해서 도로를 만들기로 했어.
이를 위해 도로를 총 9개의 구획과 12개의 구분선으로 나누었고, 주변에 도로의 존재 유무에 따라서 도로의 모양을 자유자재로 바꾸는 스크립트를 작성해서 도로가 스스로 모양을 결정할 수 있도록 했어.
도로의 구분선은 우선 도로의 구획이 결정된 후에 구현되는데, 각 구분선은 자신의 양쪽의 구획이 다른 속성이면 자신을 표시하고, 그렇지 않으면 자신을 숨기는 방식으로 표현돼.
거기에 더해서, 자신이 활성화되어있으면 랜덤으로 자갈이나 풀 등을 배치하여 도로의 퀄리티를 한층 높여주는 역할도 수행해.
다음에는 더 재밌는 길찾기에 대해서 써볼게.
참고로 그동안 귀찮다고 개발일지를 안썼더니 새로운 내용이 너무 많이 생겨서 개발일지를 좀 남겨둘걸 하고 후회가 조금 된다 ㅋㅋ
앞으로 일지도 열심히 쓸게..!
오늘은 저번시간에 이어 토끼의 패스파인딩에 대해 써볼게.
이건 기존에 있던, 토끼마을 이야기의 프로토타입쯤 되는 게임이야.
이 게임은도로도 없고 건물들의 크기도 동일하기 때문에 복잡한패스파인딩기술 없어도 길찾기가어렵지 않았고, 이 때문에간단하고 가벼운 - '목적지와 가장 가까운 점들을 맹목적으로 탐색'하는 패스파인더를 개발해서 사용했어.
이 패스파인더는 위의환경에서는 문제가 없지만, 도로도 있고 건물들의 크기도 제각각인 현재의 토끼마을 이야기에 적용된다면 몇 가지 문제가 생겨.
이건 복잡한 환경에서 기존 패스파인더를 테스트한 결과야.
위에서 볼 수 있듯이, 이 친구는 맹목적으로 목적지와 가까운 길만 찾기 때문에 최단 거리와 가능한 경로의 방향이 다르면 길을 돌아가기도 하고, 중간에 막다른 길이 있으면 그 길을 끝까지 간 후 돌아오는 경로를 선택하기도 해서 게임에 적용하면 토끼들이 이해할 수 없는(?), 아주 비효율적인 움직임을 보여줄 수도 있어.
이 문제를 해결하기 위해, 나는 현 위치를 중심으로 목적지와 가장 가까울 점들을 선택하고 이들끼리 비교하여 경로를 찾는, 이른바 A* 알고리즘을 응용한 패스파인더를 만들었어.
이 패스파인더는맹목적으로 최단 거리를 찾는 기존 패스파인더와는 다르게 내 주변으로부터 납득 가능한 경로들을 전부 저장하고 탐색함으로써, 탐색에 시간은 좀 더 걸리더라도 훨씬 효율적인 길을 찾아줄 수 있어.
이제 그럼 이 패스파인더를 게임에 적용해볼까?
예상대로 패스파인더가 장애물(건물)을 피해서 밭까지 가는 길을 잘 찾아준 걸 볼 수 있어.
이제 중간에 건물들이 있더라도 토끼가 최적의 경로를 잘 찾아 목적지에 도달할 거야.
그런데 잠깐, 지금은 토끼가 경로 도중 도로가 있는데도 불구하고 도로를 이용하지 않고 있어.
물론 도로를 이용하지 않는 것이 더 빠른 경로일 수도 있지만, 나는 게임의 재미를 위해 가능하다면 토끼가 도로를 이용해줬으면 좋겠어.
이를 구현하기 위해, 나는 길의 패스파인딩 가격을 다른 경로의 가격보다 약 10배정도 낮게 설정한 후 패스파인딩을 하도록 했어.
그 결과, 패스파인더가 도로를 우선하여 패스파인딩을 진행하면서 원하는 모습으로 토끼의 움직임을 구현할 수 있었어.
이 패스파인더의 장점은, 도로를 '무조건적으로 선택'하는 게 아니라 '선호도를 증가'해서 찾는다는 데 있어.
덕분에 위와 같이 도로를 통해 가는 경로가 너무 길어질 경우, 토끼는 적절한 곳에서 도로를 빠져나오는 선택을 할 수도 있어
오늘은 이렇게 토끼의 패스파인딩에 대해 알아봤어.
다음에는 이 패스파인딩 기술을 이용해서 토끼들이 열심히 마을을 돌아다니는 풍경을 보여주러 올게.
그럼 그때 봐!
ㄱhttps://gall.dcinside.com/mgallery/board/view?id=game_dev&no=150280
GPT는 신이야원래 게임 UI는 이랬음.원래는 인스타 느낌의 깨끗하고 모던한 느낌을 원했는데, 막상 만들고 나니 파워포인트로 대충 만든 느낌이 남.좀더 게임다운 UI를 만들기 위해서, GPT한테 저 사진이랑 원하는 느낌 설명하고 만gall.dcinside.com이 일이 있고 난 다음에 만든 UI들
홈 UI 기획
인게임 UI 기획
메뉴 UI 기획
거의 챗GPT 일일 사용량 한계까지 써가면서 만들었는데 개인적으로는 엄청 만족스러웠음
이정도면 UI로 GOTY 가능?
너는 지금 치킨사서 뿌려라ㅡㅡ 이미 성공확정이네
아입니다 끝까지 열심히 하겠습니다 절대 출시하겠다는 마음가짐으로 꼭 완성할게..! 고마워!
아니 이새끼 게임개발 좀 하네
이건 진짜 망할 수가 없다 잘해라ㅋㅋ
너무 좋아요. 혹시 건물마다, 도로와 대응되는 타일을 둬서 도로랑 연결 되게 하는건 어떠시나요?
그것도 하려고 하는데 지금은 일단 게임이 유저가 플레이할 수 있도록 만드는게 우선이라 우선순위에서 밀려있어... 나중에 꼭 추가하려고!
그는 신이야
플루딩쓰네 A*쓰지
누드패치있노?
1짤 건물 배치한거 ㅈㄴ 이쁘네
형이 게임 대성하는 꿀팁 알려준다. 퍼리충 노리는 노골적인 디자인 도입해. 뭐 개발자로서의 프라이드 집아치아라ㅡ 내 말을 들으면 떡이나와요 ㅇㅋ?
도트가 더 나을거 같은데.. 중국산 겜 같음 폰트좀 바꿔 ui를 게이지로 하지말고 꽃이나 당근처럼 이미지를 넣어서 갯수로 보여줘 요즘은 퍼리보다 역바니 수인이 더 잘팔린다 그리고 다똑같이 생겼는데 수염달리고 귀접히고 눈째지면 그게 다른거야??????? 제일 중요한건 왜 늑대가 없음? 벤웨이브 와서 지켜내던가 기상악화로 다 굶어 ㄷㅣ지는것도 없는데 목적이 걍 아기자기면... - dc App
이새끼가 하는말 다무시하셈