한 달 안에 게임 제작이 가능했던 이유

Choi YounChan
트리플라 팀 블로그
6 min readNov 17, 2023
글로벌 2400만 다운로드 <고양이 스낵바>

<고양이 스낵바>는 30일이라는 기간 동안 소프트런칭 스펙을 개발하였다.
소프트런칭 후 지표에서 가능성을 본 <고양이 스낵바>는 100일만에 1000만+ 다운로드를 기록하게 되었다.
고양이 스낵바를 만드는데 대단한 전략이 있었던 것은 아니었다.
그저 어떤 부분에 가능성을 보고 그 가능성을 빠르게 구현 했기에 가능한 일이었다. 트리플라는 어느 날 갑자기 고양이 스낵바를 만든 회사가 아니다.
고양이 스낵바를 만들기까지 수많은 타이틀을 만들었고 시장의 평가를 받아왔다.

트리플라는 “내부적인 판단보단 빠르게 시장에 내놓아야 해답이 있다” 라고 항상 생각하는 집단이다.

시장에 출시했던 트리플라의 여러 타이틀

2년이라는 시간 동안 이렇게 20명 남짓의 개발 인원이 하루의 야근도 없이 다양한 타이틀을 개발 할 수 있는 이유는 무엇 인지에 대해 말해보려 한다.

주변에 일어나는 모든 일들이 그러하듯 한 가지의 원인 만으로 결과가 만들어지는 것은 아니다.
빠른 개발에 타 파트의 많은 도움들이 있었지만 해당 아티클은 아트 개발자로써 빠른 개발에 어떤 도움을 줄 수 있는 지에 대해서 얘기 할 것이다.

트리플라는 Unity 엔진을 사용해 게임 개발을 하고 있다.

게임 개발을 처음 시작해 프로젝트 세팅을 할 때 기본적으로 Prefab들을 만들기 시작하고 수많은 Prefab들이 조합되어 게임의 컨텐츠가 된다.
Prefab을 만드는 것은 그리 어려운 일이 아니다.
하지만 항상 새롭게 세팅을 하고 이미 알고 있는 구조 들을 물리적인 시간을 써가며 우리의 귀중한 시간들을 낭비하게 된다.
단적인 예로 Unity에서 제공하는 Text(Legacy)를 만든다고 했을 때의 상황을 설명해보자.

Text(Legacy)를 Unity에서 꺼냈을 때 보이는 최초 Inspector창

어느 컨텐츠에 Text를 사용할 일이 있다고 했을 때 Unity가 제공해주는 Text를 꺼내다 쓰면 처음 보이는 화면이다.
이때 라이브에 적용될 세팅을 해보자면

1. Font의 Arial 기본값을 프로젝트의 Font로 링크 변경을 해준다.
2. Font Size를 기입힌다.
3. Line Spacing을 0.9로 세팅한다(필요한 경우라고 가정)
4. Alignment 를 가운데 정렬로 세팅한다.
5. Best Fit을 체크한다.
6. Color값을 세팅한다.
7. Raycast Target을 체크 해제 한다.

이와 같이 한 개의 Text Component를 사용할 시 간단하지만 물리적 시간을 써야 할 많은 공수들이 생긴다. Text를 100군데서 사용한다고 한다면 1번부터 7번까지의 공수를 100번이나 반복해야 한다.
그때 우리는 생각해야 한다.

“어떻게 하면 공수를 줄일 수 있을까?🙄”

해답은 간단했다.

세팅 된 Text를 Prefab화 시키면 되는 일이다.😃

이렇게 개발을 하면서 세팅해야 되는 여러가지의 Common Resources들이 있다. 해당 부분에 대해 내가 계속해서 반복해서 공수를 들이고 있었다면 Common Prefab화를 시켜 공수를 줄여나갔고 만들어뒀던 Common Prefab들은 계속해서 발전시켜 갔다.

그러던 중 불편한 일이 또 일어나고 말았다.
‘A’ 라는 팝업을 만들 때 나는 Common Text도 필요했고, Scroll View도 필요했고 스타일이 다른 Button들도 필요했다.
그럴 때마다 Common 폴더를 찾아가 Prefab들 꺼내 쓰는 것 또한 여러 번 반복하다 보니 여간 귀찮은 일이 아니었다.
그래서 클라이언트 팀장에게 찾아갔다.

“내가 만든 Common Prefab들을 메뉴처럼 꺼내서 사용할 수는 없을까요?”

결과는 아주 좋았다.👍

트리플라 UI Set

프로젝트를 진행하면서 점차 <구조화> 시켜 놓았던 Common Prefab들을 손쉽게 꺼내 사용하다 보니 개발을 함에 있어 물리적인 시간들이 확실히 줄어들고 있었다.

그런데 <구조화> 는 어떻게 시켰을까?

“구조를 잘 잡아야 한다” 라고 팀원들에게도 얘기를 많이 하는 편이다.
Hierarchy에 대한 구조, Naming에 대한 구조, Folder 구조 등등
구조화를 잘 시켜야 쉬운 작업을 어렵게 하지 않고 쉽게 할 수 있게 된다.
Unity UGUI 사용하면서 종종 듣는 말 중에 하나는 Layout Group의 사용을 최대한 자제하라는 말이다. 최적화 적인 측면에서 좋지 않다는 것이 그 이유인데 나는 여기서 기회 비용을 따져야 된다고 생각했다.

1. Layout Group 을 사용함으로써 개발 시간 단축
2. 최적화를 위해 최대한 Rect Transform을 기반으로만 작업

1번과 2번의 기회 비용을 따져봤을 때 우리는 1번을 선택해서 움직였다.
2번을 선택했을 때의 개발 시간의 늘어짐이 최적화라는 좋은 타이틀을 가져가더라도 더 큰 손실로 올 것이라는 판단이었다.
게임을 만들 때 컨텐츠의 많은 부분을 차지하는 곳이 Popup이다.
Popup 개발에 들이는 시간을 줄이고 싶은 욕구가 개발을 하면 할수록 많이 들었다. 구조화되지 않은 환경에서 Popup을 만들게 되면 세팅을 하기까지의 시간도 많이 들지만 기본적인 간격이나 내가 가이드를 삼았던 Font Size등이 어느정도 시간이 지나고 봤을 때 컨텐츠마다 미묘하게 달랐기 때문이다.
그래서 Popup에 공통적으로 들어갈 수 있는 요소에 대해 고민하고 Hierarchy를 여러 번 수정하면서 최적화 된 구조를 만들었다. 상황에 유동적으로 대응할 수 있는 Layout Group 세팅이나 내부적인 간격이나 Font Size 등도 주기적으로 폴리싱 하였다.
결과는 매우 만족스러웠다.😀

고양이 스낵바에서 Popup을 세팅하는 과정 예시

마무리

개발을 하면서 항상 가져야 될 생각이 있다.

“게임 개발 더 쉽게 하고 싶다!”

업무 프로세스를 단순화하고 개발 환경 자체를 쉽게 만들어야 좋은 퀄리티의 게임을 빠른 시간 내에 만들어 낼 수 있다고 생각한다.
현재에 만족하지 않고 좀 더 나은 환경에서 개발을 할 수 있도록 계속해서 경계하고 발전시켜야 하겠다.

< 해당 글을 읽어주신 모든 분들 감사합니다 😄 >

트리플라의 작업 방식이 궁금하고 관심이 있다면 편하게 메일주세요.😀

--

--

Choi YounChan
트리플라 팀 블로그

Treeplla | - Art Leader / Unity UI & Animation / Character