이전부터 게임 제작했던건 부분적으로만 보여준거같아서
이참에 제대로 뭐 만드는지 게임 컨셉같은거 보여주려고 글써봤어
게임 장르는 턴제 로그라이크라고 해야하나 뭐라 정의는 못내리겠다
일단 이게임의 주된 컨셉은 시야시스템이야
일반적으로 케릭터 주변으로 실시간으로 맵이 생성이 돼
이런식으로 움직이면 시야에 맞게 맵에 생성되고
시야라는걸 강조하려고 쉐이더도 빛에만 반응하게 만들었어
만약 조명이 약하다면 해당 오브젝트는 alpha값이 0되어서 완전 투명하게 렌더링돼
이게 빛이 없는부분이 어두워서 안보이는게 아니라 그냥 아무것도 없어서 검게 렌더링 된거라고 보면돼 그래서 조명이없다면 해당 위치에 뭐가있는지
플레이어는 잘알수가없어
그럼 결국 시야로 무엇을하냐가 가장 중요한거자나
그예시야
이런식으로 스킬을 사용할때 스킬경로에 아무것도없다고 판단되서 쏘면 실제로는 벽이 있어서스킬이 막히는 경우가 생기고
적같은 경우에도 시야내 에 있어야지만 보이고 가까이가면 인기척 표시로 표기를 하는거지
이런게임에 턴제이다 보니깐 이동에 제한을 있어야한다고 생각했고 이동할때, 스킬사용할때 스태미나가 소모되어서 각턴에 할수있는 행동을 제한 시켰어
이제 여러유닛이 이렇게 각자 스태미너를 소모해서 3d공간상을 움직이면서 전략적인 스킬을 사용하는데 이걸 어떻게 AI로 만드냐...
정말 뇌 터질거같더라고 그래서 일단 단계를 나눴지
기본적으로 시야를 이용하는 게임이다 보니깐 적도 시야를 보고 그거를 기억해서 움직인다 라는걸 전제하에 만들어야겠다는 생각이들더라고 그래서
첫번째로 기억력 만들기
이런식으로 적이 본인의 시야내로 움직였던 지형을 기억해 뭐 시야내로 유저케릭터를 발견하면 그케릭터 위치도 기억하는거지
이제 이기억을 바탕으로
두번째 모든 공격할수있는 스킬 종류 뽑기 (지금 내용은 복잡하니깐 대충 넘기고싶은사람 넘겨봐)
일단 스킬의 사거리를 6이라고 가정할게 내가 스킬을 사용할 유저유닛 기준으로 6칸 내에 있는 모든 블럭을 가져오는데
적 유닛이 이동해서 기억하는 기준으로 블럭을 가져와
그럼 그위치로 가야 적어도 스킬을 맞출수있다는 이야기니깐 각 블럭중에 A*알고리즘으로 갈수있는곳이 하나라도 있는지 판단을하고
거기서 스킬을 쐈을때 스킬이 맞는지 ray를 쏴서 확인 여기서는 모든 경로를 확인하는게 아니라 최소한 스킬을 맞출수있는지만 확인하는거야
이 두가지가 끝나면 적어도 해당 유닛에는 이스킬이 맞는다는 확정이 있어
이제 세번째 최적의 조합 찾기
이런식으로 각 유닛별로 사용가능한 스킬목록을 뽑아 그리고 각 스킬목록중에 어떤 조합으로 공격해야 최고의 점수를 내는지 확인하고 최고 점수를 내는 스킬 조합을 찾아내
이제 최고의 스킬 조합을 찾았으니 스킬을 사용할때 최적의 거리에서 공격하기 좋은 위치를 다시 또 찾아내서
최종적으로 행동이 결정돼
마지막 네번째 행동하기
행동 데이터를 넘기면 행동트리로 해당 행동을 하는형태야
정말 많은 버그와 자꾸 이상한 행동을하는 적AI때문에 대가리 터질뻔했지만 이제 안정화되서 플레이할수있을정도가 됐어
뭐 보면 대충 최적화 중요할거같다고 이야기 할거같은데 글에는 쓰지못했지만 나름 최적화를 하려고 노력을 많이했고 그걸 글에 담지는 못했어..
A*알고리즘부터 전부 내가 만들어서 최적화가 좀 어케 되더라고
여튼 긴글 봐줘서 고맙다
이번에 플레이엑스포참여해서 어차피 이제 공개될거 글이나 써봤어 오는사람있으면 아는척...? 까지는 아니여도 그냥 한번 방문해줘
아 욕박든 상관없으니깐 피드백 해도 돼
실제 플레이할때도 저렇게 가까이에서 맵 쏟아져내려오듯이 보이는거임?
poe2 분열된 호수 맵처럼?
https://www.youtube.com/watch?v=0mAbYZxzqlM
그런거면
좀 더 빠릿하게 생성되면 좋을것같음
ㅇㅇ맞음 여기 맵 돌아다니는 영상보면 알수있음
https://gall.dcinside.com/mgallery/board/view?id=game_dev&no=184148
아 움짤로볼때랑 다르네 굿굿
컨셉 진짜 좋아보이는듯 정확한 플레이를 봐야알겠지만 스샷으로만 보면 플레이어가 기억해둔 유리한 밝은곳 한곳에서만 전투유도해서 싸울수도있을거같은데 적이 플레이어 발견 한정으로 구역제한걸어버리는것도 나쁘지않을지도 - dc App
오옹 신비하고 기술적으로 뛰어나보인다 이런류들 게임이 플레이경험으로 이제 리뷰가 갈리더라! 마지막관문인 플레이경험이 재밋는지만 잘 챙겨서 잘됏음 좋겠다 - dc App
가장어려운걸... - dc App
개인적으로는 스킬이 벽에 막혔을 때, 벽을 하이라이트해서 잠시 막은 벽의 위치를 보여주거나 하면 좋을듯! 아이디어는 좋은 듯 재밌어보인다
약간 나는 시야가 너무 좁아서 살짝 답답해 보임. 맵생성 범위도 좁아서 그런가 한시적으로는 괜찮은데 지속적인 플레이가 저러면 피로해서 답답함을 느끼지 않을까 싶긴함
시야가 너무 좁아서 길목을 넓히든 시야각을 높이든 해야 될 듯... 아니면 플레이어 기준 밑벽은 투명도 80%로 보이게 한다던지 하는게 좋을거 같음 너무 시야가 답답해보임