이번에는 개발하는데 시간이 좀 걸렸다..

중간에 게임잼이 있었기도 했고

이번 만들어야 되는것도 만만치 않았던거라..



a15714ab041eb360be3335625683746f07534521d6a6ef89d73467f69c16cd6ef249a49c46a13f97169a20d62cd9


이번 만든 시스템이 대부분의 게임에는 필수지만 만들기는 까다로운 대사창, 인벤토리 관련 내용이었다...

대충 만들면 그닥 어려운 기능이 아니겠지만

이번에는 긴 개발기간을 염두해서 지속 가능한 코드를 만들어야 하기도 하고, 자잘한 연출이나 애니메이션이나 사운드등을 다 넣으려 하니까

많이 까다로운 작업이기도 했다.




a15714ab041eb360be3335625683746f07534521d6a6ef89d73762f4991dcd6e924cd3e0e4378c6479037cf5931c


특히 대사창중에 플레이어가 답을 선택할 수 있도록 하는 선택지 기능을 만들었는데

이게 하드코딩으로 때려박는다고 되는게 아니라 나중에 자주 나오기도 하고 확장성도 생각해 두어야 했다.




a15714ab041eb360be3335625683746f07534521d6a6ef89d73467f59e11cd6e897e10a0d8d31941347ce1f7f190


그래서 생각해낸게 대사창, 아이템 지급, 돈 지급, 타임라인(컷씬) 재생정보를 전부 스크립터블 오브젝트로 만들어서 인스펙터에서 편집하게 만들 수 있게 하고

얘네들을 오버라이딩이 가능한 IEnumerator를 이용해 편집한 내용을 순차적으로 재생할 수 있게 만들었슴

앞으로도 새로운 시퀀스를 만들고 싶으면 시퀀스 베이스를 상속해서 계속 간단하게 만들 수 있을거라고... 아마.. 예상됨..



그리고 항상 이런걸 만들때 명심하는거는 정보를 표출하는 부분(UI 텍스트 같은거)과 정보를 담아두고 처리하는 부분(현재 인벤토리 정보 같은거)을 철저히 나누고 면밀한 통제 하에 정보교환이 이루어지게 만들어야 되는게 중요하다는거
확실히 이걸 생각해두면서 만드니까 시스템이 복잡해질수록 크게 빛을 발휘함

이걸 뭐 MVC인가 MVP패턴인가 뭐라 한다긴 하는데 그거까진 모르겟고 좋다는 것만 알아야겠다ㅎㅎ....



아무튼 나름 큰 고비가 될 수 있었던 시스템이 생각보다 잘 풀려서 기분이 좋으다.

시스템쪽은 뼈대는 만들었으니, 아마 이제부터는 컨셉 껍데기만 존재하고 있던 게임 기획을 구체화 하는 일에 집중할 것 같다.


바이브