선수 스탯 반영 오늘은 정말로 선수 스탯을 시뮬레이션에 반영하는 작업을 했다. 어떻게 돌아가는지 빠르게 구현하고 테스트해보기 위해 시뮬레이션 코드를 굉장히 엉망으로 짜놨었기 때문에 이걸 리팩토링하는 작업도 병행했다. 이제 어느 정도 시뮬레이션에 들어갈 요소와 구조의 형태가 잡혔기 때문에 이 쯤에서 한 번 코드를 고쳐놔야 이후 작업이 편해질 것 같아서. 시뮬레이션이 게임에서 가장 복잡하고 중요한 부분이라 아마 앞으로도 몇 번은 더 코드를 뒤엎을 것 같긴 하다. 기존 코드는 각 챔피언마다 적당히 간단한 행동 양식을 정해놓고 일일히 동작을 시키는 방식이었는데, 이 방식은 챔피언마다 해야 할 작업량이 너무 많고 AI 개선을 하기가 쉽지 않다. 그래서 구조를 통째로 바꿔서 Champion / Agent 두 가지를..
공사장 아르바이트 마무리 UI랑 구멍에서 나오는 사람(?)을 추가해서 공사장 아르바이트를 일단 마무리했다. 프로펠러 아이템이라거나 몇 가지 미흡한 부분이 있는데 당장 플레이에 그다지 중요한 부분은 아니라서 보류해두고 다른 작업부터 진행하려고 한다. 세세한 아쉬운 부분이나 미흡한 부분은 폴리싱 단계에서 잡는게 좋을 듯. 선수 스탯 반영 이번 마일스톤의 구현 목표는 아마추어 토너먼트 대회 진행까지의 흐름을 완성하는 것이었다. 대회가 일정대로 잘 진행되고 그 시간동안 플레이어가 할 수 있는 기본적인 동작을 몇 가지 추가하는 것. 이제 이 부분까지 완성이 되어서 플레이어가 게임을 진행할 수는 있지만, 지금 부족한 부분은 육성 요소가 전혀 없다는 것이다. 선수를 키우고 발굴하고 팀을 운영하는 기본적인 과정들이 전..
토너먼트 UI 토너먼트 진행 결과 UI를 구현했다. 구현이 좀 귀찮은 부분이 많아서 시간이 오래 걸렸다. 어쨌든 원하는 뷰대로 잘 나오긴 한다. 토너먼트 표 구현은 됐으니 이제 여기에 선수 기록 / 토너먼트 이름 등 정보를 추가하면 토너먼트 UI는 마무리. 개인 순위, 트로피 등의 요소를 추가해서 토너먼트 UI 완성. 우승할 경우 이런 식으로 트로피 위에 우승팀 이름이 나온다. 일정 UI 우선 달력 UI를 추가했다. 우리 팀 경기 일정이 어떻게 되는지 확인할 수 있는 뷰. 예전에 작업했던 달력 쪽 코드(02-06 일지 참조)를 거의 그대로 가져다 썼다. 다음으로는 내 경기 외의 다른 팀 경기도 확인할 수 있는 경기 일정 목록 뷰를 추가했다. 이것도 역시 예전 코드를 거의 그대로 가져다 썼다. 이제 이번 ..
월드맵 UI 우선 월드맵 UI를 추가했다. 숙소에서 밖에 나가면 월드맵 UI가 나오고, 여기서 외부 돌아다닐 장소를 선택해서 이동하는 걸로. 또 바깥에 나갔다가 숙소로 들어오거나 했을 때의 씬 전환을 자연스럽게 하는 작업도 같이 진행했다(돌아온 시간이 밤이면 선수들이 이미 퇴근한 상태니 숙소에 없다거나 하는 것들). 스마트폰 UI Y 버튼을 눌러 확인할 수 있는 스마트폰 UI를 추가했다. 어디에 있든 간단하게 확인할 필요가 있는 정보를 확인할 때 사용하는 UI 컨셉이다(자세한 정보 확인이나 복잡한 행동을 요구하는 UI의 경우 숙소의 컴퓨터를 사용해야만 하는 방식). 메시지 스마트폰 UI에서 메시지 확인 기능도 같이 구현했다. 아직 메시지로 어떤 정보를 줄지 등에 대한 기획이 정해지지 않은 상황이라서, 임..
메인 UI 오늘은 우선 메인 UI 작업을 진행했다. 현재 시간, 다음 경기 일정 및 가진 돈 등을 확인할 수 있는 UI다. 항상 확인해야할만한 정보들만 띄우고 더 자세한 정보는 스마트폰 UI ( Y를 누르면 스마트폰을 꺼내들어서 폰으로 정보를 확인하는 컨셉) 에서 보거나 컴퓨터 UI 에서 확인하는 방식으로 생각하고 있다. 시간은 30분 간격으로 갱신되며 아래 인디케이터로 대략적인 시간 흐름도 확인할 수 있다. 아마추어 대회 진행 그 다음으로는 아마추어 토너먼트를 생성해서 일정에 따라 토너먼트가 진행되게 했다. 경기는 항상 오후 5시에 열리게 하고, 시간이 되면 알림과 함께 경기 화면으로 이동했다가 돌아오는 형태로 구현했다. 아직 경기를 확인하는 등의 UI가 없어서 이 부분은 나중에 수정이 필요할 것 같다..
팀을 운영할 돈을 벌기 위한 미니게임이다. 아르바이트 미니게임들은 전부 고전 게임들을 패러디하는 형태로 만들기로 했고, 공사장 아르바이트의 경우 남극 탐험을 패러디했다. 최대한 그 느낌을 그대로 살리려고 노력중 구멍에 부딪혔을 때 튕기는 로직 벽돌 줍기 로직. 구멍에 부딪히면 주운 벽돌을 하나 떨어뜨린다. 도착점까지 모아간 벽돌 개수에 비례해서 돈을 받을 수 있는 형태의 미니게임으로 생각하고 있다. 여기에 뭐 좀 일찍 도착하면 거기에 비례해서 돈을 조금 더 준다거나 하는 식으로. 큰 구멍. 빠졌을 때 점프 키를 누르면 빠져나올 수 있다. 시작 ~ 끝 흐름. 결과 확인을 빨리 하기 위해 게임 길이를 임시로 줄였다. 대충 저런 대사와 함께 게임 시작 ~ 끝나면 결과에 맞춰서 돈 받고 종료 형태로 진행된다. ..
선수 선발 바뀐 기획에 맞게 초반 선수 선발하는 시나리오를 변경해서 적용했다. 선발 경기가 끝나고 난 다음의 플로우. 여기서부터 이제 본격적인 게임 플레이 시작. 선수 행동 시뮬레이션 여기서부터는 간단하게 선수 행동 시뮬레이션 작업을 진행했다. 뭐 복잡한건 아직 넣을만한 단계가 아니라서 연습하기 - 일정 시간에 한 번 화장실 가기 - 다시 연습하기의 루틴을 반복하는 걸 만들어봤다. 화장실 가는건 이미 사람이 있을 경우 문 앞에서 줄 서는 것까지. 일정 시간마다 두 가지 동작을 단순 반복하는 거긴 한데 일단 이걸로도 꽤 보는 재미가 있는 것 같다. 선수 시뮬레이션은 일단 이렇게 해 두고 이제 플레이어 입장에서 할 수 있는 선택지(노가다로 돈 벌기) 및 시간 흐름 등을 구현해볼 예정.
우선 타일셋을 이용해 첫 숙소 구도를 잡고 돌아다니는 걸 구현했다. 아직 충돌 처리가 없어서 벽을 마음대로 통과 가능. 일단 이런 충돌 처리랑 어색한 부분들을 수정한 다음 NPC 길찾기가 가능하게 손 볼 예정. 충돌 처리 충돌은 일단 위 이미지처럼 collider를 세팅할 수 있는 레이어를 하나 두고 손으로 하나씩 충돌 영역을 지정해주는 것으로 처리했다. 같은 타일이라도 어떤 곳은 이동이 가능해야하고 어떤 곳은 이동이 안 되어야해서 그냥 수동으로 해주는게 제일 낫겠다는 생각이 들었기 때문이다. 그래서 충돌 처리를 모두 적용한 다음 이동 테스트. 생각한 것처럼 잘 동작한다. 오브젝트 앞뒤 처리 같은게 아직 좀 아쉬운 부분이 있는데 이건 처리하기 귀찮은 거에 비해 당장 게임 플레이에 미치는 영향이 너무 적어..
닌자 닌자는 순간이동해서 상대를 타격하는 스킬을 사용하게 했다. gif에서처럼 근접 공격을 무시하고 바로 이동해서 원거리 딜러를 타격하기 때문에 상대 원거리 딜러를 카운터칠 수 있는 형태의 챔피언이 되는 걸 의도하고 만들었다. 기사 기사는 상대 캐릭터를 하나 도발하는 스킬을 사용한다. 도발에 성공할 경우 기사는 도발이 걸려있는 시간동안 방어력 버프를 획득. 상대 주요 딜러가 자신에게 데미지를 넣게 만들어서 아군 딜러를 보호하는 역할을 수행할 수 있게 의도했다. 프리스트 프리스트는 일정 시간동안 유지되는 공격속도 버프 실드를 부여하는 스킬을 사용한다. 이걸로 챔피언 스킬은 전부 마무리. 이제 게임 시뮬레이션 쪽은 충분히 게임 플레이를 테스트할 만큼 작업이 되어서 시뮬레이션 외부 개선 작업을 진행했다. 팀 ..