게임 개발 학습 과정에서 자신이 가장 재미있었거나 자신 있게 설명할 수 있는 부분이 있다면 설명해주세요.
내 답:
저는 게임 개발 학습 과정에서 적들의 행동을 설계하고 그대로 기능을 구현해보는 것이 가장 재미있었습니다. 적의 투사체 종류에 따라 플레이어에게 유도되는 투사체를 만들기 위해 오브젝트가 나아가는 방향과 플레어의 캐릭터의 위치까지의 벡터를 Slerp를 이용해 완만하게 꺾이도록 구현했었는데, 이 때 플레이어가 확정적으로 맞지 않게 하기 위해 많은 고민을 했었고 기능 구현에 성공했을 때 굉장히 재밌었습니다.
포트폴리오에서 본인이 담당한 부분이 무엇인가요?
내 답:
유닛 생산과 유닛의 능력치를 업그레이드 하는부분, 그리고 이를 위해 게임 내 화폐를 얻고 소비하게 되는 로직을 UI로 이어주는 작업을 주로 담당했습니다. 이 때는 화폐를 담당하는 스크립트를 싱글톤으로 두고 각각의 UI에서 이벤트 구독을 통해 화폐가 보여지는 모든 곳에서 동일하게 화폐에 대한 업데이트가 이루어 질 수 있도록 코드를 구성했습니다.
만약 본인이 개발한 것을 다시 개발한다면, 어떻게 개선할 것인지 설명해주세요.
내 답:
항상 절차식 튜토리얼이 부족하다고 느꼈습니다. 처음 플레이 하는 유저도 게임의 조작법을 쉽게 익힐 수 있도록 게임 화면에서 실제 게임을 하듯이 절차적으로 게임 조작 방법을 알려주는 시스템들을 모든 게임에 넣고 싶습니다.
본인이 활용하는 디버그 방법을 설명해보세요.
내 답:
비쥬얼 스튜디오의 중단점을 주로 활용합니다. 프로젝트를 경험해보니 오류메세지가 안 뜨는 버그들이 점점 나타나기 시작했습니다. 해당 버그가 나타나는 경우를 최대한 상황을 한정지어 찾을 수 있도록 여러번 반복해보고, 의심되는 부분에 중단점을 찍거나 조건부 중단점을 찍어서 그 결과나 호출스택을 확인해보았습니다.
협업하면서 가장 어려웠던 점이 무엇인가요?
내 답:
서로 맡아서 시행한 기능 구현들이 합치려고 보니 서로 연결해주기 까다로운 부분이 많았습니다. 아무래도 각자 개인이 구현하려 했던 것만 생각해서 코드를 짜다보니 이런 현상이 많이 생겼는데, 미리 전체적인 게임 코드 구조를 생각하고 이를 어떻게 설계할지 많은 토의가 필요했었던 것 같고, 계속 실력을 키워나가면서 차차 이런 경우가 줄어들지 않을까 싶습니다.
구현하면서 기술적으로 어려웠던 부분을 어떻게 해결하였나요?
내 답:
팀원들과 상의하거나 검색을 통해 해결했습니다. 캠프에 참여하면서 들었던 키워드나 여러가지 기능 사용 방법들을 기억해 내서 이를 토대로 검색을 하면 조금 더 쉽게 정답에 가까워 질 수 있었던 것 같습니다.
Git Repository를 팀원들과 공동으로 작업하면서 발생했던 문제점이 있다면 무엇이었는지, 어떻게 해결하였는지 이야기해주세요.
내 답:
초창기에는 동일한 씬에서 작업을 한 게 많아서 conflict가 발생하는 경우가 잦았습니다. 나중에는 협업을 할 때 씬 분리를 철저히 하고, 스크립트 사용의 경우에도 담당자와 미리 얘기를 하고 수정을 요청하거나 직접 수정을 했기에 일반적인 conflict가 발생하는 일은 적었지만, 분리된 씬들을 하나로 합치는 작업이 필요했습니다. 이를 위해 팀 회의가 끝나고 화면 공유를 하면서 서로 작업한 내용들이 메인 씬에 올바르게 들어올 수 있도록 서로 얘기하면서 풀어나갔습니다.