![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bggCd5/btqDaUVosnT/T6TR9tDqNhu9nqvjMIzRMk/img.png)
팀 정보 UI 팀 정보를 확인하는 UI 추가. 화분등의 오브젝트를 설치하면 선수단 분위기에 영향을 끼치는 것으로 기획했다. 선수단 분위기가 높으면 전반적인 능력치 향상 등의 버프가 있는 것으로. 문 방과 방 사이에 문을 추가하는 기능을 넣었다. 아직은 크게 쓸모가 없지만, 나중에 문을 기준으로 숙소를 여러 방으로 구분한 다음 방 단위로 동작하는 기능 혹은 효과들을 넣을 예정. 문은 근처에 사람이 있으면 자동으로 열리고 닫히게 했다. 수동으로 열고 닫으면 너무 불편하고 귀찮기도 하고, 고려해야할 예외도 좀 많아지는 것 같아서. 벽, 문 등을 설치하고 보니 캐릭터 움직이는게 벽에 걸려서 좀 답답한데 이거 미끄러지듯이 움직이게 해서 조작감 개선하는 것도 넣어야할 것 같다. 땅 확장 커스터마이즈에서 마지막으로 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dxvB0t/btqC5alwrIS/70V2lVBDvkJ5CFVjA3OGrk/img.gif)
배치 가능 여부 인디케이터 오브젝트 배치할 때 간단하게 해당 위치에 배치가 가능한가(+ 그 오브젝트가 차지하는 공간이 얼마인가)를 나타내는 인디케이터를 추가했다. 근데 이미 배치된 애들이 차지하는 크기를 확인하기가 애매해서, 나중에 이미 배치된 애들이 차지하는 영역도 보여주는 기능을 추가해야할 것 같긴 하다. 칠판 훈련용 칠판도 변경. 원래는 제자리에서 설명을 듣는 거였는데, 숙소 커스터마이즈가 되면서 칠판이 어디에 있는지, 선수가 어디에 있는지 통제를 할 수가 없게 돼서 변경이 필요했다. 칠판에서 훈련 기능을 사용하면 선수들이 칠판 근처로 오고, 모든 선수가 모이면 설명(=훈련)을 시작하는 형태. 효과 반영 기존에 있던 트레이닝 효과들도 반영했다. 그리고 선수들과 대화 등 기존의 기능도 사용 가능하게 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bh58tm/btqC49Nphk2/JMHwbEGblWOFtyyJCqXFc0/img.gif)
선수 행동 시뮬레이션 이번엔 선수 행동 시뮬레이션을 만들었다. 선수 시뮬레이션의 경우 원래는 숙소에 있을 때만 진행되었고 굉장히 한정된 형태로만 일어났었는데, 숙소 커스터마이즈가 들어가면서 많은 변화가 생겼다. 일단 플레이어가 어디에 있든 시간 흐름에 따라 숙소에서의 시뮬레이션은 일관된 형태로 흘러가며, 커스터마이징 과정에서 추가할 수 있는 여러가지 오브젝트들(러닝머신, 탁구, 안마의자 등의 휴게 시설 이용등이 있음)을 자연스럽게 사용하는 루틴등도 구현할 필요가 있었다. 카이로 소프트 게임에서 캐릭터들이 돌아다니며 상호작용하는 형태를 생각해보면 될 듯. 어쨌든 그래서 게임 백엔드에서 항상 분 단위 시뮬레이션을 돌리는 형태로 구조를 바꿨다. 매 분마다 숙소의 모든 선수 / 스탭 등이 행동을 결정하고 움직이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bue83q/btqC3p3Mk9w/Wa2GKqWibyW2rhjeXzQ3g1/img.gif)
채용 공고 채용 공고를 보내고 -> 선수들 도착 -> 경기 보고 선발 -> 아마추어 대회 등록 까지의 루틴을 구현했다. 채용 공고에 이어지는 과정은 이전에 만들어 둔 것과 완전히 동일. 이제 예전에 플레이 가능하던 부분까지 이어서 게임할 수 있다. 연출이라거나 자잘자잘한 부분에서 완성도 낮은 부분들이 있는데 이건 일단 내버려두고 다른 걸 먼저 진행한 뒤 4월 말쯤 한 번 폴리싱을 하며 가다듬을 예정. 그리고 이걸 구현하는 과정에서 시간 시뮬레이션과 관련된 코드들의 리팩토링 작업을 같이 진행했다. 게임 속에서 특정 시간이 되면 발생해야하는 이벤트들이 굉장히 많은데, 이 부분을 원래는 좀 주먹구구식으로 처리하고 있다가 슬슬 시스템을 정비해야할 필요가 있을 것 같아 구조를 쭉 고쳤다. 중요한 점이 1. 시간에..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/oDvW5/btqC0K0lC07/szxcJ11aLwuDT0MveJIOLK/img.gif)
오브젝트 작업 게임 진행에 필요한 오브젝트들을 만들어야하는데, 오브젝트 충돌 처리 쪽을 만들다보니 수정해야 할 부분이 좀 많았다. 원래는 타일에서 block되는 영역도 타일 사이즈와 일치했는데, 오브젝트의 경우 좀 더 세세한 충돌 범위 설정이 필요해서 한 타일을 4개로 쪼개(2x2 사이즈) block되는 영역을 설정할 필요가 있었다. 그래서 이 부분을 전부 수정해주고, 또 오브젝트가 향하고 있는 4방향 각각에 대해 지정해줘야하는 충돌 영역도 조금 달라서 이걸 방향마다 설정할 수 있게 하는 시스템을 만드는 등의 작업도 필요했다. 이동 테스트해본 결과. 대충 원하는 느낌으로 동작한다. 상점 튜토리얼 맨 처음 상점에서 물건을 사서 배치할 때에는 오른쪽에 창을 띄워서 플레이어가 사야하는 물품의 종류 및 개수가 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ch0fQh/btqCU7W9sD8/O6FBo23i30BwbUeLdbuLEK/img.gif)
초반 플로우 작업을 하기 전에 건축 사무소 / 상점 장소 구현을 먼저 진행했다. 건축 사무소 상점 이제 필요한 장소들은 구현했으니, 변경된 초반 게임 흐름을 구현할 차례. 길찾기 커스터마이징한 숙소 기반으로 길찾기가 잘 동작하는지 테스트. 새로 모듈을 만들려고 했는데 기존에 만들어놨던 모듈도 길찾기 호환이 잘 돼서 그냥 기존에 만들었던 걸 일단 가져다 쓰기로 했다. 숙소 사이즈가 커지거나 복잡해지면 성능 문제가 생길 수 있을텐데, 이건 진짜 문제가 된다 싶을 때 건드리는게 나을 것 같다. 시작 이제 텅빈 숙소에서 시작한다. 게임을 시작하면 먼저 팀 운영을 위해 필요한 아이템들을 상점에 가서 구매 => 배치하는 걸 진행해야 한다. NPC 추가 건축사무소, 상점에 각각 NPC들을 추가했다. 이 NPC들을 통..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bxk224/btqCVEGCmI2/6ioUveyqllneeDYJEnJ2U1/img.gif)
숙소 씬 적용 어제 작업한 collider까지 적용해서 숙소 씬을 변경했다. 그동안 작업했던 숙소 기능들은 전부 제거됐다. 이제 오브젝트 배치한 거 기반으로 동작하게 전부 다시 작업해야 하고, 튜토리얼 포함한 초반 플로우도 변경되어서 이 부분도 재작업할 예정. 오브젝트 구매, 배치 아이템 구매 + 배치 쪽 작업도 진행했다. 오브젝트 제거를 그냥 구매 상태에서 B 누르면 가능하게 했는데, 철거 항목을 따로 두고 철거를 이용해야 제거되는 편이 더 좋은 것 같다. 나중에 수정해야 할 듯. 그리고 해당 오브젝트를 배치 가능한 위치인가(+ 그 오브젝트가 몇 칸을 차지하는가)를 잘 알려주지 않고 있어서 이 부분도 고쳐야할 것 같다. 재배치 다음으로 기존에 오브젝트 배치되어있던 것의 위치를 바꾸는 기능을 구현했다. ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cv3hR8/btqCVDmOsEs/UEPhhlAkjgU4QuPCDMXW5k/img.gif)
타일 / 벽 고르기 어제 하던거에 이어 커스터마이즈 쪽 UI 작업을 진행했다. 이제 원하는 타일 / 벽을 골라서 배치하는 건 모두 가능. undo / redo undo / redo 기능 구현. 편집할 때 아무래도 undo, redo가 없으면 불편해서 추가했다. 버튼을 꾹 누르면 쭉 취소하는건 넣을까 말까 고민중. undo, redo는 보통 그런 용도로는 잘 안쓰니 필요 없을 것 같기도 하고.. 비용 산정 편집을 하자마자 돈이 나가는게 아니라, 이렇게 저렇게 바꿔보고 최종 결정을 내릴 때 돈이 나가는 방식이라 기존 형태에서 어떻게 바뀌었느냐에 따른 비용 산정이 필요하다. 위 GIF처럼 우측 하단의 총 비용 란을 통해 해당 변경 사항을 적용했을시 얼마의 비용이 필요한지 확인할 수 있고 / 확정하기(menu ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dad4Kx/btqCWcCaFar/BxU2rpO7O0McgOYLnCnA5k/img.gif)
숙소 커스터마이즈 오늘부터 숙소 커스터마이즈 관련 기능 작업을 시작했다. 숙소의 경우 1. 10x10 타일 사이즈로 땅을 원하는 만큼 원하는 위치에 구매할 수 있어야 하며(기존에 구매한 영역과 연결은 되어 있어야 함) 2. 벽과 바닥 타일을 원하는 형태로 수정 가능해야 하고 3. 여러가지 오브젝트를 설치 가능해야 한다 는 조건을 갖고 있다. 이 때 1번 조건으로 인해 사용자가 땅을 어떤 형태로 살 지 알 수가 없고 이 때문에 전체 맵을 단순한 배열에 저장하는 것은 불가능해진다. 그렇다고 전부 dictionary에 박아버리면 타일 개수가 엄청 많을텐데 이거대로 효율이 떨어진다. 이런 경우 적당한 사이즈의 chunk로 분할해 각 chunk는 배열 형태로 관리하고 chunk들의 관계는 dictionary 등으..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bGpT87/btqCOzsikoh/K2tErhmPz70B3uY1zhFrlK/img.png)
세미프로 리그 진행 아마추어 대회를 우승한 후 팀원 보강(3명 채우기)을 할 경우 세미 프로 리그에 참여하게 되는 플로우를 구현했다. 토너먼트 & 리그가 모두 동작하게 변경하려고 하다 보니 고쳐야할 부분이 꽤 많아서 작업이 시간을 오래 잡아먹었다. 일단 이제 아마추어 ~ 세미프로 리그로 진행되는 흐름은 전부 플레이가 가능해졌다. 이번 주 마일스톤은 이걸로 마무리. 기획적으로 숙소 관리와 관련된 부분이 크게 바뀌어서 다음 주부터는 이 부분 작업을 진행할 예정이다. 원래는 고정된 형태의 숙소로 구성되고 돈을 벌면 다음 숙소로 이전하는 정적인 형태의 기획이었는데, 커스터마이징을 자유롭게 할 수 있는 편이 더 재밌을 것 같아 이쪽으로 기획이 변경되었다. 숙소에서 어디가 방이고 어디가 복도인지와 같은 구조 변경,..