SlideShare a Scribd company logo
2D Game with iOS
or Corona
김응식
2013.07.24
1
목차
‣ Corona SDK와 Sprite Kit비교
•Demo: A Little Angry Bird
‣ iOS 7의 Sprite Kit 소개
•Demo: Sprites, Particles, ...
‣ 모바일 2D 게임의 전망
2
Corona SDK
3
Corona SDK 소개
‣ Lua 언어를 사용해서 멀티 플랫폼으로 2D게
임을 만들 수 있는 개발 SDK
‣ Box2D를 내장하고 있어 물리계 쉽게 구현
‣ Javascript와 같이 type이 없고 변수와 함수
구분이 없음
‣ Indie는 무료, Pro/Enterprise는 유료
(참고) http://tinyurl.com/coronasdk
4
Corona App by Uangel
5
Corona vs. Sprite Kit
‣ Sprite
‣ Particle
‣ Physics
6
Demo
7
Sprite Kit
8
Sprite Kit
Assertion failed: (count >= 3), function CreateLoop,
file /SourceCache/PhysicsKit_Sim/PhysicsKit-3.8/
PhysicsKit/Box2D/Collision/Shapes/b2ChainShape.cpp,
line 35.
8
Sprite Kit 탄생 배경
‣ 앱 스토어의 60%정도가 2D 게임
‣ 개발자들의 요구: 고성능 2D 렌더링
•Sprite, Shape, Particle 등 빠른 성능
‣ 엔진개발이 아닌 게임개발에 집중하게끔
9
Sprite Kit 소개
‣ 노드 타입, 이펙트와 액션 그리고 물리계
‣ 스프라이트 키트로 게임 디자인
‣ 아트 파이프라인* 관리 - 제작, 편집, 사용
‣ Xcode 5 지원 알아보기
* http://en.wikipedia.org/wiki/Art_pipeline
10
Sprite Kit 게임의 구성
‣ Scenes
‣ Actions
‣ Physics
11
Sprite Kit 게임의 구성
‣ Scenes
‣ Actions
‣ Physics
Hero
Background
HUD
11
Sprite Kit 게임의 구성
‣ Scenes
‣ Actions
‣ Physics
Hero
Background
HUD
SKNode
11
Sprite Kit 게임 루프
12
Sprite Kit 게임 루프
-update:
12
Sprite Kit 게임 루프
-update:
13
SKScene
evaluate
actions
Sprite Kit 게임 루프
-update:
13
SKScene
evaluate
actions
Sprite Kit 게임 루프
-update:
14
SKScene
evaluate
actions-didEvaluateActions:
Sprite Kit 게임 루프
-update:
14
SKScene
evaluate
actions-didEvaluateActions:
Sprite Kit 게임 루프
-update:
15
SKScene
evaluate
actions-didEvaluateActions:
SKScene
simulate
physics
Sprite Kit 게임 루프
-update:
15
-didEvaluateActions:
SKScene
evaluate
actions
SKScene
simulate
physics
Sprite Kit 게임 루프
-update:
16
-didEvaluateActions:
SKScene
evaluate
actions
SKScene
simulate
physics
-didSimulatePhysics:
Sprite Kit 게임 루프
-update:
16
Sprite Kit 게임 루프
-didEvaluateActions:
SKScene
evaluate
actions
SKScene
simulate
physics
-didSimulatePhysics:
-update:
17
Sprite Kit 게임 루프
-didEvaluateActions:
SKScene
evaluate
actions
SKScene
simulate
physics
-didSimulatePhysics:
-update:
SKView
renders
the scene
17
Sprite Kit 게임 루프
SKScene
evaluate
actions-didEvaluateActions:
SKScene
simulate
physics
-didSimulatePhysics:
-update:
SKView
renders
the scene
18
SKNode 계층
SKNode
19
SKNode 계층
SKLabelNode
SKEmitterNode
SKShapeNode
SKSpriteNode SKScene
SKCropNode
SKEffectNode
SKNode
19
SKSpriteNode
‣ SKTexture와 SKColor의 Container
‣ SKTexture는 비트맵 데이터의 Container
‣ [[SKScene class] addChild:
[SKSpriteNode class]];
20
Demo
21
SKEmitterNode
‣ 모든 기능을 갖춘 2D 파티클 시스템
‣ startValue와 speed로 속성
‣ 키프레임 시퀀스 컨트롤
‣ Texture, Scale, Rotation, Emission
angle, Emission speed, Blend modes
‣ Xcode 5 파티클 에디터 내장
22
Demo
23
기타 SKNode 들
‣ SKVideoNode
‣ SKShapeNode
‣ SKLabelNode - 한 줄만...
‣ SKEffectNode - 그룹핑
‣ SKCropNode - 매스킹
24
SKAction 목적
‣ 액션(애니메이션)을 위한 초간편 사용성
‣ 한줄의 생성자 - SKAction
‣ 동작중인 노드에 직접 적용
‣ 스크립트 언어와 같은 구현
25
SKAction 사용
SKAction *a=[SKAction rotateByAngle:M_PI duration:1.0];
a = [SKAction moveTo:aCGPoint duration:1.0];
a = [SKAction fadeAlphaTo:0.75 duration:1.0];
a = [SKAction scaleBy:2.0 duration:1.0];
a = [SKAction scaleXBy:1.5 y:0.5 duration:1.0];
[mySprite runAction:a];
SKAction * b = [SKAction animateWithTextures:@[t0, t1,
t2] timePerFrame:0.1];
SKAction *p = [SKAction followPath:myPath duration:2.5];
26
스페셜 SKActions
[SKAction customActionWithDuration:dur
actionBlock:^(SKNode *n, CGFloat t) {
CGFloat radio = t / dur;
SKEmitterNode *en = (SKEmitterNode *)n;
en.emissionAngle = ratio * 2 * M_PI;
}];
27
Demo
28
SKPhysicsBody
‣ Sprite Kit 에 완벽하게 집적됨
‣ 글로벌 on/off 스위치는 없음
‣ Node 대 node 간 사용 가능함
29
SKPhysicsBody 사용
‣ 박스 만들어 공을 넣어보자!
self.physicsBody = [SKPhysicsBody
bodyWithEdgeLoopFromRect:self.frame];
SKSpriteNode *sprite = [SKSpriteNode
spriteNodeWithImageNamed:@”sphere.png”];
sprite.physicsBody = [SKPhysicsBody
bodyWithCircleOfRadius:sprite.size.width * 0.5];
[self addChild:sprite];
30
Demo
31
SKPhysicsWorld
‣ 각 SKScene은 physicsWorld를 갖음
‣ Hit tests, ray casts, add joints
‣ 중력 변경 : 방향, 크기
self.physicsWorld.gravity = CGPointMake(0.0, -9.8);
self.physicsWorld.gravity = CGPointMake(0.0, +9.8);
32
충돌 감지
‣ SKPhysicsContactDelegate
self.physicsWorld.contactDelegate = myContactDelegate;
‣ SKPhysicsContact
self.physicsWorld.contactDelegate = myContactDelegate;
-(void)didBeginContact:(SKPhysicsContact *)c {
if (c.bodyA.node == heroSprite) // Hero hit...!
}
33
Demo
34
Sprite Kit 정리
‣ SKScene 트랜지션
‣ 반대 방향 액션
‣ SKView 디버깅 통계
‣ Texture atlas 자동 생성
35
모바일 2D 게임
전망
36
Pro and Con
‣ Pro
•엔진을 보유하거나 만들 능력자 만이 개발
가능한 수준의 게임을 Sprite Kit으로 제작
가능
‣ Con
•국내 같이 android가 지배적인 상황에서
의 플랫폼 이식에 대안 필요
37
전망
‣ 카톡게임 이제 iOS부터 만들자? ㅋ
‣ 게임에만 쓸일까?
‣ 게이미피케이션은 서막일뿐이다.
‣ 애플은 TV를 생각하고 있을까?ㅋ
38
감사합니다
@neoroman
39

More Related Content

PPTX
Cocos2d x a to z (하)
PDF
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
PPTX
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
PPTX
Cocos2d x a to z (상)
PPTX
Cocos2dx와 c++11를 이용한 게임 개발
PPTX
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
PDF
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
PDF
Cocos2d 기초
Cocos2d x a to z (하)
[NDC2014] 친구들아 도와줘 - 다양한 툴을 이용해서 Cocos2d-x 생산성 높이기 (함동기)
Cocos2d x v3.0 무엇이 달라졌나? (20140426)
Cocos2d x a to z (상)
Cocos2dx와 c++11를 이용한 게임 개발
2016.02.20 어쩌다보니 cocos2d x 사용하게 된 이야기 업로드용
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
Cocos2d 기초

What's hot (8)

PDF
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
PDF
동국대 앱창작터 4일차:Cocos2d-X 고급기능
PPTX
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
PPTX
V8 add on with middleware modules
PDF
동국대 앱창작터 5일차:Cocos2d-X 확장기능
PDF
KotlinJS Overview - TwiceRound #001
ODP
무식하게 배우는 gradle
PDF
제 5회 DGMIT R&D 컨퍼런스: NODE.JS란?
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
동국대 앱창작터 4일차:Cocos2d-X 고급기능
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
V8 add on with middleware modules
동국대 앱창작터 5일차:Cocos2d-X 확장기능
KotlinJS Overview - TwiceRound #001
무식하게 배우는 gradle
제 5회 DGMIT R&D 컨퍼런스: NODE.JS란?
Ad

Similar to 2D games with iOS or Corona (20)

PDF
3D 모델러 ADDIN 개발과정 요약
PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PDF
Html5+js with game engine cocos2d-html5 분석 @KGC2012
PPTX
Python on Android
PDF
Html5 게임 기술의 개요
PDF
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
PPTX
[KGC2014] DX9에서DX11로의이행경험공유
PDF
17. cocos2d 기초
PDF
예제를 통해 쉽게_살펴보는_뷰제이에스
PPT
NDC11_김성익_슈퍼클래스
PDF
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
PPTX
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
PDF
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
PDF
엠퀴즈 (클라우드, 서버리스 기반 실시간 웹 퀴즈 게임)_완료보고서.pdf
PDF
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
PPTX
Compute shader DX11
PPTX
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
PPTX
[Ndc11 박민근] deferred shading
PPTX
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
PPTX
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
3D 모델러 ADDIN 개발과정 요약
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
Html5+js with game engine cocos2d-html5 분석 @KGC2012
Python on Android
Html5 게임 기술의 개요
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[KGC2014] DX9에서DX11로의이행경험공유
17. cocos2d 기초
예제를 통해 쉽게_살펴보는_뷰제이에스
NDC11_김성익_슈퍼클래스
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
엠퀴즈 (클라우드, 서버리스 기반 실시간 웹 퀴즈 게임)_완료보고서.pdf
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
Compute shader DX11
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
[Ndc11 박민근] deferred shading
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC10
Ad

More from EungShik (Henry) Kim (12)

PDF
[Apple] 애플 wwdc 2015 중요사항 공유 세미나
PDF
PDF
PDF
[Osx dev] server essential lesson 11. managing with profile manager
PDF
[Osx dev] server essential lesson 10. configuring os x server to provide de...
PDF
How to Develop iDrummer for the 1st time
PDF
How To Distribute iPhone Apps to App Store
PDF
OpenGL ES on iOS
PDF
iOS 5 & Xcode 4: ARC, Stroryboards
PDF
Osx cocoa study-ch36_nstask
PDF
What is corona sdk (Korean)
PDF
Smart phone&tv 20101015
[Apple] 애플 wwdc 2015 중요사항 공유 세미나
[Osx dev] server essential lesson 11. managing with profile manager
[Osx dev] server essential lesson 10. configuring os x server to provide de...
How to Develop iDrummer for the 1st time
How To Distribute iPhone Apps to App Store
OpenGL ES on iOS
iOS 5 & Xcode 4: ARC, Stroryboards
Osx cocoa study-ch36_nstask
What is corona sdk (Korean)
Smart phone&tv 20101015

2D games with iOS or Corona