TIL(Today I Learned)

텍스트 RPG 게임, 팀원과 협업하기 - TIL#12

Najdorf 2024. 1. 9. 21:33
728x90

저번에 개별적으로 텍스트 RPG 게임을 구현해보는 과제가 있었다.

구현한 게임의 메인 화면.

 

오늘 추가로 팀원끼리 협업해서 추가 기능을 넣은

텍스트 RPG 게임을 개발하는 과제가 생겼는데,

 

우리 팀에서는 각자 구현했던 콘솔 게임의 스크립트를

차례로 발표하고, 가장 괜찮은 사람의 것을 바탕으로

팀 전체의 프로젝트를 진행하기로 결정했다.

 

그런데 팀원 중 한 분이 게임엔진급으로

확장성이 매우 좋은 스크립트를 구현하셔서

(난 내가 배웠던 C#의 기능을 이렇게 다채롭게 쓸 수 있다는 것을 처음 알았다.)

 

팀원 모두 그것을 바탕으로 프로젝트를 진행하기로 했다.


1. 프로젝트의 구조와 역할 분담

 

프로젝트 파일은 여러 개의 C# 스크립트로 구성되어 있다.

여기서 Utilities.cs와 EventManager.cs는

프로젝트의 중추적인 역할을 수행하는 스크립트이기에

요것만 그대로 남겨놓고 남은 스크립트를 분담해서 맡기로 했다.

 

내가 맡은 건 ItemManager.cs다.

게임에서 인벤토리와 관련된 동작들을 담당하게 됐다.

 

전체적인 틀은 이전의 코드를 여럿 가져오긴 했다.

 

차이점은 전의 경우 상점과 관련된 동작이 있었는데,

이번에는 상점 관련 동작이 없어서

던전에서 아이템을 얻을 수 있다는 것을 염두해두고

해당 기능을 구현하기로 했다.

 


2. 처음 협업을 하며 느낀 점

 

오늘 처음 협업을 진행하며 느낀 점이 상당히 많다.

 

첫 번째로는 내가 C# 문법에 대해

아직도 제대로 모르는 부분이 많다는 것이다.

스크립트 중 가장 중요한 EventManager.cs 코드 중 일부이다.

 

협업을 하기 시작한 뒤부터 거의 모든 시간은

이 스크립트 하나를 이해하기 위해 썼다고 봐도 무방할 것이다.

 

분명 다 배운 키워드이고 문법인데

저 AddListener 라는 메서드 하나가 어떤 기능을 수행하는지

파악하는데 상당한 시간이 걸렸다.

 

특히, 프로퍼티( {get; set;}과 같은 문법 )와 out, ref 키워드에 대해

제대로 어떻게 동작하는지 모르고 있다는 것을 체감했다.

(이는 강의 자료를 복습하며 해결했다.)

 

그리고 빨간 줄의 코드 한 줄이 생긴건 엄청 간단해보이는데

정작 무슨 일을 하는 지 몰라서 애먹다 질문해서 겨우 이해했다.

(첫 번째 요소에 괄호 안의 값을 새로 생성한다는 뜻)

 

추가로, 코드를 작성하는 능력 뿐만 아니라

남의 코드를 읽고 이해할 줄 아는 능력 또한 매우 중요함을 깨달았다.

 

 

 

두 번째로는 Git 사용에 매우 익숙해져야 된다는 것이다.

 

Git을 어떻게 쓰는지 모른채 협업을 한다는 것은...

있을 수 없는 일이다.

 

자신의 작업물을 Commit, Push해서

버전 관리를 하는 것부터

Branch를 만들어서 개인이 맡은 것을 구현해

Main에 Merge하는 것까지

 

협업에 있어 Git은 사용하는 데 문제가 있으면 안 될 정도로

익숙해져야겠다는 생각이 들었다.

 

 

 

마지막으로, 아주 당연한 얘기지만

팀원과의 꾸준한 소통이 제일 중요하다는 것이다.

 

무조건 코딩만 한다고 결과물이 뚝딱하고 나오는 것이

절대 아님을 오늘 알게 되었다.

728x90