total_activ
방탈출 게임 제작_2021.4 본문
작년 4월에 시작한 첫 1학년 팀프로젝트었다.
동아리를 들어가서 1학기 내내 4개의 지옥같은 스터디를 진행하면서 시작한 동아리 자체내의 흔치않은 첫 기회었다. 1학년인데도 손쉽게 팀을 모아 프로젝트를 계획할 뿐만아니라 주제조차 자유로웠기 때문에 새내기인 나에게 있어서 너무나도 좋은 기회라고 생각했다. 물론 팀을 모으는데 있어서 너무나도 큰 문제들이 많았다.
코로나 시대로 모든 수업이 비대면이고 동아리 활동조차 비대면으로 진행되면서 동아리 29기 동기들과 한번도 개인 톡등 사적인 만남을 가지지 못했다. 그 와중에 내가 친분이 하나없는 동아리원들에게 직접 팀원 의사를 물어봐야하는 것이었다.
실제로 팀프로젝트 계획서 제출 하루전까지 한팀도 1학년에서 나오지 않아 윗 선배님들조차 당황한 상태었다. (참고로 우리 기수는 20명정도였다)
그때 내 성격은 소심한 편이었다. 하지만 욕심과 의지가 있었고 나에게 있어서 첫 프로젝트로 좋은 기회었기에 용기를 내서 기수 기장에게 개인 톡으로 팀을 만들고 싶다는 의사를 보냈다. 다행이도 기장도 참여의사가 분명했고 기장과 함께 한팀이 되어 우리 동기 톡방에 팀원을 구하는 글을 올렸다. 이렇게 우여곡절 끝에 5명의 팀원을 모았다.
우리가 주제를 방탈출 게임으로 정한 이유는 분명했다. 솔직히 1학년 1학기를 끝내지도 않았고 C언어 조차 배우고 있는 상태에서 우리가 할수 있는 일은 "기초를 다지자"였다. 우리 모두 프로그래밍의 기반이라고 생각한 C언어를 익숙하게 다루자라는 목표하나로 게임을 제작하기로 했다. 지나가는 사람이 봐도 '정보보호학과'라는 소확회에서 게임을 만든다니 웃을수도 있다. 하지만 보안에 대한 기초 지식조차 없던 우리에게 프로그래밍 언어의 기초라도 탄탄히 하겠다는 의지는 우리 팀원 모두 진지했다.
게시판 내에 기획서는 다음과 같다
아직 배우고있는 C언어를 대상으로 게임을 만들려고 했기에 많은 어려움이 있었다. 대표적으로 방향키 조작 코드 구현이다. 구글링을 통해서 처음에는 다양한 게임 코드를 분석하여 방향키 조작 코드를 가져왔다. 하지만 여러 코드를 가져왔기에 많은 논리적, 문법적 오류가 있었다. 처음 다른 사람의 긴 코드를 봤기 때문에 정확한 판단 없이 무분별적으로 가져왔던 것이다. 위아래만 방향키가 된다거나 아예 동작조차 안하는 등의 온갖 오류가 나타났다. 몇달동안 조금의 결과물 없이 진행됐다.
이와중에 5명의 팀원중에 2명의 팀원이 동아리에서 나갔다. 갑작스러운 상황에 정말 앞길이 막막했다. 하지만 우리는 톡방에서 3명이서라도 똘똘 뭉쳐서 어떻게 서든 이 게임을 완성시키자고 소통했고 지금껏 비대면으로 이루어졌던 팀프로젝트를 대면과 혼합하면서 다같이 노력했다. 이렇게 삽질을 많이 해서인지 여러 코드를 봐서 인지 어떤 느낌으로 게임이 만들어지는지에 대한 틀이 보였고 처음서부터 모든것을 우리가 구현하지 않았지만 몇개의 함수를 통해 직접 구현하기 시작했다.
정말 투박하고 간결한 코드었지만 더이상 오류도 문제도 생기지 않았다. 한편으로 지금까지 고생한 방향키의 대한 어려움에 어이가 없으면서도 정말 뿌듯했다. 이 기점을 시작으로 우리는 빠르게 코드를 구현할수 있었다.
물론 수탄하지는 않았다. 방향키 코드 이외에도 미로 구현 코드에서도 문제는 있었다. 우리는 미로상에서 플레이어가 열쇠를 먹고 탈출구로 가는 게임을 생각했다. 그래서 미로를 구현할 때 그냥 유니코드 네모를 사용하여 수동적으로 하나씩 집어넣어 출력되도록했다. 하지만 간과한 사실이 있었다. 플레이어가 그 미로를 뚫으면 안됐고 사라져서도 안됐다. 우리가 구현한 코드는 이 두 문제를 동시에 가졌다. 정말 긴다면 긴시간동안 만든 미로였기에 우리는 뒤엎기 싫었고 이 미로 코드에서 해결한 방안을 찾을려고 일주일 가량을 쏟았다. 하지만.. 우리는 방법을 찾을 수없었다. 우리의 코드는 변수를 이용한 것도 아니었으며 유니코드에 해당하는 네모는 어떠한 것으로 플레이어가 통과할수 없게 하는 함수는 없었기 때문이다. 결국 우리는 코드를 뒤엎었다. 처음보는 배열을 사용하기로 했고 우리가 원하는 미로를 다시 만들기위해 1과 0으로 된 배열을 손수 입력했다.
이 세개의 고난이 전부가 아니다. 우리에게 있어서 너무 나도 많은 시련는 있었다. 하지만 이 모든 어려움을 극복할수 있었던것은 우리가 가는 길에 의심을 하지 않고 포기를 하지 않고 공부하고 찾았봤다. 또한 우리의 길이 틀렸더라도 절망하지 않고 다른 길을 모색하여 팀원들 모두 힘내었다.
이 팀플은 취업에 도움이 되지는 않을거다. 하지만 이 티스트로에 적는 이유는 단 하나다. 팀원들 끼리 이루는 프로젝트의 의의를 깨닫고 수많은 인과관계, 진행에 있어서 벽을 느꼈지만 해냈기 때문이다. 정말로 이 팀 프로젝트 이후에 더이상 지친다는 생각을 해본적이 없다. 그때 당시에 나에게 너무나도 큰 교훈들을 많이 남겨줬다. 이에 이 글을 적는다.
'프로젝트' 카테고리의 다른 글
Hyper-v를 활용한 논리적 망분리 구축 및 모의해킹 (0) | 2022.09.29 |
---|---|
[방화벽 프로젝트/실습] 방화벽 네트워크 구성 및 구축 (0) | 2022.08.10 |
방화벽 칼럼 (0) | 2022.08.10 |
[프로젝트/보안 실전 가이드] 처음부터 제대로 배우는 도커 (0) | 2022.03.15 |
[도커이미지 보안/프로젝트] REST API와 이미지 취약점 분석 (0) | 2022.03.14 |