내가 게임을 본격적으로 즐기기 시작한 건 고1 때부터다. 처음엔 친구들과 게임을 하며 재미를 느끼는 게 전부였지만, 점차 랭크나 점수 시스템에 집착하면서 게임을 더 잘하고 싶다는 욕심이 생겼다.
게임을 잘 하기 위해서는 단순히 플레이하는 것만으로는 부족했다. 물론 경험도 중요하지만, 캐릭터의 스킬, 게임의 승리 조건 등 그 게임의 다양한 시스템을 이해해야 상대보다 유리한 전략을 세워 승리할 수 있다. 그렇게 게임 시스템을 분석하고 이해하다 보니, 단순히 게임을 즐기는 것이 아니라 게임 그 자체의 구조와 흐름에 흥미를 느끼게 되었다.
플레이어의 입력에 따라 캐릭터가 행동하고, 여러가지 조건이 모여 게임의 진행을 결정하는 게임 로직과 기믹에 매력을 느꼈다.
점점 그러한 시스템들에 관심을 가지게되니 이런 시스템이 좋다거나 이런 게임 플로우 방식이 맘에 든다거나 하는 생각이 머릿 속에 차올랐고, 그래서 나도 그러한 게임을 만들어보고 싶어졌다.
게임 플로우를 내 손으로 직접 만든다는 점이 굉장히 설레는 포인트였기 때문이다.
그렇게 고2 즈음에 Unity 와 C# 을 통해 게임을 만들 수 있다는 걸 알게되었고, 유튜브에 올라온 영상들을 따라하며 게임을 만들어보았다.
비록 게임의 완성까지도 이루지 못했고, 결과적으로 게임을 잘하게 됐다거나 프로그래밍을 잘하게 되거나 한 건 아니지만, 그래도 게임을 만드는 과정이 재밌다는 느낌을 확실하게 받을 수 있었다.
덕분에 게임 개발의 재미와 매력을 알게 되었고, 이 경험이 나의 진로를 결정짓는 계기가 되었다.
위의 적은 경험에 이어서, 나는 게임 플레이와 기믹, 그리고 게임 플로우를 직접 설계하고 구현하는 프로그래머가 되고 싶다.
이에 대하여 찾아보니 클라이언트 프로그래머 (Client Programmer), 그 중에서도 게임 플레이 프로그래머 (Game Play Programmer) 라는 분야를 알 게 되었다.
게임 플레이 프로그래머는 말 그대로 유저들이 게임이라고 느끼는 플레이 부분을 개발하는 프로그래머로, 플레이어의 움직임이나 게임 플로우, 기믹, 승리 조건과 같은 게임의 룰 등을 담당한다.
지금까지 진행한 팀 프로젝트가 그리 많지는 않았지만, 힘들었던 점이라고 하면 몇까지 생각나는 것들이 있다.
우선, 처음으로 깃을 사용할 때 굉장히 헤멨던 것 같다.
깃 자체를 혼자 개발을 해볼 때 전혀 사용한 적이 없었기에 캠프에 와서 처음으로 사용해 봤는데, 지금은 그나마 괜찮아졌지만 처음 사용할 때 굉장히 번거로웠던 기억이 있다.
사실 지금도 리베이스 같은 아직 모르는 기능이 많아서 협업할 때 방해가 될까 걱정이 된다.
두 번째로는 소통의 문제이다.
단순히 의사소통하는 것의 문제가 아니라 팀원 간의 조율이 필요한데, 생각보다 다른 팀원의 의견이 제대로 전달이 되지 않거나 체크를 하지 않아 개발에 차질이 생기는 경우가 있었다.
자잘한 것이라도 PM 이 제대로 게임을 어떻게 진행시켜야 할지 확실하게 해주는 편이 좋다고 생각한다.
사람마다 개개인의 일정이 있고 사정이 있기에 무조건 최대한 빠른 날짜를 데드 라인으로 잡기는 어렵다.
당연히 개발에 초점을 두는 건 맞지만, 그렇다고 다른 부분까지 배제하는 건 쉽지 않은 일이기에 서로의 일정을 확인하고 날짜를 맞춰 개발이 지연되는 게 번거로웠던 것 같다.
이전에 진행한 팀 프로젝트를 떠올리며, 협업에서 중요한 점들에 대해 생각해보았다.
당연하게도 게임을 개발해야하기 때문에 실력이 좋다면 자신이 맡은 파트는 물론이고, 더 나아가 다른 팀원의 부담을 덜어줄 수 있다고 생각한다.
각자 다른 파트를 개발한다고는 하지만 결국 같은 게임이기에 디자인이나 분위기를 맞춰야한다.
캐릭터와 애니메이션/UI 와 같이 함께 엮이는 부분이 존재하기 때문에 팀원간에 확실한 소통으로 의견을 주고 받는 일은 필수적이다.
개발을 하다 보면 중간에 개발 방향을 틀고 싶거나 어쩔 수 없이 틀어야하는 상황이 생긴다.
그럴 때마다 당황하며 어떻게 해야하는지 몰라 횡설수설하기보다는, 빠르게 그 상황에 적응하여 어떻게 수습할지 대처 방안을 떠올리는 것이 좋다.
협업을 할 때는 위에 적힌 것들도 물론 좋은 영향들을 끼치겠지만, 나는 신뢰와 책임감이 가장 중요하다고 생각한다.
아무리 개발을 잘 한다고 해도 다른 사람의 실력을 못 믿어 개발 계획을 튼다거나 하면 협력 관계에 금이 갈 수도 있다.
하지만 개발을 못 해도 책임감을 가지고 있다면, 할 수 있는 일은 다 하며 팀원들의 도움을 받아 개발을 진행해 나간다면 프로젝트 발전에 많은 기여를 할 수 있다고 생각하기 때문이다.
또한 스스로 책임감을 가지고 작업을 하면 자신이 맡은 일에 제대로 집중할 수 있기 때문에, 팀원간 신뢰와 각자의 책임감을 토대로 협업하는 것이 좋다고 생각한다.