카카오게임 첫 도전기 <돼지러너>

1,896 views
1,578 views

Published on

Devon 2013 발표자료

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,896
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
35
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

카카오게임 첫 도전기 <돼지러너>

  1. 1. 카카오게임 첫 도전기 ㈜블리스소프트 김경민
  2. 2. 회사소개 • 주식회사 블리스소프트 • 캐쥬얼게임 전문 모바일게임 개발사 • 마우스피싱(Rat Fishing) • 돼지러너 for kakao • 아프리카TV로부터 투자
  3. 3. 발표자소개 • • • • 김경민 COO 사업제안 언제든 환영 min@blissoft.com
  4. 4. 스크린샷
  5. 5. 돼지러너 소개 • iOS, Android(구글 플레이) • 점핑런게임 • 늑대의 먹이가 되지 않기 위해 도망치는 돼지의 러 닝 + 점핑요소 가미 • 친구와 함께 우정릴레이 • 100만 조합의 나만의 돼지 • 아프리카TV 퍼블리싱 • 출시 3일만에 구글플레이 무료게임 순위 1위 • 200만 회원 돌파 • 해외 진출 예정
  6. 6. 게임 컨셉 • • • • • 기존 러닝에 더해 점핑(높이높이)요소를 추가 멀리도 가야하지만 높이도 올라가야한다 우정릴레이를 통한 누적거리 계산과 보너스선물 100만종의 조합이 가능한 돼지구성 세트조합, 히든조합으로 특수효과 발동
  7. 7. 돼지러너 소개 • cocos2d-x • LAMP, mongoDB, memcached • 팀구성 – PM 1명 – 게임디자이너 1명 – 아트디자이너 2명 – 클라이언트 개발자 3명 – 서버 개발자 1명
  8. 8. 게임서버 게임서버 로그서버 게임서버 게임서버 캐시서버 이미지 스토리지 운영서버 DB서버
  9. 9. 아키텍쳐 • • • • 자체 IDC 로드밸런싱은 간단하게 라운드로빈 구성 게임서버와 나머지 서버들은 망분리 모든 통신은 SSL 이용
  10. 10. 게임서버 • LAMP – Linux, Apache, MySQL, PHP • 모두 무료 • PHP는 코드 배포시 컴파일이나 서버의 재시동 이 필요 없음 • RESTful API • RESTful은 수평 확장이 매우 쉬움
  11. 11. 캐시서버 • Memcached • 랭킹을 비롯한 임시데이터 저장소 • 유실되어도 상관없거나, 값의 무결성이 중요하 지 않은 데이터 저장 • 질의 연산이 비싼 데이터를 캐싱하여 DB부하 분산 • 캐시서버가 다운되더라도 게임은 정상적으로 운 영되도록 예외처리
  12. 12. 로그서버 • 많은 NoSQL 을 후보군으로 놓고 검토 – Schema less – 빠른 Insert속도 • mongoDB를 선택한 이유 – 방대한 문서와 예제, 구글링 검색결과 – RDB에서 넘어오기 가장 부담없는 NoSQL – 친절하게 SQL을 어떻게 mongoDB로 포팅해야하는지 제공 • • • • 사용자 액션 수집(아이템 구매, 소비, 행동) 로그서버가 다운되더라도 게임은 정상적으로 운영되도록 예외처리 데이터를 검색하기 위해 index 생성은 필수 서버 중지 없이 index를 생성할 수 있도록 락을 걸지 않는 Background 방식의 인덱스생성기능을 최신버전에서 지원
  13. 13. 스토리지 + CDN • 공지사항, 이벤트 등에 쓰이는 이미지를 비롯한 리소스 보관
  14. 14. 경험과 배운것, 느낀점 • 당연한것들의 재발견 • Go to Basic
  15. 15. 인앱해킹 • 반드시 서버에서 결제정보를 재검증 • 영수증이 유효한지 체크(애플, 구글) • 영수증이 기존에 처리된 영수증인지 주문번호를 통해 체크할것(중복 지급하지 않도록) • 결제요청이 들어온 인앱상품이 우리 앱에 존재 하는지 확인. 다른 앱의 유효한 영수증이 날아 온다(iOS)
  16. 16. 메모리해킹 • 점수, 코인 등 중요 정보는 꼭 메모리해킹 대응 • 업그레이드 상태, 체력, 공격력, 방어력, 속도 모두 메모리 해킹의 대상 • 요즘 메모리해킹 도구는 굉장히 발전해서 게임 을 중간중간에 멈춘 다음에 변화하는 int값을 추려내어 값을 조작할 수 있는 해킹 인터페이스 를 제공 • 모두 대응할 수 없다. 적당히 trade off
  17. 17. 안드로이드 테스트 • 안드로이드 파편화(다양한 크기의 디스플레이) • 많은 기기를 테스트하면 할수록 좋다 • 오래된 기종이라도 많은 판매량을 기록한 기기 들은 꼭 체크(갤2, 갤노트1)
  18. 18. 안드로이드 대응 • 심사가 없어서 좋은 안드로이드 • 마켓등록 후 3시간 정도면 검색가능(사람마다 차이가 있음) • 원하는 기능을 제약없이 마음대로 • 다른 사람에게 인앱 선물하기 가능
  19. 19. iOS 국내에서 어렵다 • • • • • 긴 검수기간 Android에 비해 1~3개 빌드 늦어지는 iOS 개별 사용자 결제 취소 불가 대한민국은 Android 텃밭 돼지러너의 경우 95:5(Android : iOS)
  20. 20. DB • MyISAM엔진은 쓰기가 많은 게임용으론 적당 하지 않다 • 꼭 검색에 사용하는 필드는 인덱스 생성 • slow-query 수시로 체크하여 튜닝
  21. 21. 퍼포먼스 테스트 • 출시전 게임 퍼포먼스 테스트 • Jmeter, apache ab, nGrinder • RESTful API는 테스트 케이스를 만들기도 매우 간단하다 • 테스트를 통해 인덱스가 필요한 곳이나 비즈니 스 로직을 개선해야할 부분을 발견할 수 있다.
  22. 22. 운영툴 • • • • • • • • 운영툴 (CS툴 + 개발툴 + 통계툴) 오버스펙 경계 Boostrap은 빠른 개발도구 디자이너의 도움 없이 컴포넌트를 붙여넣 는 식으로 빠르게 개발가능 CS담당자들이 사용자의 행동을 추적하여 고객요청에 대응할 수 있도록 클라이언트개발자들이 스스로 값을 변경하 여 클라이언트 기능을 테스트 해볼 수 있 도록 매니저들이 중요 지표들을 확인할 수 있도 록 운영툴개발은 개발자의 시간을 많이 빼앗 지만 잘 만들어놓은 운영툴은 잡무에서 벗 어날 수 있게 해주어 오히려 이득
  23. 23. 로그의 활용 • 미리미리 KPI 설정하자 • 계속 변경되는 게임기능상의 변화로 어쩔 수 없 이 기능이 픽스되는 후반에 후다닥할 수밖에 없 는 로그넣기 작업 • 필요한 로그만 넣기 • 활용 다 못한다 • 쓰레기 쌓아두는격
  24. 24. 통계가공 • KPI에 따른 통계 • 자주 체크해야하는 통계는 운영툴에서 언제든 볼 수 있도록 제공 • Google chart API
  25. 25. 디버그, 테스트 도구와 문서화 • RESTful API를 테스트 할 수 있는 도구를 자체 개 발하여 사용중 • 문서화는 필수 • 클라이언트 개발자들이 쉽게 알 수 있도록 Swagger
  26. 26. 클라우드서비스 • 개발유휴인력, 서버자원이 부족한 스타트업에게 딱인 클라우 드서비스 • 대표적으로 AWS, 국내에는 KT ucloud(대표 게임 확밀아) • 수요에 따라 서버를 증설 가능 • Auto scaling, 웹UI • 보안과 편의성의 trade off • AWS는 가장 가까운 데이터센터가 tokyo • AWS tokyo로 서비스하는 게임들도 있다 • 그렇지만 tokyo도 국내에서 서비스하기엔 응답속도가 아쉽 다 • KT유클라우드 이제는 auto scaling을 비롯 AWS를 많이 따 라 잡았다
  27. 27. 감사합니다

×