숙소 커스터마이즈 오늘부터 숙소 커스터마이즈 관련 기능 작업을 시작했다. 숙소의 경우 1. 10x10 타일 사이즈로 땅을 원하는 만큼 원하는 위치에 구매할 수 있어야 하며(기존에 구매한 영역과 연결은 되어 있어야 함) 2. 벽과 바닥 타일을 원하는 형태로 수정 가능해야 하고 3. 여러가지 오브젝트를 설치 가능해야 한다 는 조건을 갖고 있다. 이 때 1번 조건으로 인해 사용자가 땅을 어떤 형태로 살 지 알 수가 없고 이 때문에 전체 맵을 단순한 배열에 저장하는 것은 불가능해진다. 그렇다고 전부 dictionary에 박아버리면 타일 개수가 엄청 많을텐데 이거대로 효율이 떨어진다. 이런 경우 적당한 사이즈의 chunk로 분할해 각 chunk는 배열 형태로 관리하고 chunk들의 관계는 dictionary 등으..
세미프로 리그 진행 아마추어 대회를 우승한 후 팀원 보강(3명 채우기)을 할 경우 세미 프로 리그에 참여하게 되는 플로우를 구현했다. 토너먼트 & 리그가 모두 동작하게 변경하려고 하다 보니 고쳐야할 부분이 꽤 많아서 작업이 시간을 오래 잡아먹었다. 일단 이제 아마추어 ~ 세미프로 리그로 진행되는 흐름은 전부 플레이가 가능해졌다. 이번 주 마일스톤은 이걸로 마무리. 기획적으로 숙소 관리와 관련된 부분이 크게 바뀌어서 다음 주부터는 이 부분 작업을 진행할 예정이다. 원래는 고정된 형태의 숙소로 구성되고 돈을 벌면 다음 숙소로 이전하는 정적인 형태의 기획이었는데, 커스터마이징을 자유롭게 할 수 있는 편이 더 재밌을 것 같아 이쪽으로 기획이 변경되었다. 숙소에서 어디가 방이고 어디가 복도인지와 같은 구조 변경,..
선수 영입 프로세스 어제 작업에 이어 계속 선수 영입쪽 프로세스를 만들고 있다. 위 gif처럼 제의를 보낸 뒤, 일정 시간이 지나면 선수로부터 응답이 온다. 이 응답이 거절인 경우 해당 영입 제의는 실패한 것이고, 성공한 경우 카페에서 언제 선수를 만나 협상을 진행할 것인지 시간이 나온다. 그 시간에 맞춰서 카페에 가면 선수를 만나 협상을 진행할 수 있고, 그 결과에 따라 영입 여부가 결정된다. 약속을 잡은 후 카페에 가면 선수 영입 협상을 할 수 있다. 약속 시간에 너무 늦을 경우 영입은 파투. 협상 과정은 아직 정확하게 기획을 정하지 않아서 대충 시간 맞춰 가면 무조건 영입 성공하는 걸로 해뒀다. 이런 식으로 약속 시간에 맞춰 카페에 가면, 선수가 오고 선수에게 말을 걸면 협상 과정을 진행할 수 있다..
스탯 표기 변경 육각형에서 게이지 형태로 스탯 표시를 변경했다. 확실히 게이지로 표기하는게 좀 더 알아보기 편한 것 같다. 영입 명단 영입 명단을 통한 선수 접촉 기능을 구현했다. 선수를 뽑는 루트는 총 3가지로 기획중인데, 영입 명단은 매일매일 갱신되며 잘 지켜보고 있다가 괜찮은 선수와 접촉 + 협상해서 선수를 영입하는 가장 기초적인 방식의 영입. 모집 공고의 경우 트라이 아웃 같은 개념으로 공고를 낸 후 경기를 지켜보고 괜찮아 보이는 선수를 선발하는 방식이다. 스카우터 파견은 좀 더 큰 비용을 들여 해외 등에서 뛰어난 선수를 발굴해 영입하는 형태. 카페 카페 장소도 구현. 아직 타일만 배치해놔서 휑하다. 각종 약속을 잡고 만나는 이벤트들을 모두 카페에서 진행할 예정이다. 위의 영입 명단 같은 경우도 ..
밴픽 스왑 밴픽 스왑 기능을 추가했다. 각 선수에게 그 선수가 잘 다룰 수 있는 적절한 챔피언을 배정해주는게 전략상 굉장히 중요한 부분이다. 상대팀 AI도 스왑 고려해서 밴픽 로직을 바꿔줘야 하는데 이 부분은 좀 나중으로 미뤘다. 챔피언 정보 하는 김에 밴픽 화면에서 챔피언 정보 보는 UI도 마저 작업했다. 다른 거는 작업하기에 시간이 좀 애매하기도 하고 이왕 하는거 깔끔하게 끝내두는게 좋을 것 같아서. 정보창에서 아래쪽 한 줄이 비어있는데 이거는 나중에 궁극기 추가되면 궁극기 관련 정보가 들어갈 예정이다. 솔로랭크에서 연습할 챔피언 고르는 화면에서도 챔피언 정보 볼 수 있게 추가.
오늘은 3v3을 위한 챔피언 추가 작업을 진행했다. 광전사 체력이 많을 수록 약하고, 체력이 떨어질 수록 점점 더 강력해지는 형태의 챔피언이다. 체력이 40% 이하로 내려가면 기본 공격에 넉백 + 약간의 흡혈이 생긴다. 체력이 떨어졌을 때 빠르게 컷할 수 있는 원거리 or 암살 챔피언을 가져가지 않으면 까다로운 형태의 챔피언을 생각하고 만들었다(+ 넉백을 통한 상대 근접 카운터). 얼음술사 슬로우 + 빙결이 컨셉인 유틸리티형 마법사 캐릭터. 두 가지 효과 모두 광전사를 카운터치기 아주 좋다. 저격수 저격수는 긴 사거리 + 강력한 데미지 + 느린 공격 / 이동속도를 컨셉으로 하는 원거리 캐릭터다. 탱킹과 어그로 관리가 충분하다면 안정적인 딜링을 뽑을 수 있다. 마검사 물리 근접 + 마법 원거리 챔피언. 원..
선수 대화 선수와 대화 기능을 추가했다. 선택지 중에 일단 대화하기 및 솔로 랭크까지만 우선적으로 구현할 예정. 솔로 랭크는 특정 챔피언의 숙련도를 높이는 기능을 하며 어떤 챔피언을 위주로 연습할지를 고를 수 있다. 솔로 랭크 주 연습 챔피언을 위 gif와 같은 방식으로 설정할 수 있다. 솔로 랭크 관전에서는 실제로 해당 플레이어가 해당 챔피언으로 플레이하는 경기를 관전할 수 있는데 이건 다음 마일스톤에서 구현할 예정. 당장 육성 관점에서는 어떤 챔피언을 연습할지가 중요하지 그걸 직접 관전하는 기능이 중요하지는 않기 때문이다. 3v3 다음 주에는 세미 프로 리그(아마추어 토너먼트 다음 대회) 진행을 추가할 예정인데 여기부터는 3v3 이라서 인게임 3v3이 가능하게 수정하는 작업을 미리 해뒀다. 확실히 2..
선발 UI 선수 선발 UI를 적용했다. 기능상 달라진 건 없고 그냥 바뀐 UI와 흐름에 맞춰 수정만 했다. 연습 경기 그리고 연습 경기 추가. 외부 스크림의 경우 타팀과 경기, 내부 스크림의 경우 팀 내에서 자체적으로 갖는 연습 경기다. 외부 스크림은 같은 대회를 참가하고 있는 팀들 중에 랜덤하게 몇 팀이 나타나고 그 중에 경기할 상대를 고르면 된다. 연습 경기를 통해 선수의 챔피언 숙련도를 높일 수 있고, 내 전술이 생각대로 동작하는지 등을 테스트해볼 수 있다. 연습 경기는 공식전이 없는 날에만 진행할 수 있으며 + 너무 늦거나 이른 시간대(선수가 출근하지 않은 시간대)에는 할 수 없게 해 두었다. 이제 훈련 & 연습 경기를 이용한 초반 선수 육성 + 전술 테스트가 모두 완성. 여기에 추가로 경기에서 ..
시뮬레이션 유닛 테스트 경기 시뮬레이션이 제일 중요하고 복잡해서 처음 코드를 짤 때부터 테스트 코드 작성하기 쉽게 하는 걸 의도하고 구조를 짰었다. 문제는 각종 데이터 세팅을 Scriptable Object를 이용해서 했는데 이게 유닛 테스트 쪽에서 간단하게 불러올 방법이 전무하다는 점.. 한참 이것저것 고민하다가 결국은 Resources.Load를 쓰는 방향으로 임시 타협했다. Resources는 안 쓰고 싶은데 이걸 안 쓰고는 간단하게 불러올 만한 방법이 딱히 없었다. 일단 테스트할 때만 Resources를 쓰고, 개발이 끝난 다음에는 그냥 일반 폴더로 옮겨서 빌드하고 Resources는 버리면 별 문제 없을 것 같아서. 그래서 이렇게 고치고 유닛 테스트하자마자 나를 괴롭히던 짜증나는 버그 두 개를 ..
선수단 UI 선수단을 확인할 수 있는 UI를 작업했다. UI를 만들면서 챔피언 숙련도 표시 및 플레이어 초기 스탯 생성 개선 작업을 진행했다. 원래 생각했던 육각형 스탯이 초반부 선수 스탯이 아주 낮을 때 보기 너무 안 좋아서 직선 게이지 형태로 바꿀까 고민중. 그리고 챔피언 숙련도를 넣고 플레이해보니 밴픽 느낌이 좀 많이 달라진다(내 선수들 숙련도 있는 픽 가져가야 하니까). 문제는 위 gif에서 처럼 두 선수의 챔프 폭이 겹치는 경우 겨우 3개의 챔피언만 숙련도 효과를 얻을 수 있는데 이게 좀 답답하게 느껴지기는 한다. 초반부니까 그다지 상관없나 싶기도 하지만.. 훈련 UI 선수 스탯 향상을 위한 훈련을 진행하는 기능을 추가했다. 이제 드디어 선수 훈련 & 정보 확인이 가능해져서 경기가 없는 시간을 ..