Total587,633
Today2
Yesterday7

카테고리

분류 전체보기 (437)
예찬+상빈 아들만 둘!.. (0)
IT, Gadget (90)
DEV life (30)
테마게시판 (0)
Life (47)
사진이 있는 이야기 (73)
30대의 유희 (196)
오늘뭐먹지 (0)

최근에 받은 트랙백

블로그 이미지
jakesoul
좁지만,제이크씨의문화살롱

달력

« » 2019.8
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 달린 댓글

 

네트웍을 통해 아이폰과 pc를 연결, 아이폰으로 pc의 마우스/키보드 입력을 하는 어플을 소개합니다.

 

상단에 마우스 버튼 역할을 하는 터치 영역이 있고,

그 밑은 터치패드 영역입니다.

 

키보드를 호출하여 키 입력도 가능합니다.

하지만 한글 입력은 안되네요.

 

 

Touch Mouse 실행을 위해, 연결할 PC에 별도의 서버 어플을 설치해야 합니다.

http://www.logitech.com/index.cfm/494/6367&hub=1&cl=us,en?section=downloads

 

 

 

PC에 서버 설치 후, 서버가 실행되면

아이폰 TouchMouse 앱에서 다음과 같이 보이게 됩니다.

 

 

옵션에서 멀티 터치를 이용한 투핑거 액션도 지원합니다.

 

 

 

5분정도 사용한 소감을 간단히 적어보면, 렉 걸린 마우스. 입력이 뚝뚝 끊기는 경우가 많아서 아직까지는 간단한 HTPC 리모콘 조작이나 비상용으로 만족해야 할 것 같습니다.

Posted by jakesoul

Three20

DEV life/DEV.mobile / 2009.09.24 00:53
Joe Hewitt 이라는 사람이 만든 iPhone UI 라이브러리로, 요새 iPhone용 화보 어플을 하나 만들일이 있어서(외주) 쓸만한 샘플 찾다가 발견한 주옥같은 라이브러리다.

http://groups.google.com/group/three20/


원래 Facebook용 어플을 만들기 위한 것이었다는데... 배포되는 소스에 포함된 샘플만으로 이미지/뷰 제어에 대한 거의 완벽한(UI things나 최적화 등을 제외하고) 솔루션에 가깝다. thumbnail이나 table 등은 기본, flickrs에서 url 받아서 이미지 로딩해서 그려줄수도 있고.

appStore에서 비키니 란제리 섹시 등의 키워드(물론 영어로ㅡ,.ㅡ)로 검색하면 핫한 사진을 모아놓은 화보집들이 엄청 나오는데(이미 레드오션) 그중 중국계 개인 개발자가 웹상에 돌아다니는 핫한 사진들을 임의로 모아서 엄청나게 어플을 찍어대고 있는데... 얼핏 봐도 이 왕서방이 쓰는 것이 바로 이 Three20 인듯으로 보인다. 그냥 샘플코드에 사진만 바꿔 넣어도 이미 어플로서의 기능은 완벽하다 이거죠.

하지만 정작 난 이것을 쓰지 않는다.ㅡ,.ㅡ

기본적으로 UIView 등 cocoa에서 제공하는 framework에 기반한 라이브러리라... 기본적인 것들을 바꿀려고 해도 큰(혹은 귀찮은) 작업이 되어버린다. 그냥 opengl-es로 대충 512*512 짜리 Texture 잡아서 뿌려버렸다...ㅡ,.ㅡ


Posted by jakesoul

궁금하신 분은 없겠지만, 오랜만에 올리는 소리소문없이 제작중인ㅡ,.ㅡ 제 첫번째 app, 코드명 AHR 소식입니다. 이거 뭐 개발한다고 끄적거린지 4개월이 넘었는데... 아직도 런칭을 못시켜서 낯이 뜨겁네요.ㅎㅎ 슬로우스타터라는 말처럼 처음엔 좀 더뎌도 후에 꾸준히 app이 나오면 좋겠습니다.ㅎㅎ



ADC개발자 등록을 마치고, 개발중인 버전을 실기 테스트 해보았습니다. (보안유지한다고 블러처리한 것은 아니고..ㅡ,.ㅡ 5~6년전 개발했던 게임 이미지를 임시로 차용중이라 창피해서 블러를 먹였습니다.)

컨셉이 한손으로 원활히 플레이하도록 하는 것이라, 요새 유행하는 아날로그 스틱형태의 가상 컨트롤러 대신 좌우 버튼을 심었는데... 이것을 좌우 방향 동시에 눌렀을 때 뿌라스 마이너스 되어서 가만히 있는 것보다, pc키보드에서 여러키 누를때의 느낌(A를 누르다가 B를 누르면 A무시되고 B만 찍히는...)을 살려볼려고 간단하게 멀티터치 처리를 해놓았었는데, 그것이 문제가 좀 있네요. 그냥 빼야할 듯.ㅡ,.ㅡ

현재까지의 공정은 기획 90%, 개발 80% 이상이고, 그래픽 외주는 다음주부터 스타트 되어 8월 중순에 끝납니다. 이미지 다 나오면 바로 릴리즈 가능할 듯 하네요. 아, 사운드가 좀 고민입니다. 얼마 안되는 인맥풀을 한번 가동해봐야겠군요.

to do:
  • 사운드 기획
  • 사운드 외주 발주
  • 게임오버 후 랭킹 화면 구현
  • lite-paid version 구분
  • level balance



Posted by jakesoul

본문과 상관 없는 회사에서 진행하는 프로젝트 스샷

게임이건 어플이건 오토바이건 자동차건 아가씨건 총각이건 역시 중요한 것은 look.

디자이너 없이 허접한 이미지 가져다 붙여 쓰다보니 개발하는 입장에서 흥도 안나고, 중간중간 스샷 찍어 포스팅할 수준도 아니고 해서... (자질구레한 update에 대해서는 별도로 트위팅을 하고 있습니다만) 포스트는 참으로 오랜만입니다.

windows + vc로 개발 환경을 옮겼습니다. (opengles -> opengl
이제, 소스 구현을 어느 정도 끝내고 실기 테스트를 할 때 맥을 켜도 될 것 같습니다. =)


어제 국내 모 개발사를 방문해서 이야기를 할 기회가 있었는데 여러가지 생각을 하게 되었습니다.


  • 무료어플의 성공적인 다운로드가, 물론 고무적인 결과이긴하지만, 유료 버전 제품의 마케팅 데이타로 사용될 수 있을까
  • 0.99$, 외국(미국)인들에게 속된말로 껌값과도 같다고 하지만, 맛있는 껌이 저렇게 많은데 맛없는 껌을 누가 먹겠는가
  • 기능성 게임이 제휴 마케팅 혹은 정책적 지원 등을 배제하고 시장에서 성공할 수 있을까? 아, 카테고리를 게임으로 안하면 되려나?
  • 경험, 노하우, 프로세스. 자본보다 사람이 중요한 이유다.



Posted by jakesoul

근황:

현재 기본적인 어플리케이션 프레임과 각종 필요 API등은 어느 정도 작업이 끝난 상태입니다. (오래 걸렸죠...-_-;;)

이제 보다 근본적인 문제에 부딪혔는데, 그것은 바로 리소스를 가공할 툴을 만드는 것과, 어떻게 프로젝트를 매니징/프로듀스할 것이냐 하는 것들입니다.

필요인력을 수급하고 프로젝트를 관리하는 것은 사실 여기서 다루긴 어려운 문제고,

리소스를 가공할 툴..같은 경우는 cocoa 개발에 대한 소양이 깊지 못한 관계로 천상 wintel 플랫폼에서 작업을 하기로 결정했습니다. 결국 맥을 메인으로 쓰는 것은 또 다시 철회, 한동안 치워두었던 wintel 머신을 다시 들여놨습니다. (cpu가 amdx2 쿠마인데, 한밤중에 작업하고 있으면 지금 내가 시카고행 대한항공 보잉747기 이코노미석에 앉아 있는 느낌도 납니다. 저는 미쿡에 가본적이 없다능)

이왕 맥과 wintel 머신을 병행하기로 한 이상, 장기적으로 windows에 아예 cygwin따위로 iPhone 개발 환경을 구축하는 것도 고려중입니다. 집에 모니터가 달랑 하나라 아무래도 (노트북이 아닌)컴퓨터 두대에서 와리가리 하는 것도 귀찮을 테니까요. 그럼 대체 맥은 왜 산거지...? (-_-)





'DEV life > DEV.mobile' 카테고리의 다른 글

SKT 앱스토어 오픈  (0) 2009.06.09
SKT 앱스토어 어플 공모전  (4) 2009.05.11
날로 먹는 iPhone dev 일기 #3  (2) 2009.05.06
SKT의 앱스토어, 성공할까?  (26) 2009.04.14
2D 프레임버퍼의 제어  (2) 2009.04.07
날로 먹는 iPhone dev 일기 #2  (0) 2009.04.07
Posted by jakesoul
Touch

어떤 형태로건 사용자의 입력이 없다면 그것을 '게임'이라고 부를 수 있을 까요?

사용자의 입력이라는 것이, 일반적인 게임의 조작성에서 조금 멀리 떨어져 있을 수는 있어도-비쥬얼 노블 류 처럼 OK 버튼이나 푹푹 눌러대거나, NDS의 닌텐독스나 대합주에서 처럼 마이크에 소리를 지른다거나 등등등-어찌 되었건 '게임'이라는 어플리케이션을 구성하는데 외부의 조작을 처리하는 것은 반드시 필요한 것이 되겠습니다. 

 iPhone은, 설명할 필요도 없이, 메인 입력으로 터치 인터페이스를 사용하죠. 이것을 처리하기 위해서 필요한 것은, 프로젝트에 UIKit framework가 포함되어 있을 것입니다.


touch를 제어하는 방법을 잘 다룬 예제로는 Apple Sample Codes의 Touches가 있습니다. 코드를 얻은 후, MyView.m 파일 중반을 보시면 touch event 를 다루는 이벤트 핸들러 메소드들이 있습니다.

이를 간단히 정리해보면-

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;


이름을 보니 이놈이 뭐하는 놈인지 설명할 필요가 없어졌습니다.

그래도 간단히 짚고 넘어가죠^^;;


// Handles the start of a touch

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    NSUInteger numTaps = [[touches anyObject] tapCount]; // ==> 현재 터치되어있는 수를 구하는 코드

// ...중략


// Enumerate through all the touch objects.

NSUInteger touchCount = 0;

for (UITouch *touch in touches) {

    // Send to the dispatch method, which will make sure the appropriate subview is acted upon

[self dispatchFirstTouchAtPoint:[touch locationInView:self] forEvent:nil];

// ==> 모든 터치에 대해, 터치 위치와 이벤트 등에 따라 처리해줍니다.

touchCount++;  

}

}


-(void) dispatchFirstTouchAtPoint:(CGPoint)touchPoint forEvent:(UIEvent *)event

{

// ...생략-_-

}


이놈 까지 봤으니 이후는 더더욱 설명할 것이 없을 것입니다.


// Handles the continuation of a touch.

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{  

// ...생략

// Enumerates through all touch objects

   for (UITouch *touch in touches) {

// Send to the dispatch method, which will make sure the appropriate subview is acted upon

  [self dispatchTouchEvent:[touch view] toPosition:[touch locationInView:self]];

}

// ...생략

}


-(void) dispatchTouchEvent:(UIView *)theView toPosition:(CGPoint)position

{

// ...생략

}


// Handles the end of a touch event.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

    // Enumerates through all touch object

    for (UITouch *touch in touches){

// Sends to the dispatch method, which will make sure the appropriate subview is acted upon

[self dispatchTouchEndEvent:[touch view] toPosition:[touch locationInView:self]];

}

}


-(void) dispatchTouchEndEvent:(UIView *)theView toPosition:(CGPoint)position

{   

// ...생략

}


- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

{

    // Enumerates through all touch object

    for (UITouch *touch in touches){

// Sends to the dispatch method, which will make sure the appropriate subview is acted upon

[self dispatchTouchEndEvent:[touch view] toPosition:[touch locationInView:self]];

}

}


참 쉽죠잉?-_-  터치의 처리 자체는 간단한 문제지만, 이후 구현하고자 하는 게임의 인터페이스 디자인에 따라 이벤트의 처리를 보다 효율적으로, 그리고 직관적으로 설계하기 위한 연구가 필요할 것입니다. 다음은 사운드 출력 고고싱~

* iPhone Simulator에서의 멀티터치 입력은, option키를 누르면 가능합니다.


'DEV life > DEV.mobile' 카테고리의 다른 글

SKT의 앱스토어, 성공할까?  (26) 2009.04.14
2D 프레임버퍼의 제어  (2) 2009.04.07
날로 먹는 iPhone dev 일기 #2  (0) 2009.04.07
날로 먹는 iPhone dev 일기 #1  (2) 2009.04.01
날로 먹는 iPhone dev 일기 #0  (2) 2009.03.30
게임 플랫폼으로서의 iPhone  (2) 2009.03.24
Posted by jakesoul
Drawing@2D 

애플은 iPhone의 3D API로 openGL | es를 사용합니다. 익히 아시다시피 openGL은 'os비종속적인' 표준 3D 라이브러리죠. 물론 3D뿐만 아니라 2D 이미지를 표시할 때도 Quartz보다 openGL | es 사용이 권장됩니다.

openGL(es)로 2D 이미지를 그리는 것은 개발자 입장에서 썩 효율적인 일은 아닙니다. openGL의 3D 좌표계에서 2D 좌표를 직관적으로 사용할 수 없는 것은 물론이고, 애초에 2D 이미지 = z뎁스 고정된 rect위의 텍스쳐이기 때문에 이미지 크기에 대한 제한(텍스쳐 이미지의 크기는 power of 2이어야 합니다. 32*32, 64*64, 128*128, ...) 등으로 이것 저것 신경써야 할 것이 많습니다.

물론, 어느 개발사건 상용게임 혹은 그에 준하는 게임을 만들 때 openGL (혹은 directX) 만을 가지고 만들지는 않습니다. 라이브러리에서 제공하는 기본 API 자체로는 개발자가 일일이 해야할 것이 많기 때문이죠. 보통 '엔진'으로 불리우는, 보다 하이레벨의 라이브러리 셋을 얹어 쓰게 됩니다.

보통 iPhone 개발용으로 자주 언급되는 엔진으로는 oolong, sio2, cocos2d 등-모두 open source-이 있는데요, 그중 2D 관련해서는 cocos2d 가 가장 많이 다뤄지고 있습니다. 제가 살펴보니 실제 게임을 구현하는데 조금 애매한 부분이 있습니다. 어딘가 불필요한 부분도 많고, 반대로 조금 모자란 부분도 있습니다. 그저 쉽게 이미지 몇장을 화면에 배치하고 이동이나 회전 등의 제어를 하는 것으로 만족한다면 모를까, 이대로는 게임 엔진을 구성할 수는 없는 수준입니다. 결국 많이 손을 보아야하는데, 이미 누군가에 의해 높이 쌓아져 올린 동전 더미를 건드리는 것보다, 새로 동전을 쌓는 것이 수월할 때도 있습니다. 

외국의 dev 포럼을 보면 보통 2D 기반의 작업에 대해서, cocos2d의 texture2D 클래스만 가져와서 개발을 하는 경우를 종종 볼 수 있습니다. texture2D 클래스를 어디서 구할 수 있느냐 물어보는 사람들도 자주 있구요.

컨셉자체가 '날로먹는' 것이므로 자세한 설명과 친절한 예제등은 생략하고 바로 Texture2D를 이용해서 화면에 이미지를 찍어보도록 하겠습니다. 

준비물 : 
1) 애플에서 제공하는 GLSprite 샘플코드
 : Welcome to Xcode 창의 iPhone Dev Center > iPhone Sample Code 섹션에서 찾아들어가시거나, 여기(로그인 필요) 에서 받으면 되겠습니다.

2) Texture2D관련 파일들 - Texture2D.h / Texture2D.m / PVRTexture.h / PVRTexture.m
: cocos2d-for-iphone 소스를 받아서 그 안에서 추출. http://code.google.com/p/cocos2d-iphone/

GLSprite 프로젝트를 열고, Add > Existing Files > 해서 4개의 Texture2D 파일들을 추가합니다. 이 때 필요시 타겟 폴더에 아이템을 복사함Copy items into destination group's folder (if needed)에 체크하세요.


이제 EAGLView.m 을 들여다 보도록 하겠습니다.

살짝 살펴보면,  GLSprite 어플은 
 
어플이 시작되면
(id)initWithCoder:(NSCoder*)coder;
-> [self setupView];
-> [self drawView];

그리고 매 timeout마다
(void)drawView;


이렇게 돌아가는 것을 알 수 있습니다. *한번 돌려 [CMD-R] 보세요. 4각형에 텍스쳐가 매핑되어서 빙글빙글 돌고 있습니다.



- (void)setupView


이곳에서 스프라이트(이미지)의 로딩과 기본적인 openGL|es 세팅이 이루어집니다. 중간에 스프라이트를 읽어오는 부분을 살펴봅니다.

spriteImage = [UIImage imageNamed:@"Sprite.png"].CGImage; 

Sprite.png파일을 UIImage로 읽어서, 그것을 CoreGraphics Image로 가져오는 코드입니다. 하지만 이 때 image 파일들은 8비트, 32비트 rgb(a)칼라여야 하고, power of 2의 사이즈를 가져야 합니다. 이것 저것 따지는 게 많고 귀찮습니다.

이제 Texture2D 클래스를 이용해서 쉽고 편하게 2D이미지를 읽어와서 화면에 뿌려보도록 하죠.

EAGLView.h 에 Texture2D 헤더를 임포트 선언합니다.

#import "Texture2D.h"


그리고 EAGLView 클래스 선언 내부에 Texture2D 객체를 하나 추가해줍니다.

Texture2D *tex;


그리고 원하는 이미지 파일을 Resources 폴더 밑에 추가해줍니다.  Add > Existing Files > 마찬가지로 이 때 필요시 타겟 폴더에 아이템을 복사함Copy items into destination group's folder (if needed) 을 체크.

그리고  - (void)setupView 를 다음과 같이 추가/변경합니다.


그리고 - (void)drawView 를 고쳐 보죠.


이 때, 이미지의 기준 좌표는 좌측 하단이며, 전체 화면은 x: -1.0 ~ 1.0, y: -1.5 ~ 1.5 를 차지하고 있습니다. 대강 감이 오시죠? (-1.0, -1.5) 부터 넓이 2.0, 높이 3.0의 Rect에 텍스쳐를 그리라는 것입니다. 참고로 커멘트 되어있는 부분- [tex drawAtPoint:CGPointMake(-1.0, -1.5)]; 는 한 점CGPoint 위에 텍스쳐를 그리는 것으로, cocos2d 안에 있는 Texture2D소스를 바로 가져왔을 때 한 두라인을 수정해야 화면에 제대로 보입니다. 


제가 넣은 이미지를 띄워보았습니다. =) 

이것으로 화면에 '내가 원하는 이미지'를 '원하는 위치'에 띄우는 것이 가능해졌습니다. 이제 기존에 자신이 쓰던 스프라이트/리소스 툴과 연계하여 보다 편리하고 보다 효율적으로 돌아가는 스프라이트 엔진을 짜는 것이 필요하겠죠.

'DEV life > DEV.mobile' 카테고리의 다른 글

2D 프레임버퍼의 제어  (2) 2009.04.07
날로 먹는 iPhone dev 일기 #2  (0) 2009.04.07
날로 먹는 iPhone dev 일기 #1  (2) 2009.04.01
날로 먹는 iPhone dev 일기 #0  (2) 2009.03.30
게임 플랫폼으로서의 iPhone  (2) 2009.03.24
에리테리아 전설  (6) 2009.03.13
Posted by jakesoul
앱스토어 런칭과 함께 외국의 개인 개발자들이 대박을 터뜨리는 것이 보도되면서, 저 역시 대박의 부푼 꿈을 안고 맥미니와 아이팟 터치를 질럿드래군했습니다. 하지만 당시 회사에서 거친 프로젝트 중심에서 야근을 외쳐대느라 잠시 묻어두었다가, 이번 달 초에 다시 팔을 걷어 부쳤습니다. (국내 개인 개발자의 앱스토어 대박 기사에 움찔움찔!)

하지만 여전히 계속되는 야근과 육아&가사에, 생각만큼 진도가 나가지 않습니다. 따져보니 하루 평균 한시간도 안되는 시간이 투자되고 있는데... 스스로에 대한 채찍질과, 앞으로 저와 비슷한 고민을 하실 또다른 개발자들을 위하여 기록을 남기기로 합니다. 거창하게 강좌라고 하기는 뭣하고, 처음 iPhone dev에 발을 담그시려는, 그리고 Xcode 한번은 돌려보신^^) 분들이 가볍게 쭉 리뷰하면서 큰 그림을 이해하시는데 도움이 되는 정도의 아티클이 되겠습니다. 

따로 objective-C 에 대한 언급은 않겠습니다. 새로운 언어 자체보다 플랫폼의 이해, 그리고 그에 따른 문제 해결 방법이 근본적인 탐구 대상이 될 것이며, 특별히 중요하지 않은 부분은 스킵하고 중요한 부분만 후딱후딱 치고 나갈 것입니다. 말그대로 '날로 먹는' 개발 일기가 될 것입니다. =) 


------------------------

Specification

플랫폼과 언어를 막론하고, 게임(+ 대부분의 end user용 어플 개발)을 만들 때 기본적으로 구현 되어야할 기능들은 다음과 같습니다.

1) 화면에 이미지와 글씨를 그린다 
2) 사용자의 입력을 받는다 
3) 사운드를 출력한다 
4) 파일을 읽고 쓴다 
5) 네트워킹을 한다

이 중 1-2-3만 되어도 간단한 게임을 구성할 수 있겠죠? 이 중에서도 가장 기본이 되는 것은 1) 일 것입니다. 실제로 게임 개발에서도 가장 비중을 두는 것이 그래픽이구요. 꼭 보기좋은 떡이 먹기도 좋은건 아니지만, 최소한 보기좋다고 욕먹는 경우는 없으니까요. 그래서, 일단 화면에 2D 이미지를 뿌리는 것 부터 시작하기로 하죠. (사실 3D 개발 관련해서는 똘똘한 cs 전공 학부생만도 못한 소양이라...ㅎㅎ)


원래는 이 뒤로 분량이 더 있는데(2D drawing)... 맥상에서 화면 캡쳐하는 방법을 몰라서 여기서 끊고 갑니다.-_-;;


'DEV life > DEV.mobile' 카테고리의 다른 글

날로 먹는 iPhone dev 일기 #2  (0) 2009.04.07
날로 먹는 iPhone dev 일기 #1  (2) 2009.04.01
날로 먹는 iPhone dev 일기 #0  (2) 2009.03.30
게임 플랫폼으로서의 iPhone  (2) 2009.03.24
에리테리아 전설  (6) 2009.03.13
KTF Brew 단말기 현황 (08년 3월 31일자)  (0) 2008.09.07
Posted by jakesoul

오늘 다음과 같은 기사를 보았습니다. [게임 플랫폼으로서의 아이폰, “장미빛 미래”]

읽시면 아시겠지만, 위 기사는 다분히 비지니스적인 관점에서 iPhone과 앱스토어를 다루고 있습니다. 그렇다면 경영과 마케팅 적인 시점말고, 직접 게임을 개발하는 개발자의 시점에서, 모바일 게이밍 플랫폼 iPhone이 가지는 매력은 무엇일까요?


1. 쉽고 간편한 원스톱 개발 환경

arm기반 디바이스들이 gcc, ADS등을 사용하기 위해 복잡한 세팅을 하거나, IDE와 arm 컴파일러를 별도로 쓰거나, linux를 별도로 설치해서 세팅하거나, 아니면 세팅 다 되어있는 PC가 포함된 엄청 비싼 전용 툴을 살 필요없이, 맥만 사서 SDK만 다운받으면 끝. (물론 맥이 싸진 않습니다.^^)


2. 단일 타겟 디바이스

여러 LCD사이즈, 성능 차이가 심한 cpu 퍼포먼스, 다양한 오디오 스펙 등을 신경쓸 필요가 없습니다. 이는 디버깅과 포팅, 그리고 게임 디자인의 비용을 크게 줄여줍니다. 프로그래밍 역시 말할 것도 없구요.


3. opengl es

타 플랫폼에서의 (혹은 타 플랫폼으로의) 포팅이 비교적 쉽고 관련된 레퍼런스나 팁, 문제해결 등을를 쉽게 구할 수 있습니다.


4. 플랫폼 밴더의 적은 간섭

애초에 iPhone이 게임기가 아니기 때문에, 또한 apple역시 게임 산업을 하고 있던 회사가 아니기 때문에, 앱스토어에 걸리는 게임의 퀄리티 관리가 심하지 않습니다. ‘어플’로서 가져야할 최소한의 안정성과 요구사항, 그리고 앱스토어의 소프트웨어 정책만 맞춰주면 되는 정도? 물론 이것이 판매량의 증가와 어떻게 이어질지, 또한 전체 마켓의 성장과 어떤 연관이 있을지에 대한 많은 이야기가 있겠지만 이 포스트는 어디까지나 개발을 하는 사람들 입장이니까, 일단은 장점이라고 볼 수 있겠습니다.


5. creativity를 자극하는 스펙

풀 스크린 터치 인식장치, 중력 가속 센서, 블루투스 등 개발자에게 개발 동기와 창조적 영감을 부여하는 하드웨어 스펙을 가지고 있습니다.

 

그리고 무엇보다

퇴근 후 틈틈히 만든 게임으로 대박을 냈다는 어느 국내 개인 개발자의 이야기가 전해진 후, 주변 개발자(프로그래머, 기획자, 그래픽 아티스트) 사이에서 iPhone 어플 개발에 대한 관심이 그 이전과 비교할 수 없을 정도로 증폭되었습니다. 지금도 온라인 오프라인 할 것없이 앱스토어 대박을 꿈꾸는 수많은 개인 개발자들이 열심히 비전을 그리고 있을 것입니다..

척박한 국내 IT산업에 대한 대안 생태계로서의 앱스토어, 그리고 그곳에서 발생하는 엄청난 수익에 대한 희망보다 큰 매력은 없을 것입니다. =)

 

Posted by jakesoul