43
실버불릿 개발후기 어디가 한계인지는 일단 해봐야 아는 거잖아? 청강문화산업대학교 교수 / 별바람 스튜디오 대표 별바람 (김광삼)

Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

Embed Size (px)

Citation preview

Page 1: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

실버불릿 개발후기어디가 한계인지는 일단 해봐야 아는 거잖아?

청강문화산업대학교 교수 / 별바람 스튜디오 대표

별바람 (김광삼)

Page 2: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

저는 이런 개발자입니다.

• 코딩 32년차/ 데뷔 25년차 인디 게임 개발자(1991년 호랑이의 분노로 데뷔)

• 올파트(All-Part) 게임 개발자플랫폼 불문, 장르 불문인디 개발자이면서 오버 쪽과 일하는 것도 꺼리지 않음

• 대세는 알지만(교수) 따르지는 않는(개발) 마이웨이

• 호랑이의 분노, 푸른매, 그녀의 기사단, 혈십자 등 개발

Page 3: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

실버불릿의 시작

• 2012년 혈십자가 끝나갈 때 쯤 처음 구상멀티터치에 특화된 뭔가 기묘한 조작이 없을까?

• 지금까지 내가 만들어 본 적 없는 장르를 만들고 싶다

• 그 계기가 된 셀프 팬아트 일러스트 한 장

• 8년 만에 돌아온 제자에게 실무 경험을 쌓게 하고싶으므로 팀 작업을 한다는 것을 전제

Page 4: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

이게 문제의 그 그림

• 혈십자의 캐릭터 중제 최애캐인 “니모”요원(실지론 서브 히로인)

• 퇴마 수녀 설정

• 이 누님을 주인공으로세워보고 싶다!!(최종적으론 다른 캐릭다른 세계관이 되었음)

Page 5: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

그리고 UNITY4..

• 원래는 내 라이브러리도 있었다(CK2D, CK4D)

• 제자와 협업/교육을 위해서는 일반적인 엔진이 필요

• 때마침 Unity4 베타가 출시

• 그래 나도 이번엔 그 대세라는 유니티를 써 보자!!

Page 6: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

유니티를 처음 만져본 소감

• 구조가 방만하네..(마구 Append 해가는 느낌의 구조?)

• 아 GUI Editor 싫다.. 정말 싫다..

• 객체지향 코딩은 영 취향에 안 맞는데..

에라!! 진짜 방만한 개발이 뭔지 보여주마!

Page 7: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

방만한 게임 = AAA 지향

• 나다운 게임을 AAA스타일로 모바일에서 만들어보자!(인디로 큰 게임은 안돼? 난 종종 혼자서도 해봤는데?모바일은 간단한 게임 위주라고? 앞으로도 그럴까?)

• 발매 예정은 아마도 2014년말-2015년초로 생각:당시 기준으로 최신 폰 정도에 맞춰서 개발하면 될듯?(레퍼런스 폰은 LG 옵티머스 G-Pro : 이유는 고해상도)

• 가능하면 그래픽 퀄리티 설움의 한(..)을 풀어보자.

Page 8: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

결론: 한계선까지 가보자

Page 9: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

목표점 설정

• 콘솔 스타일의 게임 진행 / A급 퀄리티의 그래픽

• 신기술이나 써먹을 수 있는 기술은 닥치는 대로 써먹자!연출상 필요하다면 얼마든지 기술개발에 투자하겠다.

• 개발 스케쥴은 2년 반 = 2014년 말 목표우리가 목표한 퀄리티와 코어한 모바일 게임의 시장은 2015년 초부터일반화 될 거라 예상(하지만 실지로는 2012년 말의 예상보다 반년쯤 빨랐다)

Page 10: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

정말 개발 견적이 나올까?

• 개발 시작 시 개발 팀원은 2명모든 파트 커버 가능한 경험 많은 만능 개발자 별바람+ 재능이 있으나 아직 경험은 없는 초보 프로그래머

• 개발비는 이전 게임(혈십자) 수입 + 교수 월급= 대략 2년까지는 버틸 수 있다고 추산(이후는..-_-)

• 엔진의 성향에 맞는 게임 스타일을 선택

Page 11: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

초기의 고민들

• 적은 예산의 인디 팀에서 모바일 환경으로 뽑아낼 수

있는 퀄리티와 게임 규모의 한계선은 어디인가?

• 시대의 흐름과 맞지 않는 고전적 게임성은 안 되는가?(유저에게 스트레스를 주는 게임은 정말 안 되는가?)

• 확률과 지속적 플레이 유도가 아니라면 돈을 못 버는가?

Page 12: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

그리고 셀프 대답들

• 소규모이므로 상대적으로 적은 예산으로 버틸 수 있다.-> 그 버틸 예산이 있다면, 시간을 가지고 한계선과돌파구를 하나씩 확인 해보며 가면 되는 게 아닌가?

• 진짜 그런 게임성 승부가 가능한지 아무도 안 해봤잖아?(모바일 특성을 모른 채 만들어진 애매한 물건 말고)

그럼 항상 무모한 내가 해보면 된다

Page 13: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

게임의 기획의 기본 골격

• 멀티터치를 이용한 쌍권총 멀티 타겟 컨트롤

• 영화적인 연출과 공략이 필요한 패턴의 보스 배틀

• 이게 어울릴 장르를 생각해보면 잠입 액션과 파밍RPG?

• 메탈기어와 디아블로를 합쳐 내 스타일로 만든다면?

Page 14: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

기획의 기술적 도전 과제

• 쌍권총의 2중 타겟 IK 컨트롤

• 추적하고 따돌릴 수 있는 놀아줄 만한 적 AI

• 1080p 이상으로 최고 퍼포먼스를 뽑아낼 수 있을 것(2년 이상의 개발기간 동안 폰이 발전할거라는 전제로)

• 자동생성 던젼 맵 (+ AI 길 찾기)

Page 15: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

대충 이렇게 해결했습니다

• IK는 HeadLookController 기반으로 시간을 들여 그냥 짰음(캐릭터 기본 자세 세팅이 중요함 : 양팔의 방향 등)

• AI 는 FSM 을 근간으로 주요 스테이트가 유기적으로 엮이게 설계(서로 근처의 다른 몹 AI에게 헬프 콜 등을 보내 서로 유기적으로)

• 퍼포먼스는 일일히 시험삼아 빌드해서 실험해보며 기술개발(2년반의 스케쥴 중 첫1년은 기술 개발에 투자할 수 있었음)

• 던젼은 NavMesh를 규격화 시켜 쪼갠 후, Obstacle 로 해결

Page 16: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

기술적 도전 상황의 해결법

• 일단 쫄지 말고 코드를 짠다/일단 짜도록 시킨다-> 에디터에서 돌아간다면 일단 준비는 되었음

• 그리고 무작정 폰에 올려서 돌려본다-> 만약 느리다면 다음 단계로

만약 문제없이 잘 돌아간다면 Profit!

• 다시 코드를 검토하고 기기 특성을 확인하며 가능성 체크-> 더 좋은 방법은? 기기 특성을 우회할 방법은?

• 막상 해보면 의외로 폰의 퍼포먼스 허용 한계가 높다특히 폴리곤 수는 의외로 굉장히 허용선이 높더라

Page 17: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

문제는 그래픽 리소스

• 개발 팀원 2명 (2012-2013년 당시)프로그래머 1명 + 만능맨 1명 : 프로그래머 위주의 팀

• AAA타이틀을 만들려고 한다면 그래픽 리소스는 어떻게?

• 내가 기획을 하면서 그래픽을 함께 커버하겠다고는 해도기본적으론 2D도트맨이고 3D그래픽 작업은 경험이 부족

• 하지만 믿는 구석이 있었다

Page 18: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

ALL HAIL ASSET STORE!

• “합법적”으로 사용할 수 있는 방대한 리소스

• 내가 유니티의 강점의 70%라고 생각하는 부분은 어셋스토어(그 동안 쌓여있는 어셋의 숫자 자체가 펀더멘털이라 생각함.)

• 특히 일부의 그래픽 어셋은 A급에 손색없는 퀄리티

• 즉, “돈으로 발라버리는 개발”이 가능하다!!!!!(하지만 외주를 주거나 팀원을 고용하는 거 보다 싸다!)

Page 19: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

배경은 어셋스토어로 해결

• 퀄리티가 굉장히 중요하나 무난하다면 개성이 없어도 OK-> 결국 맵을 구성하는 센스가 중요하다

• 어셋스토어에서 구할 수 없는 독특한 어셋이 필요한 경우가아니라면 배경 리소스는 기본적으로 전부 어셋 스토어에서구입해서 사용

• 선별 기준은 샘플을 보고 퀄리티 최우선퀄을 깎아 낮출 순 있지만 기본적으로 낮은걸 올릴 순 없다지금 쓸게 아니라도 고퀄 배경을 할인하면 무조건 지른다

Page 20: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

캐릭터도 일단 어셋스토어

• 설령 나중에 다른 모델로 바꾼다고 하더라도, 일단 프로토타이핑을 위한 캐릭터가 필요하다.

• 특히, 상대적으로 중요도가 떨어지거나 흔한 타입의 적캐릭터라면 굳이 직접 만들 필요가 없다 = 어셋스토어

• 선별기준은 퀄 보다는 즉시 사용 가능여부1. 리깅이 잘 되어 있을 것. 2. 애니메이션 세트가 기본적으로 갖춰져 있을 것.3. 퀄리티도 나쁘지 않다면 최종까지 사용을 고려 할 수 있음.

• 텍스쳐 등은 자신의 취향대로 수정할 것

Page 21: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

이펙트도 일단 어셋스토어

• 어셋스토어에 올라온 일부 이펙트 어셋들은 꽤 멋지다(이번 게임은 Flying Teapot 제품들이 성향에 맞았음)

• 모바일에선 무거운 경우가 있으므로 잘 골라야 함- 디스토션 효과는 일단 무리 (2015년 초 현재 기준)- 폭발의 연기등 화면의 “면적을 넓게 가리는”이펙트는 느림- 게임 풍과 어울리는가? : 너무 만화적인 이펙트는 곤란함

• 비슷한 것을 구입해서 직접 수작업으로 고치는 것을 추천

Page 22: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

기본적인 애니메이션은MIXAMO + 자체제작

• Mixamo사가 기본적인 모션들을 잔뜩 팔고 있음(Mixamo store 어셋을 깔면 유니티 에디터 상에서캐릭터에 붙어서 돌아가는 모션을 확인하고 구입할 수 있음)

• 특별하지 않은 기본적 게임적 모션은 다 있다고 생각하면 됨

• 단, 액션 공격 모션들은 좀 구리다 -> 직접 만들어 쓸 것-> 그래서 2014년 결국 팀에 애니메이터를 신규 채용

Page 23: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

음악은 APM MUSIC

• 보통 어셋스토어에 올라온 음악과 사운드는 좀 구리다(!!)

• 하지만 어셋스토어 APM에서 파는 음악은 꽤 고퀄리티비싸지만 가격 값은 하고, 외주보다는 훨씬 싸다

• 그 외 음원을 파는 별도의 사이트에서 구입해도 좋지만, 음원 사용의 라이선스를 꼭 잘 확인해볼 것

• 사운드는 어셋스토어 물건보단 외부의 음원 사이트에서소스를 구입해서 직접 편집하면서 사용하는 것을 추천

Page 24: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

하지만 중요 캐릭터는?

• 그래도 주인공까지 어셋스토어 물건 쓰는 건 곤란하지 않나?

• 주인공 외에도 오리지널리티가 있는 보스들이나 중요한캐릭터들은 어셋 스토어의 물건만으로는 역시 한계가 있음

• 그러므로, 주인공은 별도로 외주를 내거나 “다른 방법”을고민해 볼 필요가 있었다

• 학생 모델러를 들여서 주인공 모델링을 해서 써볼까도 고민했으나 학생 레벨로 A급 타이틀에 어울릴만한 퀄리티는무리라고 판단

Page 25: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

다른 방법1 : DAZ3D

Page 26: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

DAZ STIDIO

• Daz3D : 개발 초기에 프로토타이핑에 사용함.일종의 Poser 류의 간단한 캐릭터 메이킹 후 영상을 만드는 툴게임 커스터마이징 하듯 모델을 만들고 옷을 만들어 입힐 수 있다

• 소프트웨어 자체는 무료이나 옷이나 프롭 등의 구입에 과금

• FBX export가 가능하여 완전히 리깅된 상태로 생성

• Decimator 플러그인을 사용하면 폴리곤 수를 조절 가능

• 게임 개발용 라이선스가 존재

Page 27: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

DAZ3D 결과물

• 대략 20,000 Tris (헐…)

• 머리,얼굴,몸,브라,바지,신발, 눈알전부 개별 텍스쳐(…)

• 눈알과 혀까지 리깅된 상태(…)

• 그런데도 의외로 잘 돈다(…)

• 2014년 초반 버전까지 사용

Page 28: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

DAZ3D 결론

• 장점 : Daz3D 에서 다양한 복장이나 장비 등을 판매하고있어서 커스터마이징을 극단적으로 하는 것이 가능하다게임 개발용 라이선스도 판매해서 합법적으로 사용가능

• 단점 : Decimator가 구려 20000tri 이하는 현실적으로 무리(하지만 20000짜리 주인공이 모바일에서 잘 돌더라는 게 함정)

기본적으로 게임용이 아니라 본이 좀 심하게 많다텍스쳐를 너무 쪼개서 생성한다

Page 29: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

다른 방법2 : FUSE

Page 30: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

MIXAMO FUSE

• 어셋스토어에서 Mixamo 가 판매하는 캐릭터 생성툴

• 게임개발 용도라면 일단 Daz3D 보다 나음(게임에 맞게 최적화된 Bone 구조와 Decimator)

• 소프트웨어 자체에 기본 가격이 있음(100$)가격정책에 따라 리깅과 애니메이션 수량이 정해짐

• 현재 NPC 캐릭터들에 Fuse 로 생성한 캐릭터를 사용

Page 31: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

FUSE 결과물

• 서브 히로인..이 아니라 서브남주격인 Seth 박사

• 대략 6000 tris 사용(나름 게임의 주역이라..)

• 본 구조는 보이는 대로 약간오버하는 정도

Page 32: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

FUSE 결론

• 장점 : Daz3D 에 비해 Decimator가 강려크하다. (대략 3000 tri 정도로도 무난하게 잘 뽑아줌)자동으로 뽑아주는 리깅이 의외로 꽤 좋은 편

• 단점 :샵이 없다보니 커스터마이징 자유도는 적음(Daz3D 로는 별별 희안한 복장이나 프롭 들이 많다)Daz3D보단 낫지만 본과 텍스쳐를 좀 심하게 나눈다

Page 33: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

SIMPLYGON

• 개발툴이나 어셋이라기보단 월 정액 서비스에 가까움

• 기본적으로 Decimate, Texture Merge, LOD 생성지원

• 앞에서 고퀄의 배경을 사라고 말한 이유가 바로 이 물건(원하는 수준까지 폴리곤을 Reduction 시킬 수 있다)

• Draw Call 을 줄이기 위해서 이리저리 나뉘어진 Texture를병합하는 데에도 매우 유용함 (특히 배경에 유용)

• 최적화를 위해 유용한 서비스

Page 34: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

그 외에 시도해 본 것들

• Poser : 캐릭터 퀄 자체로는 Daz3D 이상이나 게임용은 아님

• Make Human : 공짜라는 점 외엔 별로..

• Substance Painter : 텍스쳐 드로잉 시 꽤 편하다

• VertExmotion : 유니티 셰이더 Soft Body Animation

• Unity Analytics : 유저 스토킹은 개발자의 로망(..)

• Google Drive : 개발 중 실시간 Text 수정 및 번역용

Page 35: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

정말 중요한 캐릭터는 외주

Page 36: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

외주 그래픽 작업

• 오리지널 캐릭의 퀄리티에는 그만한 비용이 필요하다

• 원화는 직접 그린 후, 모델링 + 텍스쳐까지 외주

• 리깅 + 애니메이션은 팀 내에서 작업

• 텍스쳐는 직접 만든 Shader 와 함께 다시 직접 손질(텍스쳐의 외주 주문 사항은 기본적인 부분만 요구)

• 최종적으로 In-Game의 움직임을 보며 직접 손질한다

Page 37: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

배경 어셋의 작업 프로세스

• 어셋스토어에서 비슷한 느낌의 배경 세트 어셋 구입- 일단 모델링 자체는 하이폴 고퀄리티로 구입- 라이팅/셰이더 빨에 속지 말 것 (믿지말자 조명빨)

- 어셋에 포함된 자잘한 파일들이 뭐가 있는지는 꼭 확인

• 게임에 라이트와 셰이더를 적용해보며 직접 텍스쳐 가공

• 대충 기본 모양이 다 잡혔다 생각하면 Simplygon 으로Reduction + Merge

• 실지 기기에 넣고 퍼포먼스와 비쥬얼 체크

Page 38: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

셰이더는 직접 만지자

• 커스텀 셰이더 관련 어셋들이 여럿 있으나,셰이더 코딩을 할 수 있으면 직접 짜는 것이 편하다(나만 그런지는 모르지만 GUI 보단 텍스트가 편안하다)

• 참고용으로 보고 싶은 셰이더는 사서 해부해볼 것

• 최종적으론 섀이더 코드를 손봐서 쓸데없는 군더더기를 다날려버린 커스텀 셰이더를 만드는 게 좋다

• 필요하다면 캐릭터마다, 혹은 각 오브젝트마다 하나씩의커스텀 셰이더를 수식과 수치 하나씩 고쳐가며 생성

• 셰이더를 고치고 나면 “꼭 폰테스트” (!!!)

Page 39: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

예산은 얼마 들었나?

• 그래픽 외주비용 도합 : 약 1500만원

• 어셋스토어 : 2938.5$ = 약 350만원 (환율 1200원)

• Daz3D 어셋 : 약 10만원

• 사운드 소스 구입 : 약 100만원

Page 40: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

실지 개발된 결과물

직접 시연해 보겠습니다.

Page 41: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

한계선은 좀 만져봤나?

• 소규모 인디로 규모 있는 게임을 뽑는 건 문제 없다개발툴의 발달로 기술적인 진입장벽이 허물어졌으며리소스에 들어가는 비용과 시간은 저렴하게 커버 가능하다

• 모바일 기기의 퍼포먼스는 거의 전세대 게임기 레벨(조만간 플스3급의 퍼포먼스 기기가 나올지도)

• 상식적인 결과도 비교 해보면 꼭 그건 아닌 거도 많더라(예를 들어 라이트맵을 꼭 구워야 하나? 그건 상황에 따라 다르다)

• 개발에 “정석”이란 없다. “잘 돌아가면 장땡”이다.

Page 42: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?

UNITY4 베타로 시작해서4.6.4로 끝내며

• 방만한 구조가 되기 쉬운 엔진이므로 구조에 신경쓰는 것이 좋다Prefab 관리나 Instantiate 의 참조는 고민해서 배치할 것느린 Find 명령을 안쓰려면 GUI Editor 에서 연결하는 게 좋음(하지만 이 경우 협업시에 신경써주지 않으면 Missing 되기도)

• 유니티의 힘은 내가 볼 땐 70%는 어셋스토어가 먹고 들어간다.남이 만든 물건을 쓰는 것에 거부감이 있다면 손해보고 있는 거다

• 새로운 개발툴이나 서비스는 항상 튀어나오고 있다종종 써먹을 만한 새로운 툴이나 서비스가 있는지 확인할 것대세와 다른 새로운 툴을 사용하는 것에 겁먹지 말자

Page 43: Unite 2015 Seoul : 인디에게 어디가 한계인지는 해봐야 알잖아?