2. 저는 이런 개발자입니다.
• 코딩 32년차/ 데뷔 25년차 인디 게임 개발자
(1991년 호랑이의 분노로 데뷔)
• 올파트(All-Part) 게임 개발자
플랫폼 불문, 장르 불문
인디 개발자이면서 오버 쪽과 일하는 것도 꺼리지 않음
• 대세는 알지만(교수) 따르지는 않는(개발) 마이웨이
• 호랑이의 분노, 푸른매, 그녀의 기사단, 혈십자 등 개발
3. 실버불릿의 시작
• 2012년 혈십자가 끝나갈 때 쯤 처음 구상
멀티터치에 특화된 뭔가 기묘한 조작이 없을까?
• 지금까지 내가 만들어 본 적 없는 장르를 만들고 싶다
• 그 계기가 된 셀프 팬아트 일러스트 한 장
• 8년 만에 돌아온 제자에게 실무 경험을 쌓게 하고
싶으므로 팀 작업을 한다는 것을 전제
4. 이게 문제의 그 그림
• 혈십자의 캐릭터 중
제 최애캐인 “니모”요원
(실지론 서브 히로인)
• 퇴마 수녀 설정
• 이 누님을 주인공으로
세워보고 싶다!!
(최종적으론 다른 캐릭
다른 세계관이 되었음)
5. 그리고 UNITY4..
• 원래는 내 라이브러리도 있었다(CK2D, CK4D)
• 제자와 협업/교육을 위해서는 일반적인 엔진이 필요
• 때마침 Unity4 베타가 출시
• 그래 나도 이번엔 그 대세라는 유니티를 써 보자!!
6. 유니티를 처음 만져본 소감
• 구조가 방만하네..
(마구 Append 해가는 느낌의 구조?)
• 아 GUI Editor 싫다.. 정말 싫다..
• 객체지향 코딩은 영 취향에 안 맞는데..
에라!! 진짜 방만한 개발이 뭔지 보여주마!
7. 방만한 게임 = AAA 지향
• 나다운 게임을 AAA스타일로 모바일에서 만들어보자!
(인디로 큰 게임은 안돼? 난 종종 혼자서도 해봤는데?
모바일은 간단한 게임 위주라고? 앞으로도 그럴까?)
• 발매 예정은 아마도 2014년말-2015년초로 생각:
당시 기준으로 최신 폰 정도에 맞춰서 개발하면 될듯?
(레퍼런스 폰은 LG 옵티머스 G-Pro : 이유는 고해상도)
• 가능하면 그래픽 퀄리티 설움의 한(..)을 풀어보자.
9. 목표점 설정
• 콘솔 스타일의 게임 진행 / A급 퀄리티의 그래픽
• 신기술이나 써먹을 수 있는 기술은 닥치는 대로 써먹자!
연출상 필요하다면 얼마든지 기술개발에 투자하겠다.
• 개발 스케쥴은 2년 반 = 2014년 말 목표
우리가 목표한 퀄리티와 코어한 모바일 게임의 시장은 2015년 초부터
일반화 될 거라 예상
(하지만 실지로는 2012년 말의 예상보다 반년쯤 빨랐다)
10. 정말 개발 견적이 나올까?
• 개발 시작 시 개발 팀원은 2명
모든 파트 커버 가능한 경험 많은 만능 개발자 별바람
+ 재능이 있으나 아직 경험은 없는 초보 프로그래머
• 개발비는 이전 게임(혈십자) 수입 + 교수 월급
= 대략 2년까지는 버틸 수 있다고 추산(이후는..-_-)
• 엔진의 성향에 맞는 게임 스타일을 선택
11. 초기의 고민들
• 적은 예산의 인디 팀에서 모바일 환경으로 뽑아낼 수
있는 퀄리티와 게임 규모의 한계선은 어디인가?
• 시대의 흐름과 맞지 않는 고전적 게임성은 안 되는가?
(유저에게 스트레스를 주는 게임은 정말 안 되는가?)
• 확률과 지속적 플레이 유도가 아니라면 돈을 못 버는가?
12. 그리고 셀프 대답들
• 소규모이므로 상대적으로 적은 예산으로 버틸 수 있다.
-> 그 버틸 예산이 있다면, 시간을 가지고 한계선과
돌파구를 하나씩 확인 해보며 가면 되는 게 아닌가?
• 진짜 그런 게임성 승부가 가능한지 아무도 안 해봤잖아?
(모바일 특성을 모른 채 만들어진 애매한 물건 말고)
그럼 항상 무모한 내가 해보면 된다
13. 게임의 기획의 기본 골격
• 멀티터치를 이용한 쌍권총 멀티 타겟 컨트롤
• 영화적인 연출과 공략이 필요한 패턴의 보스 배틀
• 이게 어울릴 장르를 생각해보면 잠입 액션과 파밍RPG?
• 메탈기어와 디아블로를 합쳐 내 스타일로 만든다면?
14. 기획의 기술적 도전 과제
• 쌍권총의 2중 타겟 IK 컨트롤
• 추적하고 따돌릴 수 있는 놀아줄 만한 적 AI
• 1080p 이상으로 최고 퍼포먼스를 뽑아낼 수 있을 것
(2년 이상의 개발기간 동안 폰이 발전할거라는 전제로)
• 자동생성 던젼 맵 (+ AI 길 찾기)
15. 대충 이렇게 해결했습니다
• IK는 HeadLookController 기반으로 시간을 들여 그냥 짰음
(캐릭터 기본 자세 세팅이 중요함 : 양팔의 방향 등)
• AI 는 FSM 을 근간으로 주요 스테이트가 유기적으로 엮이게 설계
(서로 근처의 다른 몹 AI에게 헬프 콜 등을 보내 서로 유기적으로)
• 퍼포먼스는 일일히 시험삼아 빌드해서 실험해보며 기술개발
(2년반의 스케쥴 중 첫1년은 기술 개발에 투자할 수 있었음)
• 던젼은 NavMesh를 규격화 시켜 쪼갠 후, Obstacle 로 해결
16. 기술적 도전 상황의 해결법
• 일단 쫄지 말고 코드를 짠다/일단 짜도록 시킨다
-> 에디터에서 돌아간다면 일단 준비는 되었음
• 그리고 무작정 폰에 올려서 돌려본다
-> 만약 느리다면 다음 단계로
만약 문제없이 잘 돌아간다면 Profit!
• 다시 코드를 검토하고 기기 특성을 확인하며 가능성 체크
-> 더 좋은 방법은? 기기 특성을 우회할 방법은?
• 막상 해보면 의외로 폰의 퍼포먼스 허용 한계가 높다
특히 폴리곤 수는 의외로 굉장히 허용선이 높더라
17. 문제는 그래픽 리소스
• 개발 팀원 2명 (2012-2013년 당시)
프로그래머 1명 + 만능맨 1명 : 프로그래머 위주의 팀
• AAA타이틀을 만들려고 한다면 그래픽 리소스는 어떻게?
• 내가 기획을 하면서 그래픽을 함께 커버하겠다고는 해도
기본적으론 2D도트맨이고 3D그래픽 작업은 경험이 부족
• 하지만 믿는 구석이 있었다
18. ALL HAIL ASSET STORE!
• “합법적”으로 사용할 수 있는 방대한 리소스
• 내가 유니티의 강점의 70%라고 생각하는 부분은 어셋스토어
(그 동안 쌓여있는 어셋의 숫자 자체가 펀더멘털이라 생각함.)
• 특히 일부의 그래픽 어셋은 A급에 손색없는 퀄리티
• 즉, “돈으로 발라버리는 개발”이 가능하다!!!!!
(하지만 외주를 주거나 팀원을 고용하는 거 보다 싸다!)
19. 배경은 어셋스토어로 해결
• 퀄리티가 굉장히 중요하나 무난하다면 개성이 없어도 OK
-> 결국 맵을 구성하는 센스가 중요하다
• 어셋스토어에서 구할 수 없는 독특한 어셋이 필요한 경우가
아니라면 배경 리소스는 기본적으로 전부 어셋 스토어에서
구입해서 사용
• 선별 기준은 샘플을 보고 퀄리티 최우선
퀄을 깎아 낮출 순 있지만 기본적으로 낮은걸 올릴 순 없다
지금 쓸게 아니라도 고퀄 배경을 할인하면 무조건 지른다
20. 캐릭터도 일단 어셋스토어
• 설령 나중에 다른 모델로 바꾼다고 하더라도,
일단 프로토타이핑을 위한 캐릭터가 필요하다.
• 특히, 상대적으로 중요도가 떨어지거나 흔한 타입의 적
캐릭터라면 굳이 직접 만들 필요가 없다 = 어셋스토어
• 선별기준은 퀄 보다는 즉시 사용 가능여부
1. 리깅이 잘 되어 있을 것.
2. 애니메이션 세트가 기본적으로 갖춰져 있을 것.
3. 퀄리티도 나쁘지 않다면 최종까지 사용을 고려 할 수 있음.
• 텍스쳐 등은 자신의 취향대로 수정할 것
21. 이펙트도 일단 어셋스토어
• 어셋스토어에 올라온 일부 이펙트 어셋들은 꽤 멋지다
(이번 게임은 Flying Teapot 제품들이 성향에 맞았음)
• 모바일에선 무거운 경우가 있으므로 잘 골라야 함
- 디스토션 효과는 일단 무리 (2015년 초 현재 기준)
- 폭발의 연기등 화면의 “면적을 넓게 가리는”이펙트는 느림
- 게임 풍과 어울리는가? : 너무 만화적인 이펙트는 곤란함
• 비슷한 것을 구입해서 직접 수작업으로 고치는 것을 추천
22. 기본적인 애니메이션은
MIXAMO + 자체제작
• Mixamo사가 기본적인 모션들을 잔뜩 팔고 있음
(Mixamo store 어셋을 깔면 유니티 에디터 상에서
캐릭터에 붙어서 돌아가는 모션을 확인하고 구입할 수 있음)
• 특별하지 않은 기본적 게임적 모션은 다 있다고 생각하면 됨
• 단, 액션 공격 모션들은 좀 구리다 -> 직접 만들어 쓸 것
-> 그래서 2014년 결국 팀에 애니메이터를 신규 채용
23. 음악은 APM MUSIC
• 보통 어셋스토어에 올라온 음악과 사운드는 좀 구리다(!!)
• 하지만 어셋스토어 APM에서 파는 음악은 꽤 고퀄리티
비싸지만 가격 값은 하고, 외주보다는 훨씬 싸다
• 그 외 음원을 파는 별도의 사이트에서 구입해도 좋지만,
음원 사용의 라이선스를 꼭 잘 확인해볼 것
• 사운드는 어셋스토어 물건보단 외부의 음원 사이트에서
소스를 구입해서 직접 편집하면서 사용하는 것을 추천
24. 하지만 중요 캐릭터는?
• 그래도 주인공까지 어셋스토어 물건 쓰는 건 곤란하지 않나?
• 주인공 외에도 오리지널리티가 있는 보스들이나 중요한
캐릭터들은 어셋 스토어의 물건만으로는 역시 한계가 있음
• 그러므로, 주인공은 별도로 외주를 내거나 “다른 방법”을
고민해 볼 필요가 있었다
• 학생 모델러를 들여서 주인공 모델링을 해서 써볼까도 고민
했으나 학생 레벨로 A급 타이틀에 어울릴만한 퀄리티는
무리라고 판단
26. DAZ STIDIO
• Daz3D : 개발 초기에 프로토타이핑에 사용함.
일종의 Poser 류의 간단한 캐릭터 메이킹 후 영상을 만드는 툴
게임 커스터마이징 하듯 모델을 만들고 옷을 만들어 입힐 수 있다
• 소프트웨어 자체는 무료이나 옷이나 프롭 등의 구입에 과금
• FBX export가 가능하여 완전히 리깅된 상태로 생성
• Decimator 플러그인을 사용하면 폴리곤 수를 조절 가능
• 게임 개발용 라이선스가 존재
27. DAZ3D 결과물
• 대략 20,000 Tris (헐…)
• 머리,얼굴,몸,브라,바지,신발, 눈알
전부 개별 텍스쳐(…)
• 눈알과 혀까지 리깅된 상태(…)
• 그런데도 의외로 잘 돈다(…)
• 2014년 초반 버전까지 사용
28. DAZ3D 결론
• 장점 :
Daz3D 에서 다양한 복장이나 장비 등을 판매하고
있어서 커스터마이징을 극단적으로 하는 것이 가능하다
게임 개발용 라이선스도 판매해서 합법적으로 사용가능
• 단점 :
Decimator가 구려 20000tri 이하는 현실적으로 무리
(하지만 20000짜리 주인공이 모바일에서 잘 돌더라는 게 함정)
기본적으로 게임용이 아니라 본이 좀 심하게 많다
텍스쳐를 너무 쪼개서 생성한다
30. MIXAMO FUSE
• 어셋스토어에서 Mixamo 가 판매하는 캐릭터 생성툴
• 게임개발 용도라면 일단 Daz3D 보다 나음
(게임에 맞게 최적화된 Bone 구조와 Decimator)
• 소프트웨어 자체에 기본 가격이 있음(100$)
가격정책에 따라 리깅과 애니메이션 수량이 정해짐
• 현재 NPC 캐릭터들에 Fuse 로 생성한 캐릭터를 사용
31. FUSE 결과물
• 서브 히로인..이 아니라 서브
남주격인 Seth 박사
• 대략 6000 tris 사용
(나름 게임의 주역이라..)
• 본 구조는 보이는 대로 약간
오버하는 정도
32. FUSE 결론
• 장점 :
Daz3D 에 비해 Decimator가 강려크하다.
(대략 3000 tri 정도로도 무난하게 잘 뽑아줌)
자동으로 뽑아주는 리깅이 의외로 꽤 좋은 편
• 단점 :
샵이 없다보니 커스터마이징 자유도는 적음
(Daz3D 로는 별별 희안한 복장이나 프롭 들이 많다)
Daz3D보단 낫지만 본과 텍스쳐를 좀 심하게 나눈다
33. SIMPLYGON
• 개발툴이나 어셋이라기보단 월 정액 서비스에 가까움
• 기본적으로 Decimate, Texture Merge, LOD 생성지원
• 앞에서 고퀄의 배경을 사라고 말한 이유가 바로 이 물건
(원하는 수준까지 폴리곤을 Reduction 시킬 수 있다)
• Draw Call 을 줄이기 위해서 이리저리 나뉘어진 Texture를
병합하는 데에도 매우 유용함 (특히 배경에 유용)
• 최적화를 위해 유용한 서비스
34. 그 외에 시도해 본 것들
• Poser : 캐릭터 퀄 자체로는 Daz3D 이상이나 게임용은 아님
• Make Human : 공짜라는 점 외엔 별로..
• Substance Painter : 텍스쳐 드로잉 시 꽤 편하다
• VertExmotion : 유니티 셰이더 Soft Body Animation
• Unity Analytics : 유저 스토킹은 개발자의 로망(..)
• Google Drive : 개발 중 실시간 Text 수정 및 번역용
36. 외주 그래픽 작업
• 오리지널 캐릭의 퀄리티에는 그만한 비용이 필요하다
• 원화는 직접 그린 후, 모델링 + 텍스쳐까지 외주
• 리깅 + 애니메이션은 팀 내에서 작업
• 텍스쳐는 직접 만든 Shader 와 함께 다시 직접 손질
(텍스쳐의 외주 주문 사항은 기본적인 부분만 요구)
• 최종적으로 In-Game의 움직임을 보며 직접 손질한다
37. 배경 어셋의 작업 프로세스
• 어셋스토어에서 비슷한 느낌의 배경 세트 어셋 구입
- 일단 모델링 자체는 하이폴 고퀄리티로 구입
- 라이팅/셰이더 빨에 속지 말 것 (믿지말자 조명빨)
- 어셋에 포함된 자잘한 파일들이 뭐가 있는지는 꼭 확인
• 게임에 라이트와 셰이더를 적용해보며 직접 텍스쳐 가공
• 대충 기본 모양이 다 잡혔다 생각하면 Simplygon 으로
Reduction + Merge
• 실지 기기에 넣고 퍼포먼스와 비쥬얼 체크
38. 셰이더는 직접 만지자
• 커스텀 셰이더 관련 어셋들이 여럿 있으나,
셰이더 코딩을 할 수 있으면 직접 짜는 것이 편하다
(나만 그런지는 모르지만 GUI 보단 텍스트가 편안하다)
• 참고용으로 보고 싶은 셰이더는 사서 해부해볼 것
• 최종적으론 섀이더 코드를 손봐서 쓸데없는 군더더기를 다
날려버린 커스텀 셰이더를 만드는 게 좋다
• 필요하다면 캐릭터마다, 혹은 각 오브젝트마다 하나씩의
커스텀 셰이더를 수식과 수치 하나씩 고쳐가며 생성
• 셰이더를 고치고 나면 “꼭 폰테스트” (!!!)
39. 예산은 얼마 들었나?
• 그래픽 외주비용 도합 : 약 1500만원
• 어셋스토어 : 2938.5$ = 약 350만원 (환율 1200원)
• Daz3D 어셋 : 약 10만원
• 사운드 소스 구입 : 약 100만원
41. 한계선은 좀 만져봤나?
• 소규모 인디로 규모 있는 게임을 뽑는 건 문제 없다
개발툴의 발달로 기술적인 진입장벽이 허물어졌으며
리소스에 들어가는 비용과 시간은 저렴하게 커버 가능하다
• 모바일 기기의 퍼포먼스는 거의 전세대 게임기 레벨
(조만간 플스3급의 퍼포먼스 기기가 나올지도)
• 상식적인 결과도 비교 해보면 꼭 그건 아닌 거도 많더라
(예를 들어 라이트맵을 꼭 구워야 하나? 그건 상황에 따라 다르다)
• 개발에 “정석”이란 없다. “잘 돌아가면 장땡”이다.
42. UNITY4 베타로 시작해서
4.6.4로 끝내며
• 방만한 구조가 되기 쉬운 엔진이므로 구조에 신경쓰는 것이 좋다
Prefab 관리나 Instantiate 의 참조는 고민해서 배치할 것
느린 Find 명령을 안쓰려면 GUI Editor 에서 연결하는 게 좋음
(하지만 이 경우 협업시에 신경써주지 않으면 Missing 되기도)
• 유니티의 힘은 내가 볼 땐 70%는 어셋스토어가 먹고 들어간다.
남이 만든 물건을 쓰는 것에 거부감이 있다면 손해보고 있는 거다
• 새로운 개발툴이나 서비스는 항상 튀어나오고 있다
종종 써먹을 만한 새로운 툴이나 서비스가 있는지 확인할 것
대세와 다른 새로운 툴을 사용하는 것에 겁먹지 말자