방탈출 게임 제작 프로젝트

Fly_Namming·2022년 10월 19일
0

Team Project

목록 보기
1/1

작년 4월에 시작한 첫 1학년 팀프로젝트었다.

학교 동아리를 들어가서 1학기 내내 4개의 지옥 같은 스터디를 진행하면서 시작한 동아리 자체 내의 흔치않은 첫 기회였다. 1학년인데도 손쉽게 팀을 모아 프로젝트를 계획할 뿐만 아니라 주제조차 자유로웠기 때문에 새내기인 나에게 있어서 너무나도 좋은 기회라고 생각했다. 물론 팀을 모으는 데 있어서 너무나도 큰 문제들이 많았다.

코로나 시대로 모든 수업이 비대면이고 동아리 활동조차 비대면으로 진행되면서 동아리 같은 기수 동기들과 한 번도 개인 톡 등 사적인 만남을 가지지 못했다. 그 와중에 내가 친분이 하나 없는 동아리원들에게 직접 팀원 의사를 물어봐야 하는 것이었다.

실제로 팀 프로젝트 계획서 제출 하루 전까지 한 팀도 1학년에서 나오지 않아 위 선배님들조차 당황한 상 태었다. (참고로 우리 기수는 20명 정도였다)

그때 내 성격은 소심한 편이었다. 하지만 욕심과 의지가 있었고 나에게 있어서 첫 프로젝트로 좋은 기회였기에 용기를 내서 29기 기장에게 개인 톡으로 팀을 만들고 싶다는 의사를 보냈다. 다행히도 기장도 참여 의사가 분명했고 기장과 함께 한 팀이 되어 우리 동기 톡 방에 팀원을 구하는 글을 올렸다. 이렇게 우여곡절 끝에 5명의 팀원을 모았다.

프로젝트 주제 선정 이유

우리가 주제를 방 탈출 게임으로 정한 이유는 분명했다. 솔직히 1학년 1학기를 끝내지도 않았고 C언어조차 배우고 있는 상태에서 우리가 할 수 있는 일은 "기초를 다지자"였다. 우리 모두 프로그래밍의 기반이라고 생각한 C언어를 익숙하게 다루자는 목표 하나로 게임을 제작하기로 했다. 지나가는 사람이 봐도 '정보보호학과'라는 소확회에서 게임을 만든다니 웃을 수도 있다. 하지만 보안에 대한 기초 지식조차 없던 우리에게 프로그래밍 언어의 기초라도 탄탄히 하겠다는 의지는 우리 팀원 모두 진지했다.

프로젝트 어려움

아직 배우고 있는 C언어를 대상으로 게임을 만들려고 했기에 많은 어려움이 있었다. 대표적으로 방향키 조작 코드 구현이다. 구글링을 통해서 처음에는 다양한 게임 코드를 분석하여 방향키 조작 코드를 가져왔다. 하지만 여러 코드를 가져왔기에 많은 논리적, 문법적 오류가 있었다. 처음 다른 사람의 긴 코드를 봤기 때문에 정확한 판단 없이 무분별적으로 가져왔던 것이다. 위아래만 방향 키가 된다거나 아예 동작조차 안 하는 등의 온갖 오류가 나타났다. 몇 달 동안 조금의 결과물 없이 진행됐다.

이 와중에 5명의 팀원 중에 2명의 팀원이 동아리에서 나갔다. 갑작스러운 상황에 정말 앞길이 막막했다. 하지만 우리는 톡 방에서 3명이더라도 똘똘 뭉쳐서 어떻게 서든 이 게임을 완성시키자고 소통했고 지금껏 비대면으로 이루어졌던 팀 프로젝트를 대면과 혼합하면서 다 같이 노력했다. 이렇게 삽질을 많이 해서인지 여러 코드를 봐서인지 어떤 느낌으로 게임이 만들어지는지에 대한 틀이 보였고 처음서부터 모든 것을 우리가 구현하지 않았지만 몇 개의 함수를 통해 직접 구현하기 시작했다.

코드 제작 어려움 (1)

정말 투박하고 간결한 코드였지만 더 이상 오류도 문제도 생기지 않았다. 한편으로 지금까지 고생한 방향 키에 대한 어려움에 어이가 없으면서도 정말 뿌듯했다. 이 기점을 시작으로 우리는 빠르게 코드를 구현할 수 있었다.

프로젝트 어려움 (2)

물론 수 탄하지는 않았다. 방향키 코드 이외에도 미로 구현 코드에서도 문제는 있었다. 우리는 미로상에서 플레이어가 열쇠를 먹고 탈출구로 가는 게임을 생각했다. 그래서 미로를 구현할 때 그냥 유니코드 네모를 사용하여 수동적으로 하나씩 집어넣어 출력되도록 했다. 하지만 간과한 사실이 있었다. 플레이어가 그 미로를 뚫으면 안 됐고 사라져서도 안됐다. 우리가 구현한 코드는 이 두 문제를 동시에 가졌다. 정말 긴다면 긴 시간 동안 만든 미로였기에 우리는 뒤엎기 싫었고 이 미로 코드에서 해결한 방안을 찾으려고 일주일가량을 쏟았다. 하지만.. 우리는 방법을 찾을 수없었다. 우리의 코드는 변수를 이용한 것도 아니었으며 유니코드에 해당하는 네모는 어떠한 것으로 플레이어가 통과할 수 없게 하는 함수는 없었기 때문이다. 결국 우리는 코드를 뒤엎었다. 처음 보는 배열을 사용하기로 했고 우리가 원하는 미로를 다시 만들기 위해 1과 0으로 된 배열을 손수 입력했다.

프로젝트 소감

이 세 개의 고난이 전부가 아니다. 우리에게 있어서 너무 나도 많은 시련은 있었다. 하지만 이 모든 어려움을 극복할 수 있었던 것은 우리가 가는 길에 의심을 하지 않고 포기를 하지 않고 공부하고 찾아봤다. 또한 우리의 길이 틀렸더라도 절망하지 않고 다른 길을 모색하여 팀원들 모두 힘내었다.

이 팀플은 취업에 도움이 되지는 않을 거다. 하지만 이 vleg에 적는 이유는 단 하나다. 팀원들끼리 이루는 프로젝트의 의의를 깨닫고 수많은 인과관계, 진행에 있어서 벽을 느꼈지만 해냈기 때문이다. 정말로 이 팀 프로젝트 이후에 더 이상 지친다는 생각을 해본 적이 없다. 그때 당시에 나에게 너무나도 큰 교훈들을 많이 남겨줬다. 이에 이 글을 적는다.

중간 발표 PPT 사진및 제출 현황 사진

profile
나만의 공부 일기장

0개의 댓글