5. Cocos2d 개발 Kit
배포환경
!
개발환경
Android
MS
Windows
Android SDK
Android NDK
CygWin
Eclipse
Android Studio
OSX
Mac
Android SDK
Android NDK
Eclipse
Android Studio
Linux
Android SDK
Android NDK
Eclipse
Android Studio
iOS/OSX
MS Windows
Visual Studio
iOS SDK
Xcode
16. iOS In App Purchase
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html
17. Android In App Billing
http://developer.android.com/google/play/billing/billing_overview.html
18. Unique ID
Unique ID Type
iOS
Android
디바이스
제조사의 ID
디바이스 기반 UDID 사용시
앱 심사 리젝사유
OS 버전별로 다양
OS 버전별 호환성 이슈
Universally Unique
Identifier
OS 기본 제공
identifierForVendor
Universally Unique Identifier
구현하여 사용
Wifi Mac Address
iOS에서 Mac Address값이
부여된 값으로 나오지 않음
(iOS7 02:00:00:00:00:00)
Wifi가 없는 디바이스가 있어,
이 경우는 불가
OS 제공 플랫폼
GameCenter
google play account
3rd Party ID
소셜 플랫폼에서 제공하는 계정기반의 고유 ID 사용
ex) Kakao, Facebook, OpenFeint
19. 개발 마무리
•
소셜 플랫폼 적용하기
•
•
•
•
Kakao, Line, Wechat > 플랫폼 사업자가 선정
Facebook, OpenFeint, Twitter > 누구나 사용
Apple GameCenter > iOS
Google Play Games > Android
20. 개발 마무리
•
마케팅 플랫폼 적용하기
•
•
•
http://www.flurry.com/
http://www.playhaven.com/
http://www.google.com/analytics/
22. 게임 서비스 준비를 위한 Tip
인디 게임 개발자 스터디
이평섭 ( pyongsub@gmail.com )
23. 서비스 전략
• 서비스 정책
무점검
점검
!
!
• 마일스톤
업데이트
이벤트
소셜플랫폼은
제공하지 않음
알아서구현.
24. 서비스 전략
• 고객대응 Page
App Store
Facebook, Twitter
Cafe, Blog
Email
기타
!
• 운영툴
소셜플랫폼은
제공하지 않음
알아서구현.
25. 앱스토어 심사 준비
• 심사 체크 사항
iOS
https://developer.apple.com/appstore/guidelines.html
https://developer.apple.com/icloud/documentation/data-storage/
Android
!
http://play.google.com/about/developer-content-policy.html
• 심사 시점
미국 휴가시즌에 심사하는 경우 일정이 더 길어짐.
iOS, Android 심사 통과 시점이 다름.
평균적으로 iOS 심사기간 > Android 심사기간
첫 심사기간 > 업데이트 심사 기간
• 스토어에 표시되는 게임 타이틀
심사 중 변경 안됨
26. 앱스토어 심사 준비
• 심사 리젝 회피하기
심사시에는 disable 하고, 서비스 시작시에는 enable하기
ex) 서버에서 상태값을 설정하고, 이를 클라이언트가 연동하여 회피
!
!
• 사례
★ iOS
★ 게임내 저장소는 Library - Cache 폴더 사용
★ 로그인 없이도 게임 진행이 되게 하기
★ 캐시 구매 아이템 다른 사용자에 전달불가
27. 게임 서버 & 클라이언트 준비 #1
● 서비스 시작 전(개발 중 & 개발 완료)
!
!
!
!
!
개발
!
!
!
!
!
!
!
알파
라이브
베타
개발 = 알파 = 베타
라이브(앱스토어 심사용)
● 서비스 시작
라이브 서버 & 심사를 통과한 클라이언트로 서비스 시작
28. 게임 서버 & 클라이언트 준비 #2
● 서비스 후(업데이트 개발 순서)
개발
개발 중인 서버 & 클라이언트
알파
개발 완료된 서버 & 클라이언트
베타
라이브
라이브 서버와 동일한 상태의 서버로 업데이트시 앱스토어 심사용으로 사용
클라이언트는 앱스토어 심사 제출용으로 사용
라이브 서버 & 심사 통과 클라이언트
29. 서비스 상태 관리
서비스 상태
점검
업데이트
이벤트
서비스
점검 기간 알림 /
점검시 게임진행 가능여부 /
게임 진행 중 점검 상태 진입 처리
App Upate : 앱스토어 연결 / 게임 진행 가능 여부
In App Update : 앱 내부에서 업데이트 진행 / 업데이트 완료 후 게임 진행
특정 기간에 진행되는 이벤트 알림
게임 컨텐츠에 따라, 앱 내부, 외부 이벤트 연동 처리가 달라짐.
정상적인 게임 플레이가 되는 상태
30. 서비스 상태 흐름 예 #점검
서비스 상태
관리 서버
클라이언트
시작
서비스 상태 체크
점검 상태
점검 UI 표시
시작시 상태서버에 접속하여 상태를 받아 옴.
점검
31. 서비스 상태 흐름 예 #In App 업데이트
서비스 상태
관리
서버
클라이언트
업데이트
서버
시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크
업데이트
업데이트 상태
업데이트
가져오기
업데이트 진행 UI
업데이트 버전관리
32. 서비스 상태 흐름 예 #App 업데이트
서비스 상태
관리
서버
클라이언트
앱 스토어
시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크
업데이트
업데이트 상태
업데이트
다운로드 링크 UI
업데이트
33. 서비스 상태 흐름 예 #이벤트
서비스 상태
관리
서버
클라이언트
이벤트
서버
시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크
이벤트
이벤트 상태
이벤트 가져오기
이벤트 진행 UI
이벤트 버전관리
34. 서비스 상태 흐름 예 #서비스
서비스 상태
관리
서버
클라이언트
서비스 상태 체크
서비스 상태
게임 진행
시작시 상태서버에 접속하여 상태를 받아 옴.
서비스
35. 서비스 상태 흐름 예 #플레이 중 점검
서비스 상태
관리
서버
클라이언트
플레이
서비스 상태 체크
점검 상태
점검 UI 표시
시작시 상태서버에 접속하여 상태를 받아 옴.
점검
36. 게임 데이터 보안
•
통신 프로토콜 정의, 프로토콜 command로 서버와 데이터 교환
•
!
get/set Property 를 이용한 데이터 보안
•
!
서버 통신 보안
프로토콜정의를 통해 보안처리의 수준 및 내용을 파악하기
get/set Property 내에서 데이터 암호화
get/set Property 로만 데이터에 접근하게 되므로, 데이터에 직접 접근을 피함
보안키 교환
중요데이터 암호화/복호화 송수신
서버-클라이언트 데이터 비교
서버에서 중요데이터 생성 후 클라이언트에 전송
!
!
!