첫 게임 개발 팀플을 하면서

박주현·2024년 11월 8일

Record

목록 보기
1/13

Enter Gunegeon Demo (2023.09.19~2023.12.01) GitHub

팀원들과의 첫 만남

전공 필수 과목으로 시작된 해당 프로젝트였다.
연초에 자발적으로 모인 유니티 스터디 내에서 총 세 팀이 결성되었다.
다만, 프로젝트 시작 전에 옆 팀이 터져나가면서 우리 팀에 한 명이 추가되었다.

학기 시작 전, 돌기 시작한 찌라시에 의해 우리는 추가 팀원을 구하였고..
그렇게 면접(?)을 보고 추가된 팀원 2명까지 총 6명이서 팀을 시작하게 되었다.
추가원 한 명이 원래 알던 동기인게 함정

우리 팀색깔은 첫 만남에서 결정되었다고 생각한다.
우린 만나자마자 호프집에 가서 술을 마셨고 순식간에 친해졌다.
그리고 1달마다 술자리를 갖게 되는 화목한 팀이 완성되었다.

개발 전 단계

"사공이 많은 배는 산으로 간다."
팀장이 확실하게 정해지지 않은 팀은 프로젝트 결정부터 난항을 겪었다.
이것의 해결법은 다수결 투표였다.
각자 기획서를 만들어왔고 투표를 통해 Enter The Gungeon 게임을 모작해보기로 하였다.
약 3개월의 기간에 맞추어 개발 규모를 스케일링하고 각종 룰 및 담당이 정해졌다.

팀 룰
1. 회의 매 주 1회로 하며, 개발 현황/에로 사항 등을 공유한다.
2. 각자 만든 폴더 내에서만 작업을 한다. (예외의 경우에는 상호 간에 합의한다.)
3. 우리 팀에게 반주는 각 1병, 회식은 각 3병이다.

개발

해당 프로젝트에서 내 담당은 아이템 전반에 관해서 였다.
담당 업무
1. 무기
2. 아이템
3. 드랍 테이블
4. 아이템 객체 생성

원활한 협업을 위해 개발할 아이템 및 무기들을 선정하였다.
선정 기준이 오로지 개발이 재밌어보이는 것, 그 덕에 투사체 담당(팀장님)이 고생했다

기본적인 Data를 Scriptabla Object로 관리했다.
객체에서 해당 Data를 받아서 아이템 효과를 적용하거나 작동했다.
DropTable도 등급에 따른 확률만 지정하여 관리했다.

자연스러운 무기 장착을 위해, 무기 하나마다 캐릭터 기준 위치를 다르게 설정해줬다.
나중에는 소수점 둘째자리까지는 안 보고도 맞춰버린

이슈

캐릭터 담당의 개발 지연

Enter The Gungeon의 상호작용은 플레이어블 캐릭터로부터 이루어진다.
하지만 개발에 있어서 캐릭터 컨트롤러, 스텟 등의 스크립트가 올라오지 않았다.
이에 대한 이유는 담당자가 애니메이션 깎는 것에 빠져서..
결국 Test용으로 만들어진 스크립트가 끝까지 사용되었다.
캐릭터 담당이 아니라 애니메이션 담당

잘못된 Scriptable Object 사용에 따른 Data 변조

처음으로 사용하는 Scriptable Object를 잘못 이해하였다.
Scriptable Object를 직접 참조해서 게임 내에서 데이터를 변화시켰다.
결과는 Unity Editor에서 테스트할수록 Data가 차츰 변해서 나중에는 전혀 다른 Data가 되었다.

그나마 일찍 깨달아서 다행히 금방 바로잡을 수 있었다.
이후로는 객체의 데이터를 초기화할 때만 사용하였다.

마무리

많은 술 자리와 회의, 개발 끝에 성공적(?)으로 프로젝트는 완성되었다.
SRS, SDS, Test Case 문서를 제출하였고, 최종적으로 시연 영상을 포함한 발표 영상을 제출하였다.
여담으로 다른 여러 팀에서는 불화가 발생하였다는 후일담을 들었다.
술자리가 많아서 오히려 불화가 없었나..?

느낀 점

처음으로 제대로 된 협업을 하면서 다른 사람의 출력물을 사용하는 경우가 잦았다.
서로 다른 개발 경험에서 만들어진 스타일을 서로 맞춰나가는 것에 시간이 많이 걸렸다.
작업물들을 통합하는 것에 많은 시간이 소요되었다.
제출 전에는 저녁 때부터 시작해서 야간까지 개발이 이루어지는 경우가 많았다.
이러한 경험들을 통해 초기 개발 문서의 명세화의 중요성을 알게되었다.

다른 사람의 코드를 많이 들여다보면서 많은 공부가 되었다.
절차적 생성, 오브젝트 풀링, 수학적 계산을 통한 궤적 계산 등 다양한 코드를 볼 수 있었다.

profile
코딩초보의 공부일기

0개의 댓글