SlideShare a Scribd company logo
1 of 37
Download to read offline
Cocos2D 모바일 게임 개발하기	

개발환경을 중심으로

인디 게임 개발자 스터디
이평섭 ( pyongsub@gmail.com )
http://www.cocos2d-x.org/wiki/Relationships_in_Cocos2d_Family
http://www.cocos2d-x.org/wiki/Relationships_in_Cocos2d_Family
http://www.cocos2d-x.org/wiki/Supported_Platforms_and_Programming_Languages
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
버전 관리

• http://tortoisesvn.net	

!

• http://www.visualsvn.com/	

!
!

• github.com	

• yobi.io
Cocos2d Sample Demo

• Cocos2d-x : iOS, Android	

• Cocos2d-iPhone : iOS
Cocos2d 개발 이슈

• 멀티플랫폼	

• 해상도	

• UI	

• 애니메이션	

• In App Purchase	

• Unique ID
멀티플랫폼

• iOS 7
멀티플랫폼

• Android

http://upload.wikimedia.org/wikipedia/commons/7/7e/Android_historical_version_distribution.png
Cocos2d-x Multi Resolution

http://www.cocos2d-x.org/wiki/Multi_resolution_support
iOS 해상도

http://www.koboldtouch.com/display/IDCAR/Developing+for+Multiple+Screen+Resolutions
UI

http://cocosbuilder.com/	

http://code.zynga.com/2012/10/creating-a-game-with-cocosbuilder/
애니메이션

http://esotericsoftware.com/
Atlas

http://www.codeandweb.com/texturepacker
iOS In App Purchase

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction.html
Android In App Billing

http://developer.android.com/google/play/billing/billing_overview.html
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
개발 마무리

•

소셜 플랫폼 적용하기	


•
•
•
•

Kakao, Line, Wechat > 플랫폼 사업자가 선정	

Facebook, OpenFeint, Twitter > 누구나 사용	

Apple GameCenter > iOS	

Google Play Games > Android
개발 마무리

•

마케팅 플랫폼 적용하기	


•
•
•

http://www.flurry.com/	

http://www.playhaven.com/	

http://www.google.com/analytics/
Q &A
게임 서비스 준비를 위한 Tip

인디 게임 개발자 스터디
이평섭 ( pyongsub@gmail.com )
서비스 전략

• 서비스 정책
무점검
점검
!
!

• 마일스톤
업데이트
이벤트

소셜플랫폼은	

제공하지 않음

알아서구현.
서비스 전략

• 고객대응 Page
App Store
Facebook, Twitter
Cafe, Blog
Email
기타
!

• 운영툴

소셜플랫폼은	

제공하지 않음

알아서구현.
앱스토어 심사 준비

• 심사 체크 사항
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 심사기간
첫 심사기간 > 업데이트 심사 기간

• 스토어에 표시되는 게임 타이틀
심사 중 변경 안됨
앱스토어 심사 준비

• 심사 리젝 회피하기

심사시에는 disable 하고, 서비스 시작시에는 enable하기
ex) 서버에서 상태값을 설정하고, 이를 클라이언트가 연동하여 회피

!
!

• 사례
★ iOS

★ 게임내 저장소는 Library - Cache 폴더 사용
★ 로그인 없이도 게임 진행이 되게 하기
★ 캐시 구매 아이템 다른 사용자에 전달불가
게임 서버 & 클라이언트 준비 #1

● 서비스 시작 전(개발 중 & 개발 완료)

!
!
!
!
!

개발

!
!
!
!
!
!
!

알파

라이브

베타

개발 = 알파 = 베타

라이브(앱스토어 심사용)

● 서비스 시작
라이브 서버 & 심사를 통과한 클라이언트로 서비스 시작
게임 서버 & 클라이언트 준비 #2

● 서비스 후(업데이트 개발 순서)
개발

개발 중인 서버 & 클라이언트

알파

개발 완료된 서버 & 클라이언트

베타

라이브

라이브 서버와 동일한 상태의 서버로 업데이트시 앱스토어 심사용으로 사용
클라이언트는 앱스토어 심사 제출용으로 사용

라이브 서버 & 심사 통과 클라이언트
서비스 상태 관리
서비스 상태

점검

업데이트

이벤트

서비스

점검 기간 알림 /
점검시 게임진행 가능여부 /
게임 진행 중 점검 상태 진입 처리

App Upate : 앱스토어 연결 / 게임 진행 가능 여부
In App Update : 앱 내부에서 업데이트 진행 / 업데이트 완료 후 게임 진행

특정 기간에 진행되는 이벤트 알림
게임 컨텐츠에 따라, 앱 내부, 외부 이벤트 연동 처리가 달라짐.

정상적인 게임 플레이가 되는 상태
서비스 상태 흐름 예 #점검
서비스 상태
관리 서버

클라이언트

시작

서비스 상태 체크

점검 상태

점검 UI 표시

시작시 상태서버에 접속하여 상태를 받아 옴.
점검
서비스 상태 흐름 예 #In App 업데이트
서비스 상태
관리
서버

클라이언트

업데이트
서버

시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크

업데이트

업데이트 상태

업데이트
가져오기
업데이트 진행 UI

업데이트 버전관리
서비스 상태 흐름 예 #App 업데이트
서비스 상태
관리
서버

클라이언트

앱 스토어

시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크

업데이트

업데이트 상태

업데이트
다운로드 링크 UI

업데이트
서비스 상태 흐름 예 #이벤트
서비스 상태
관리
서버

클라이언트

이벤트
서버

시작시 상태서버에 접속하여 상태를 받아 옴.
서비스 상태 체크

이벤트

이벤트 상태

이벤트 가져오기
이벤트 진행 UI

이벤트 버전관리
서비스 상태 흐름 예 #서비스
서비스 상태
관리
서버

클라이언트

서비스 상태 체크

서비스 상태

게임 진행

시작시 상태서버에 접속하여 상태를 받아 옴.
서비스
서비스 상태 흐름 예 #플레이 중 점검
서비스 상태
관리
서버

클라이언트

플레이

서비스 상태 체크

점검 상태

점검 UI 표시

시작시 상태서버에 접속하여 상태를 받아 옴.
점검
게임 데이터 보안

•

통신 프로토콜 정의, 프로토콜 command로 서버와 데이터 교환

•

!
get/set Property 를 이용한 데이터 보안

•

!
서버 통신 보안

프로토콜정의를 통해 보안처리의 수준 및 내용을 파악하기

get/set Property 내에서 데이터 암호화
get/set Property 로만 데이터에 접근하게 되므로, 데이터에 직접 접근을 피함

보안키 교환
중요데이터 암호화/복호화 송수신
서버-클라이언트 데이터 비교
서버에서 중요데이터 생성 후 클라이언트에 전송

!
!
!
Q &A

More Related Content

Similar to Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip

20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)DONGSU KIM
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다Dae Kim
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)Sang Don Kim
 
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)Hugh Choi 최형욱
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxssuser2601f7
 
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfNDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf정민 안
 
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱NAVER Engineering
 
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? 정민 안
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
Python on Android
Python on AndroidPython on Android
Python on Android용 최
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료JinHyuck Churn
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기hanbeom Park
 

Similar to Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip (20)

Unity소개
Unity소개Unity소개
Unity소개
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
React native development
React native developmentReact native development
React native development
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
 
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)
magicEco recruiting (서버개발자/하드웨어개발자/디자이너 모집)
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptx
 
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfNDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
 
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
[TECHCON 2019: MOBILE - Android]7.20분만에 만들어보는 라이브 방송 앱
 
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
Python on Android
Python on AndroidPython on Android
Python on Android
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
 

More from Alex Kang

숭실대 프로젝트 아나키 워크샵 part2
숭실대 프로젝트 아나키 워크샵 part2숭실대 프로젝트 아나키 워크샵 part2
숭실대 프로젝트 아나키 워크샵 part2Alex Kang
 
숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1Alex Kang
 
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션Alex Kang
 
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약Alex Kang
 
Tig13 dynamic and realistic game dev_using d_a
Tig13 dynamic and realistic game dev_using d_aTig13 dynamic and realistic game dev_using d_a
Tig13 dynamic and realistic game dev_using d_aAlex Kang
 
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표Alex Kang
 
프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍Alex Kang
 
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션Alex Kang
 
인디 게임 개발자 스터디 1회 오픈 세미나 안내
인디 게임 개발자 스터디 1회 오픈 세미나 안내인디 게임 개발자 스터디 1회 오픈 세미나 안내
인디 게임 개발자 스터디 1회 오픈 세미나 안내Alex Kang
 

More from Alex Kang (9)

숭실대 프로젝트 아나키 워크샵 part2
숭실대 프로젝트 아나키 워크샵 part2숭실대 프로젝트 아나키 워크샵 part2
숭실대 프로젝트 아나키 워크샵 part2
 
숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1숭실대 프로젝트 아나키 워크샵 part1
숭실대 프로젝트 아나키 워크샵 part1
 
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션
NDC2014 랙돌을 활용한 물리기반 캐릭터 애니메이션
 
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약
프로젝트 아나키 파일 포멧 설명 및 워크플로우 요약
 
Tig13 dynamic and realistic game dev_using d_a
Tig13 dynamic and realistic game dev_using d_aTig13 dynamic and realistic game dev_using d_a
Tig13 dynamic and realistic game dev_using d_a
 
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표
하복 코리아 7회 오픈 세미나 "Havok physics 기초" 발표
 
프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍
 
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션
프로젝트 아나키로 Rpg 만들기 캐릭터 애니메이션
 
인디 게임 개발자 스터디 1회 오픈 세미나 안내
인디 게임 개발자 스터디 1회 오픈 세미나 안내인디 게임 개발자 스터디 1회 오픈 세미나 안내
인디 게임 개발자 스터디 1회 오픈 세미나 안내
 

Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip

  • 1. Cocos2D 모바일 게임 개발하기 개발환경을 중심으로 인디 게임 개발자 스터디 이평섭 ( pyongsub@gmail.com )
  • 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
  • 6. 버전 관리 • http://tortoisesvn.net ! • http://www.visualsvn.com/ ! ! • github.com • yobi.io
  • 7. Cocos2d Sample Demo • Cocos2d-x : iOS, Android • Cocos2d-iPhone : iOS
  • 8. Cocos2d 개발 이슈 • 멀티플랫폼 • 해상도 • UI • 애니메이션 • In App Purchase • Unique ID
  • 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/
  • 21. Q &A
  • 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 로만 데이터에 접근하게 되므로, 데이터에 직접 접근을 피함 보안키 교환 중요데이터 암호화/복호화 송수신 서버-클라이언트 데이터 비교 서버에서 중요데이터 생성 후 클라이언트에 전송 ! ! !
  • 37. Q &A