나의 첫 게임! 애정이 깊고 참 의미있는 게임이다. 애정이 있는 만큼, 이 프로젝트에서 배운 것도 정말 많다. 첫 게임이다보니 내 실력이 가장 상승했던 게임이기도 해서 기억이 많이 난다.
- GitHub, SourceTree로 협업하는 방법을 알게 되었다.
- 나의 커뮤니케이션 능력, 업무 습관을 성찰했다.
- 맡은 일을 진심을 다해 하면 기회가 온다는 경험을 했다.
- 부족함을 원동력으로 삼아보았다.
(객체 지향 프로그래밍, Unity에 대해 한걸음 다가갔다)
협업의 기본을 알게 되다!
이 프로젝트에서 가장 강조하고 싶은 배운 점은 '협업의 기초를 다졌다'는 것이다. 처음 팀 프로젝트에 모두가 어리고 미숙했지만, 갈수록 모두가 성장하게 되었다.
이런 알 수 없는 커밋 메세지에서...
오늘 한 것들을 자세하게 정리해서 커밋메세지를 올리게 되었고,
난생 처음으로 GitHub와 SourceTree로 개발 협업을 하며 실수도 해보고 브랜치를 터뜨려 혼나기도 했다. 그 과정에서 브랜치를 나누는 법, 병합하는 법, 충돌을 해결하는 법 등등 협업에 필요한 기능들을 익힐 수 있게 되었다.
또, 게임 하나를 만들기 위해 얼마나 많은 파트들의 노력이 들어가는지 알게 되었다. 아이를 키우려면 온 마을이 필요한 것처럼, 게임도 기획, 개발, 아트들의 노력과 세세한 디테일들이 합쳐서 나오게 된다.
그렇기 때문에 개발팀원과의, 혹은 다른 파트와의 커뮤니케이션 능력 또한 성찰해볼 수 있었다. 찾아보지 않고 바로 질문을 하는 습관, 주장이 근거 없이 빈약한 점 등등. 나의 업무 습관들을 처음으로 알게 되었고 성찰할 수 있었다.
이 글에서 나오는 나의 문제점들은 거의 대부분 이 프로젝트에서 발견해서 성찰한 것이다.
맡은 일을 진심을 다해 하는 것
본래, 팀에 들어올 때 나는 사운드(작곡) + 개발 보조 담당으로 들어왔었다. 기획이 어느 정도 끝나 개발이 시작될 때, 개발 팀은 한 유튜버의 체스 게임 개발 강좌를 보고 따라해보는 과제가 있었다.
이 당시엔 워낙 코드가 어려웠고 스파게티 같은 코드라 나를 포함한 4명은 코드를 따라치는 것조차 어려워했다. 나 또한 정말 어려웠지만, 영어로 된 강의를 하나 하나 끊어서 해석하고 잘못 따라친 부분을 확인하며 며칠을 꼬박 이 과제에만 보냈다.
과제를 검사하는 날이 되자, 나는 유일하게 완강을 해 후에 메인 개발자 중 한 명으로 성장할 수 있었다. 그저 주어진 일을 했을뿐인데, 기회를 잡게 되어 뿌듯했다. 이 기점을 계기로, 학교에서 진행하는 모든 일을 진심으로 최선을 다해 '일단 하자'는 마음가짐을 가질 수 있게 된 것 같다.
노력이 결과로 보상받을 수 있는 기회가 앞으로의 학교 생활의 방향 또한 제시해주었다니... 정말 뜻깊었던 경험이었다. 주어진 일은 최선과 진심을 다하자는 마음가짐을 배울 수 있었다.
부족함을 원동력으로 바꾸는 힘
고등학교 입학 즈음에 진행했던 프로젝트라, 입학 전까지 프로그래밍의 프 자도 몰랐던 나에게 체스 게임은 너무 어려운 과제였다. 내 상황과 반대로, 우리 팀의 개발자 친구들은 모두 입학 전에 프로그래밍이나 컴퓨터적 사고를 알고 있던 아이들이었기에 내 모습이 더욱 부족해 보였다.
남들보다 부족한 내 프로그래밍 실력을 늘리기 위해 학기 초에 정말 많은 노력을 했다. 부끄러움이 많아 다른 친구들에게 도움을 잘 요청하지 않는 성격이지만, 학기 초에는 우리 팀 팀장을 달고 살 정도로 프로그래밍에 대해 정말 많이 물어보았다. 소수 구하기 코드를 이해하려고 1시간 동안 끙끙댔던 일, Unity 슈팅 프로젝트 코드를 모두 통암기했던 일, 코드 설명을 들어도 모르는 부분이 많아 눈물을 머금으며 수업을 들었던 적도 있었다. 지금 생각하면 진짜 바보 같고 비효율적인 공부 방법이긴 했지만...
나의 부족함에 좌절하지 않고 '부족하니까 더 열심히 하자'라는 마음을 가지고 17년 인생 최고로 몰입해서 공부했던 기간이다.
이런 노력을 바탕으로, 학기 초 일주일 동안 앙파상과 캐슬링을 구현해낼 수 있었다!
처음에는 확인해야 할 수많은 조건에 겁을 먹었지만, 그동안에 향상시킨 프로그래밍 지식과 컴퓨터적 사고로 특수 규칙들을 구현했다. 캐슬링을 구현할 때 체크메이트를 구현했는데, 2중 반복문과 반환형이 있는 함수를 이용해 코드를 깔끔하게 짠 게 정말 정말 정말 뿌듯했다. 이때 당시에 제일 어려웠던 게 2중 반복문과 함수였기 때문이다.
지금 보면 정말... 이루 말할 수 없이 비효율적인 코드이긴 하지만 말이다.
수많은 고뇌와 시뮬레이션 끝에 완성해낸 첫 기능이 게임의 하나의 규칙으로써 돌아가는 순간은 정말 뿌듯하고 벅차올랐다. 그 순간은 게임 개발 진지하게 업으로 생각하게 된 첫 순간이었고, 자신의 부족함을 알고 더 노력하는 개발자의 자질을 얻게 된 순간이었다.
나에게 정말 소중한 프로젝트이자, '이 게임을 완성시키고 싶다!'라는 강한 열망이 들었던 게임, 그리고 게임 개발자라는 진로에 대한 확신을 준 게임.
1학년 1학기 때 구성했던 팀과 프로젝트라 부족한 게 많다. 팀 또한 지금은 각자의 길을 걷고 있지만, 졸업작품이 끝난다면 다시 시도해보고 싶기도 하다. 그때는 게임의 단점이었던 유저편의성과 직관성, 그래픽적 완성도를 개선해서!
그리고 코드 또한 리팩토링해보고 싶다. 배운 알고리즘과 자료구조가 많아서 그때보다 훨씬 효율적이고 깔끔한 코드를 짤 수 있을 것 같다.
아쉬움도, 배운 것도 정말 많은 프로젝트였다.
'개발한 게임들 > Olympian Chess' 카테고리의 다른 글
[Project] Olympian Chess (0) | 2023.01.16 |
---|