티스토리 뷰
오늘은 요리 진행 시뮬레이션을 개선하는 작업을 진행했다. BIC 전시때도 느꼈고 그 이전 테스트 플레이 등에서 플레이어분들이 배치했을 때 예상한 동작과 시뮬레이션이 다르게 동작해서 답답함 혹은 의아함을 느끼시는 분들이 꽤 많았다. 요리 진행 시뮬레이션이 까다로운 부분이 많아서 일단 내버려두고 있었는데, 특성 시스템 구현을 진행하면서 어차피 시뮬레이션도 같이 손을 대야하다보니 이참에 개선 작업을 진행하기로 결정했다.
워낙 가능한 케이스가 많고 복잡하다보니 오늘은 목표에 맞춘 기반 구조를 정하고 각 요리를 진행할 적절한 요리 도구를 선정하는 것과 관련한 부분을 구현하는 것까지 만들었다. 이제 실제로 작업이 돌아가는 파트까지 만들고 열심히 버그를 고치면 되지 않을까 생각중.
바꾸는 시뮬레이션에서 중요하게 생각한 파트는 다음과 같다.
- 기존에는 남은 도구 / 남은 클론 중 가장 가까이 있는 것을 그리디하게 할당하는 식인데, 클론을 가둬놓거나 하면 이 방식으로 할당했을 경우 요리 진행이 불가능한 상황이 생긴다. 이런 식의 할당을 처음부터 피해서(즉, 모든 도구의 할당이 항상 마지막 요리 단계까지 진행이 가능할 때에만 할당) 임의의 배치에도 잘 동작하게 만들려고 했다.
- 단순 그리디하게 할당을 할 경우 요리 작업 중간에 도구의 할당에 데드락이 걸리는 상황이 있다. 이런 경우 모든 종류의 물건을 갖추고 있더라도 추가로 더 물건을 할당하지 않으면 모든 요리 동작이 멈춰버리는 문제가 있는데, 필요한 도구를 모두 갖추고만 있다면 이런 상황이 절대 발생하지 않게 도구를 할당하도록 변경.
- 요리를 진행하는 중간 과정에서 도구를 자유롭게 삭제, 추가할 수 있는 것 때문에 너무 다양한 예외 케이스가 생겨서 이 부분을 처리하는 코드가 점점 복잡해졌는데, 구조를 가다듬어서 최대한 간단한 코드 베이스를 유지할 수 있게 바꾸려고 신경을 씀.
요리 시뮬레이션 부분을 전부 갈아엎어야하다보니 꽤 시간을 잡아먹고 있는데, 게임에서 배치 파트가 가장 중요하기도 하고 이 부분에서의 자유도를 살릴 수록 게임이 재밌어지다보니 신경을 많이 써서 작업하는 중.
'개발 일지 > Programming' 카테고리의 다른 글
2023-09-11 시뮬레이션 개선(3), 새게임 UI 변경 (0) | 2023.09.11 |
---|---|
2023-09-08 시뮬레이션 개선(2) (0) | 2023.09.08 |
2023-09-05 특성 시스템 회의, 패드 작업(3) (0) | 2023.09.05 |
2023-09-04 패드 작업(2), 특성 시스템 회의 (0) | 2023.09.04 |
2023-09-01 밸런싱 툴 (0) | 2023.09.01 |