57
에어헌터 for kakao 포스트모템 위메이드 엔터테인먼트 최우영 2013.07.15 온라인 서버 개발자 모임

에어헌터 for kakao 포스트모템(공개용)

Embed Size (px)

DESCRIPTION

메인 개발자로 참여한 모바일게임 에어헌터 for kakao의 개인적 회고 목적의 포스트모템 2013.07.15 온라인서버개발자모임에서 발표 http://cafe.naver.com/ongameserver

Citation preview

Page 1: 에어헌터 for kakao 포스트모템(공개용)

에어헌터 for kakao 포스트모템

위메이드 엔터테인먼트

최우영

2013.07.15 온라인 서버 개발자 모임

Page 2: 에어헌터 for kakao 포스트모템(공개용)

들어가기 전에

• 비공식, 개인 회고 포스트모템입니다.

• 회사의 견해와 다를 수 있습니다.

• 실제 발표 슬라이드와 다른 배포용 편집본입니다.

Page 3: 에어헌터 for kakao 포스트모템(공개용)

게임 소개

Page 4: 에어헌터 for kakao 포스트모템(공개용)

에어헌터 for kakao

Page 5: 에어헌터 for kakao 포스트모템(공개용)

에어헌터 for kakao

모르는 분 많으시죠?

Page 6: 에어헌터 for kakao 포스트모템(공개용)

에어헌터 for kakao

• 2013년 위메이드 엔터테인먼트에서 자체 개발한 모바일 슈팅 게임

• 카카오톡 플랫폼

• 전통적인 슈팅 게임의 재미 구현

• 기체 강화

• 이어하기

• 편대 전투

Page 7: 에어헌터 for kakao 포스트모템(공개용)

보스전이 준비되어 있어요 슈팅게임의 재미가 그대로!

Page 8: 에어헌터 for kakao 포스트모템(공개용)

제작 과정

Page 9: 에어헌터 for kakao 포스트모템(공개용)

• 개발 기간 6개월

• 개발 스텝 초기 5명

• 런칭시 약 40명

• 라이브팀 10여명

• 유니티 + C#

• Asp.NET + NoSQL

Page 10: 에어헌터 for kakao 포스트모템(공개용)

왜 하필 슈팅인가요?

• 때는 2012년 10월

• 저 슈팅 게임 좋아합니다

Page 11: 에어헌터 for kakao 포스트모템(공개용)

2012년 10월 마켓

Page 12: 에어헌터 for kakao 포스트모템(공개용)

• 모바일 게임의 신흥 강자 드래곤 플라이트!

• 당시 추정 일매출 3억

• (그것도 1인 개발자라는 소문)

Page 13: 에어헌터 for kakao 포스트모템(공개용)
Page 14: 에어헌터 for kakao 포스트모템(공개용)

프로젝트 시작

이제부터 고난 시작

Page 15: 에어헌터 for kakao 포스트모템(공개용)

만들고 싶었던 것

• (테스팅 겸 처음 만드는 모바일이니까)

• 캐주얼 유저는 버리고 간다(는 마음으로)

• 하드코어 탄막 슈팅!

• 화면에 총알이 무지 많이 나오고 플레이어는 신컨으로 피해야해!

• 실제로는 피격 범위가 적어서 어렵지 않다.

Page 16: 에어헌터 for kakao 포스트모템(공개용)

동방 프로젝트

Page 17: 에어헌터 for kakao 포스트모템(공개용)

도돈파치 시리즈

Page 18: 에어헌터 for kakao 포스트모템(공개용)

실제로는

• 반복되는 스테이지 구성으로 레벨링

• 총알 개수가 많아져서 여러 번 반복하면 탄막계열이 됨

• 미들 코어 유저용 슈팅 게임

Page 19: 에어헌터 for kakao 포스트모템(공개용)

프로토타입의 함정(1)

• 불명확한 비전 제시 : XXX는 이렇던데

• 개발사의 자존심 : xxx와는 다른 재미

• 그럴거면 완전히 새로운 기획으로 가는 게 낫다

Page 20: 에어헌터 for kakao 포스트모템(공개용)

프로토타입의 함정(2)

• 빠른 이터레이션 = 프로토타이핑 필수

• 불안정한 기획과 게임 방향이 휙휙 바뀌는 환경

• 한 수 앞을 내다보는 기획이 필요하다

• 프로토 타이핑 과정도 개발 기간에 포함되니 문제가 됨

Page 21: 에어헌터 for kakao 포스트모템(공개용)

컨텐츠를 채워라

• 프로토타입 통과

• 제작 기간 준수를 위해 클라이언트 프로그래머 대량 투입

• 필요한 컨텐츠

– UI

– 빌링

– 상점

– 게임 컨텐츠 : 적기 패턴과 보스 등

• R&D: C#, UNITY

Page 22: 에어헌터 for kakao 포스트모템(공개용)

‘우린 MMORPG 만든다고 왔는데 왜 슈팅을 만들어야 해? 그것도 유니티에 C#으로?’ (라는 불만이 있었습니다)

Page 23: 에어헌터 for kakao 포스트모템(공개용)

불만 제거

• 시간이 약..

– 팀 내에 꼭 해야하는 분위기가 조성됐고

– 하다보니 재미 붙여서 다들 작업했어요

– 국내 게임판 자체도 모바일로 돌아가기 시작했고요

• 작은 작업부터 시작

• R&D 할 수 있도록 여유 시간 배정

• 결과적으로 독립된 컴포넌트 개발 방식(유니티랑 잘 맞았다)

Page 24: 에어헌터 for kakao 포스트모템(공개용)

후반부 작업 러시

• UI는 지속적으로 개편(출시전까지 계속 수정! 정말 힘들었어요)

• 서버제작과 운영툴, 로그(꼭 런칭 1~2주전에 다량으로 쏟아짐)

• 사운드 투입

– 이 안에 스파이가 있다!(사운드 하나에 게임성이 확 바뀜)

• 사업팀 투입

– 카톡 게임 요소(SNG)

– 편대 : 점수대결, 2인 대결, 이어하기 등 여러 의견

Page 25: 에어헌터 for kakao 포스트모템(공개용)

결국 런칭!

Page 26: 에어헌터 for kakao 포스트모템(공개용)

아쉬웠던 점

Page 27: 에어헌터 for kakao 포스트모템(공개용)

개발 과정

• 테스팅 기기와 개발 도구의 지원 미흡

– 각종 모바일 기기, iOS 및 개발자 라이선스와 배포 권한

– 좀 더 iOS 배포와 테스팅을 빨리 했으면 좋았을 것

– 런칭하고 갤S2에서 네트웍 문제가 자주 발생했는데, 갤S2는 테스팅폰으로 구할 수가 없었어요. 단종됐데요.

Page 28: 에어헌터 for kakao 포스트모템(공개용)

• C#과 유니티 숙달자 부족

– 틈틈히 트랜드를 파악하며 유연해질 수 있는 능력이 중요

– 둘 중 하나라도…

• iOS, Android 플랫폼 지식 부족

– 빌링, 플러그인을 위해서는 결국 플랫폼 지식 필요

• 독립된 테스팅 환경 구축

– 개발, 알파, 베타, 심사용, 서비스 망 등의 테스팅 환경 선 구축

Page 29: 에어헌터 for kakao 포스트모템(공개용)

• 불편한 UI

– UI도 UX도 모두 불편

– 공통 UI 컨트롤의 필요성(개발자가 임의로 다이얼로그 테스팅하기 편하게)

• 조작 편의성

– 왼손, 오른손 잡이, 색약

• 기체 볼륨 보다는 정교한 레벨링

– 레벨링에 신경을 더 썼다면 더욱 좋은 게임이 되었을 것

• 반복되는 게임 플레이 구성의 변화

Page 30: 에어헌터 for kakao 포스트모템(공개용)

• 기획 문서 부재

– 문서화 보다 말로…

– 업데이트 속도가 너무 늦음

– QA, 사업팀과 협업하기 위해서는 기획문서 필수

• 스토리 부재

– 대체 내가 누구를 지키기 위해 출격하는거야?

• 모노 디벨롭과 비주얼 스튜디오 개발환경 혼재(한글 주석과 엔코딩)

• 자바 환경 일치(1.7에서 사인키 버그 있어서 1.6으로 통일)

Page 31: 에어헌터 for kakao 포스트모템(공개용)

런칭 후

• 실서버 모니터링 불가

– 성능 측정 지표 부재(매출, 난이도 곡선, 성능 문제 등)

• 광고 스팟 부재

– 로그인 화면, 광고판, 게임 내 광고 가능한 요소들

• 클라이언트 로그 부재

– 재접속률, 플레이 시간 등 클라이언트에서 모아서 전송

• 긴급 패치 위해서 개발팀 집에 못 가요

– 런칭 하루 전 잉여 인력.. 필수!

Page 32: 에어헌터 for kakao 포스트모템(공개용)

잘한 점

Page 33: 에어헌터 for kakao 포스트모템(공개용)

몇 개 안 되는 잘한 점

• 편대

• S펜 지원

• 보안 대응

• 유니티로 개발하기

• 카카오 플랫폼 이용하기

Page 34: 에어헌터 for kakao 포스트모템(공개용)

편대

• 타 게임과 차별 요소

– 거리나 비행 시간 요소는 어울리지 않음

• 단순 점수 비교지만 멀티 느낌이 남

– 마피아 워즈를 생각해보세요

• 조금 더 다듬었으면 하는 아쉬움

– 경쟁심 생기도록 다이나믹한 요소

– 보상 요소(너무 적다고 해요)

Page 35: 에어헌터 for kakao 포스트모템(공개용)

S펜 지원

• 갤럭시 노트 시리즈는 펜 탑재

• 개발팀에서도, 지인들도 펜 지원 요구

• 노트1 펜보다 노트2 펜이 인식률이 좋다

• 유니티 3.5버전은 기본 S펜 지원이 안됨

• 자바로 간단하게 이벤트 처리

Page 36: 에어헌터 for kakao 포스트모템(공개용)

로컬 치팅 방어

• 변화된 변수를 추적하는 앱이 존재

– 4바이트 단위로 값의 일치, 변화를 추적

• 각종 커뮤니티 사이트 검색

– 결크, 돈벅, 버그 등으로 검색하면 됩니다

– 별의 별 방법 등장

• 게임 DLL을 변조하는 경우에는 이 방법으로는 어려움

– CS 팀에서 처리

Page 37: 에어헌터 for kakao 포스트모템(공개용)

유니티로 개발하기

• 때마침 유니티의 인기 급상승(자료 구하기가 쉬웠어요)

• 3D 인력이 많아서 3D 오브젝트를 올리는데 유리

• 크로스 플랫폼!

– 결국 iOS와 Android는 다 알고 있어야 작업 가능

– 그래도 따로 포팅해서 옮기는 것 보다는 훨씬 편함

– 카카오는 무조건 iOS, Android 동시 출시!

• 닷넷이라 난독화 하셔야 합니다

– 난독화와 SendMessage – Trade off

Page 38: 에어헌터 for kakao 포스트모템(공개용)

카카오 플랫폼

• 카카오의 위력

– 에어헌터 100만 돌파 보름(Android)

– 퍼즐앤드래곤 100만 돌파 200일

– 밀리언아서 100만 돌파 약 100일

– 여전히 카카오 게임이 상위권 절대 다수 차지

Page 39: 에어헌터 for kakao 포스트모템(공개용)

어제의 마켓 상황(최고매출)

Page 40: 에어헌터 for kakao 포스트모템(공개용)

어제의 마켓 상황(최고매출)

10위 카톡 빼고 죄다 카톡게임

Page 41: 에어헌터 for kakao 포스트모템(공개용)

배운 점과 느낀 점

Page 42: 에어헌터 for kakao 포스트모템(공개용)

애플의 함정

• 하트 보내기 불가

– 재화 선물 불가

– 문의 엄청 들어와요

• iPhone5 대응

– 게임 컨텐츠로 채워야함

• 리뷰 대기 기간이 길다

• 심사가 객관적이라는 느낌은 잘 안든다

Page 43: 에어헌터 for kakao 포스트모템(공개용)

서버는 죽어도 클라는 죽어선 안된다

• 유니티의 특징

– Android는 예외가 떨어져도 Catch가 된다

– iOS는 예외가 떨어지면 Crash가 된다

• 패치 기간이 길다

– Android는 1~3일

– iOS는 대략 3~7일 정도 걸림

Page 44: 에어헌터 for kakao 포스트모템(공개용)

서버에서 제어하기

• 각종 할인, 점수 이벤트

• 상점 가격과 항목 제어

• 쿠폰이나 선물

• 푸시 메세지

Page 45: 에어헌터 for kakao 포스트모템(공개용)

실시간 패치

• 용량에 따라서 개발사가 선택하면 됨

• 에어헌터는 20MB라서 전체 다운로드를 선택

• 결과적으로 패치 때마다 인기 순위 상승!

Page 46: 에어헌터 for kakao 포스트모템(공개용)

패치 이슈

• 런칭 후 빠른 속도로 업데이트 상황 발생

– 버그 패치

– 각종 기기 문제

• 문제는 Android와 iOS의 패치 일정 문제

– iOS의 경우 패치가 느려서 Android와 버전 차이가 발생한다

– 방법은 iOS를 버리고 가거나 iOS에 맞춰서 가거나.

Page 47: 에어헌터 for kakao 포스트모템(공개용)

최적화 이슈(1)

• 메모리 풀

– 튀는 것을 없애는데 도움이 됨

• 3D 데이터 경량화

– 로우 폴리곤(폴리곤 줄이는게 킹왕짱)

• 모바일 Shader

– float(4바이트) 말고 fixed(1바이트)나 half(2바이트) 같은 자료형 이용

Page 48: 에어헌터 for kakao 포스트모템(공개용)

최적화 이슈(2)

• 이펙트

– 유니티 이펙트(슈리켄)는 드로우콜에 도움이 안됨

• 사운드

– 모노, 해상도 축소

Page 49: 에어헌터 for kakao 포스트모템(공개용)

푸시

• 이벤트나 알림을 푸시로 처리

• 운영툴에서 푸시 메시지를 실시간 변경가능하도록 제작

• 몇 십만, 몇 백만 사용자에게 서버가 푸시하는 시간이 오래걸릴 수 있다

– 최악의 경우 한 밤 중에 받게 된다.

– 이미 이벤트 끝난 경우에 받기도..

– 가끔 푸시 하다가 죽기도 한다

– 반드시 성능 측정과 테스트가 필요함

Page 50: 에어헌터 for kakao 포스트모템(공개용)

퍼블리셔

• 위메이드는 국내 대형 퍼블리셔

• 장점 – CS 지원(좀 느리지만)

– 홍보(강추) • 크로스 마켓팅 – 막강. 게임과의 제휴 이벤트 – 윈드런너가 짱임

• 지하철 광고 – 폼나요… 지인에게 자랑하기 좋음

• 위미 관련 광고 – 런칭시 유리 – 런칭 전부터 관심 끌기 좋아요

– ‘에어헌터 곧 출시!’ 하면 댓글에 ‘와우 재밌어보여요! 근데 윈드런너 업데이트 언제함?’ 이런 댓글 달려요

Page 51: 에어헌터 for kakao 포스트모템(공개용)

서버, 무엇으로 만들어야 하나

• 최근 웹서버 뿐만 아니라 TCP를 이용해서 제작

• 웹서버는 분산에 확실히 편함

• 클라이언트 언어랑 맞추면 프로토콜 등의 작업이 편함

– 유니티 + C# & Asp.NET

– 유니티 + JavaScript & Node.JS

– 코코스 + C++ & C++ 서버

• 개발 기간이 짧고 웹에 익숙하지 않다면 있는 거 쓰세요

Page 52: 에어헌터 for kakao 포스트모템(공개용)

매출(1)

Page 53: 에어헌터 for kakao 포스트모템(공개용)

매출(1)

• 적당히 벌고 아주 잘살자는 불가능

– 착한 부분유료화로 이야기되는 타 게임 수입원

• LoL : 스킨, 룬, 캐릭터

– 퍼즐앤 드래곤은 과금 구조가 단순

• 가챠, 스태미너 보충, 이어하기, 보유칸 늘리기

• 최대한 벌고 아주 잘살자가 우리네 현실

• 따라서 초기에 사업부와 미팅 필수

Page 54: 에어헌터 for kakao 포스트모템(공개용)

매출(2)

• 소인원이 유리한 구조

• 이래저래 기본 50%~80%는 비용

– 마켓 30%

– 카카오 20%

– 퍼블리싱 및 서버 운용 비용 20%~30%

– 지속적으로 서버 유지비…

• 그래서 40명에 육박한 우리팀은 인센이…

Page 55: 에어헌터 for kakao 포스트모템(공개용)

결론

Page 56: 에어헌터 for kakao 포스트모템(공개용)

결론

• 게임이 재미있거나 충실하게 만들어졌다면 미들코어도 충분히 가능

• 따라하기는 개발자가 정신적으로 힘들다

• 크로스플랫폼이 가능한 엔진 선택, 플랫폼 지식도 필수

• 대박 혹은 인센을 위해서는 소인원으로 개발

• 여전히 국내의 카카오 영향력은 막강하다

• 가끔 PC방이 아닌 지하철에서 유저들을 보면 신기하다

• 모바일 개발은 역시 경험이 중요하다

Page 57: 에어헌터 for kakao 포스트모템(공개용)

감사합니다

http://www.wychoe.net

@whoo24