[2학년 2학기 게임PX디자인 수업 프로젝트]토사구펭

윤태웅·2021년 12월 23일
1

프로젝트

목록 보기
2/12
post-thumbnail

개요

2학년 2학기 수업으로 소프트웨어 융합학과의 '게임PX디자인'이라는 수업을 들었다.
언리얼 실습, 언리얼 엔진분석 과제, 게임엔진 + (c++) + 메모리 관리 수업, 5인으로 구성된 팀프로젝트 진행 등등 많은 활동들을 했었는데 그 중 팀프로젝트 이야기를 해보려 한다.

프로젝트 명: 토사구펭

교수님께서 제안한 프로젝트 조건은 '생존게임','시점 조작 가능한 3d게임','시뮬레이션 요소','Crafting','오픈월드'였다. 이에 우리 조원중 한분께서 펭귄이 사막에 떨어져 생존하는 게임을 만들어 보자! 해서 프로젝트를 시작하게 되었고 게임명 토사구펭은 사자성어 兎死狗烹(토사구팽)에서 펭귄의 펭자를 넣은 말장난이다.

게임소개


이 게임은 사막을 통과하는 비행기에 타고 있던 펭귄이 의문의 추락사고를 당하게 되고 사막의 더위로 부터 살아남아 탈출하는 게임이다.
소개영상유튜브링크
게임 다운 링크

진행과정

협업툴

Perforce


Perforce라는 툴을 사용해서 협업을 진행했다. Perforce의 특징은 Git과 달리 메인서버에서만 파일들의 history를 관리한다는 것이다. 그리고 Checkout,CheckIn기능으로 팀원이 작업중인 파일은 Checkout한 팀원이 제출하기 전까지 다른 팀원은 사용하지 못하게 하는 방식으로 Git에서 흔하게 경험하는 Merge Conflict를 사전에 차단한다는 장점이 있다(반대로 팀원이 CheckIn해주지 않으면 다른 팀원이 작업을 못하는것은 단점이기도 하다).

Perforce + AWS EC2


Perforce는 중앙집중형 버전관리프로그램이기에 서버가 될 컴퓨터는 항상 켜져있어야 할 필요가 있었다. 처음에는 내 노트북을 한 학기동안 켜놓으면 되지 않을까? 싶었는데, 노트북 전원은 언제든지 나갈 수 있는데다가 밤새도록 팬소음을 듣고싶지는 않았기 때문에 다른 방법을 찾아보게 되었다.
그러다가 AWS(Amazon Web Service) EC2(Elastic Compute Cloud)라는 클라우드 가상 컴퓨터 서비스를 알게되었고 EC2 인스턴스에 Perforce서버를 띄워서 협업을 시작하게 되었다.

AWS는 프리티어로 1년동안 일정 사용량은 무료로 제공해주지만 협업 초기에는 사용량에 대한 감이 부족해서 매일매일 사용량 그래프를 보고 비용걱정을 하곤 했는데, 결과적으로 총 300원정도 나왔다.. 그냥 앞으로는 걱정없이 실컷 써도 될 것 같다.

Github를 사용하지 않은 이유

굳이 팀원들이 경험해봤던 Github를 사용하지 않은 이유는 다음과 같다.

  • Github의 용량 제한
    Github는 repository당 1GB, 파일 하나당 100MB의 용량 제한이 있다. 물론 Git largefile을 이용해서 어느정도 해결은 가능하다고 하지만 언리얼 게임의 용량들을 생각해보면 Github로 진행시 용량이슈가 있을 것 같았다.
  • Binary 파일의 Merge Conflict
    언리얼 블루프린트는 .asset확장자를 가진 binary파일이다. 게다가 각종 게임리소스들 또한 대용량 binary파일이다. Git으로 협업할때 binary파일에서 merge conflict가 발생하면 대응하는 방법이 매우 까다롭다. 일반적인 텍스트,소스파일들은 Git이 MergeConflict가 발생한 부위에 표기를 해주고 해당 부분을 사람이 판단해서 수정해주면 되는데, binary파일은 사람이 봐도 알수가 없다. 물론 이 부분은 Unreal전용 git merge tool이 존재하기는 한다. 그래도 Binary파일들의 merge conflict를 전혀 신경쓰지 않아도 되는 Perforce가 Git보다 매력적이었다.

내가 기여한 부분


인벤토리,크래프팅,아이템 시스템, 피라미드 퍼즐, 세이브기능 개발 + 협업툴 관리를 맡았다. 시간관계상 UI의 비주얼 적인 요소를 개발하지 못한게 아쉬운 점이다(UI애니메이션,폰트).
그리고 팀의 조장을 맡았다. 조장으로서 주마다 회의를 진행했고 팀원들이 어려움을 겪고 있을 때 같이 고민했다. 그리고 개발 막바지에 미친듯이 크런치를 하며 버그를 잡고 사운드를 넣었다..

개발 일정

(21.10.15 ~ 21.12.20) 약 2달간의 짧은 일정안에 모든 프로젝트를 완료했다. 팀원 5명이 모두 좋은 게임을 만든다는 의지가 있었기에 힘들었지만 즐겁고 보람차게 개발을 완료할 수 있었던 것 같다.

성과

게임 PX디자인 중간 발표 3등, 기말 발표 1등을 했다. 게임의 퀄리티+ 소개영상의 퀄리티 + 발표의 퀄리티 모두 좋은 평가를 받았다.

얻어가는 것들

Perforce 협업 툴의 사용법, AWS EC2 사용법, 언리얼 엔진 사용법, 5인 협업 경험

배우고 싶어진 것들

언리얼 c++의 깊은 이해, Perforce툴의 추가기능들, 맵-하늘-캐릭터 등등 비주얼적으로 좋아보이게 하는 방법들

0개의 댓글