소셜 네트워크 게임의 참맛을 느껴보기 위해 얼마전부터 짬짬이 해왔던 위룰(we rule)이라 불리는 앙증맞은 미니 왕국 경영 소셜 네트워크 게임을 플레이하는 모습을 동영상으로 담아 봤습니다. 얼마전 모 커피숍에서 한 손에는 최근 장만한 작티 캠코더를 들고 한 손은 내 왕국을 어루만지며 촬영을 했습니다. 커피숍의 어두운 조명 아래라서 그런지 촬영된 화면이 좀 어두워 보이는군요. 주위에 몇 사람 없긴 했지만 저 사람 뭐하나 했을지도 모르겠네요.^^ 게임 방법은 따로 설명을 듣지 않아도 플레이 할 수 있을 만큼 손쉽게 플레이 할 수 있도록 구성되어 있고 이웃 왕국과 간편하게 교류 할 수 있어 소셜의 맛도 느낄 수 있으며 내 손 안에 아기자기하고 개성이 넘치는 나만의 왕국을 건설 할 수 있다는 매력도 있습니다. 아직 메모리 관리 문제가 있는지 이웃 왕국을 순회하다 보면 메모리가 부족하다는 경고 메시지가 나온다거나 갑자기 프로그램이 죽는 버그가 있습니다. 이 점과 많은 코인을 얻을 수 있는 건물의 빌드 타임이나 쓸만한 농작물을 수확하기 위한 시간이 수십 시간 이상이라는 점에 있어서 급한 성격을 가진 분들은 중도에 포기하거나 순식간에 빌드해주거나 수확해주는 마법의 약인 모조를 구입하기 위해 달러를 지불하게 될지도 모릅니다. 이 게임은 나만의 멋진 왕국 건설이라는 목표를 가지고 하나 하나 만들어가는 재미로 해야 되겠지만 내 왕국에 코인을 많이 얻을 수 있는 쓸만한 일자리를 많이 만들어서 이웃 왕국에서 일하러 오게 하거나 이웃 왕국을 순회하면서 많은 일자리를 확보하면 보다 많은 경험치와 코인을 얻을 수 있고 그로 인해 남보다 여유있는 풍요로운 왕국 경영을 할 수 있게 됩니다. 그동안 시간 날 때마다 짬짬이 해왔던 게임이지만 은근히 시간 투자가 많은 게임이고 개인차가 있겠지만 중독성이 있는 게임이므로 주의가 필요합니다. 아직 게임을 해보지 않은 분들은 아래 동영상으로 게임 플레이 장면을 확인해보세요. 요즘 게임 개발에 흥미를 느껴서 아이폰 게임 개발 스터디도 운영하고 있고 본격적으로 게임을 만들기 위한 준비 활동도 하고 있습니다. 그러므로 언제가 될지는 모르지만 조만간 소셜 네트워크 게임을 만드는 날이 오게 되겠군요.
혹시 관심 있으신가요?



웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/608

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

댓글을 달아 주세요

  1. 초초초 2010/06/01 09:15  댓글주소  수정/삭제  댓글쓰기

    사랑해요 위룰 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

  2. canada 2010/05/22 06:14  댓글주소  수정/삭제  댓글쓰기

    바쁠때 매직컬리플라워 심으면 돈이랑 경험치도 많이 벌고 좋아요~

"예제로 배우는 핵심 패턴 아이폰 프로그래밍" 도서는 아이폰 애플리케이션 개발에 관심 있는 분들이 보시면 도움이 될만한 책이므로 주위 개발자 분들께 추천해주셔도 좋을 것 같습니다. 기존 서적과 달리 독자가 직접 따라해볼 수 있는 동영상도 포함되어 있다고 합니다. 그리고 블로그나 카페 등에 본 이벤트를 소개할 경우 추첨을 통해 무상으로 도서를 드린다고 하니 관심있는 분들은 퍼나르기 이벤트에도 참여해보세요.

이번 인터파크 공동구매는 인터파크와 본 블로그에서만 진행하는 특별 이벤트 입니다.
오늘부터 5월 9일까지 진행하는 이벤트이므로 지금 바로 참여해보세요.
그리고 본 공동구매에 관심 가질 만한 분들께 게시 내용을 포워딩 하거나 스크랩 하셔도 좋습니다.

[인터파크 공동구매 혜택]
25% 할인 + 10% 적립

[공동구매 기간]
2010년 5월 9일까지

[공동구매 방법]
1. 인터파크 도서 회원은 아래의 링크에 들어가서, 인터파크 도서 계정으로 로그인을 하면 2,700원(15%)할인쿠폰이 발급됩니다.

- 쿠폰 발급 링크
   http://book.interpark.com/coupon/CouponFntMgt.do?_method=popup&sc.couponNo=207834
- 위 링크를 클릭하고 로그인하면 쿠폰은 자동 발급됩니다. (2,700원할인 쿠폰 / 15%)
- 이 쿠폰은 "예제로 배우는 핵심 패턴 아이폰 프로그래밍" 구매시에만 사용가능하며, 사용기간은 5월 9일까지 입니다.

2. 인터파크 도서 검색창에서 "예제로 배우는 핵심 패턴 아이폰 프로그래밍"를 검색하고, "결재과정"을 진행하면 쿠폰을 사용할 수 있습니다.

- 도서 구매 링크
   http://book.interpark.com/product/BookDisplay.do?_method=detail&sc.shopNo=0000400000&sc.prdNo=204646029
- 현재 인터파크 도서에서의 기본 가격은 10% 할인 + 10% 적립되어, "판매가 16,200원 / 적립금 1,620P"에 판매중입니다.
- 할인쿠폰을 적용하면 추가적으로 2,700원 할인(15%)을 더 받게 되어 결과적으로 25% 할인 + 10% 적립이 됩니다.
- 최종적으로 "판매가 13,500원 / 적립금 1620P"의 혜택으로 구매하실 수 있습니다.

3. 퍼나르기 이벤트

- 위 내용을 복사해서 널리 널리 퍼트려 주세요.
- 댓글로 홍보해주신 사이트 주소를 작성해 주시면 추첨을 통해 15분께 공구도서인 "예제로 배우는 핵심 패턴 아이폰 프로그래밍" 도서를 드립니다.

인터파크 도서 & 웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/607

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

댓글을 달아 주세요

  1. 인터파크 2010/05/10 16:42  댓글주소  수정/삭제  댓글쓰기

    당첨자를 발표합니다~

    돗구리 / 이든 / 컴맹 / korn / 진인수 / 랑유 / jwon / julieth / 셀레스틴 / 브레드장 / 오렌지 / 나이유미 / 김주석

    총 13분을 뽑았습니다. 당첨된 분들은 작성해 주신 댓글에 수정을 클릭하시어, 인터파크 도서 ID를 적어 주시면 되며, 도서는 인터파크 ID 계정에 등록된 주소된 발송되오니, 최신 주소로 업데이트 해주시면 됩니댜. 감사합니다.

  2. 박동주 2010/05/07 12:11  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/nelsion

    올렸습니다. 책보고 개발해보고 싶네요.

    당첨시켜 주세요~

    • 인터파크 2010/05/10 08:56  댓글주소  수정/삭제

      아, 죄송합니다. 지금에서야 댓글을 봤네요 ^^;
      올려주신 글 잘 봤습니다. 관심 가져 주셔서 감사합니다~
      당첨을 기원합니다.

  3. 김주석 2010/05/11 09:26  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/calflove/50087845838

    에...아이폰 / 안드로이드 두개다 올렸습니다...

    인터파크 ID : freeos 입니다...

  4. 나이유미 2010/05/06 10:17  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/naiyumie/10085755455

    블로그에 올렸어요~~~~^^

  5. 오렌지 2010/05/06 08:27  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/1004icecream/20105254172
    관심 많은 분야인데 당첨되면 좋겠네요.^^
    좋은 이벤트 감사합니다.

    • 인터파크 2010/05/06 09:09  댓글주소  수정/삭제

      관심 가져 주셔서 감사합니다. 올리신 글 잘 봤습니다.
      이벤트 참여를 독려?하는 짧막한 글도 넣어주셨군요~ 감사합니다 ^^; 당첨을 기원합니다~

  6. 브레드장 2010/05/06 00:28  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/jsy4070/10085743954
    저도 블로그에 올렸어요~~^^

  7. toto92 2010/05/05 15:47  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/yiss92 블로그에 올렸습니다. ^^

  8. 추릿 2010/05/05 14:38  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/tlsrbs28/40105992276 이렇게 하는거 맞는지 모르겟네요. 플래셔가 꿈인 저에게 현재로써 아이폰개발툴이 대립관계로 인해 막혀있기는 하지만 다시 풀릴날을 꿈꾸며..

    • 인터파크 2010/05/07 09:11  댓글주소  수정/삭제

      앗, 미처 댓글을 확인하지 못하고 이제야 댓글 올립니다~
      관심 가져 주셔서 감사합니다. 플래시가 구현이 안되는게 조금 아쉽긴 합니다~ ^^

  9. julieth 2010/05/13 07:57  댓글주소  수정/삭제  댓글쓰기

    http://julieth.tistory.com/225 좋은정보가 많은책이길 바랍니다. 꼭 이벤트당첨되었으면 좋겠습니다.

    당첨 감사합니다. ID는 julieth7입니다. 수고하세요. ^^

  10. jwon 2010/05/04 01:13  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/ensoni/40105906899
    좋은책 많이 팔리길 바랍니다.~
    아이폰책들 모두 대박 나기를~~!!!

  11. 랑유 2010/05/03 20:48  댓글주소  수정/삭제  댓글쓰기

    http://oioio11.tistory.com/47
    책을 노리고(!) 저도 블로그에 퍼갔습니다^^

    • 인터파크 2010/05/04 08:30  댓글주소  수정/삭제

      ㅎㅎ 잘 노리?셨습니다. ㅎㅎ 많은 홍보 부탁드립니다~
      날씨가 무척?더워 졌네요, 으샤 하세요~

    • 랑유 2010/05/11 09:45  댓글주소  수정/삭제

      아이디는 oioio11입니다^^
      근데 제가 윗글의 비번을 까먹어서;ㅂ;
      이렇게 추가 댓글로 달았는데요;;
      이래도 될까요?;;
      혹시 의심나시면 제 블로그 방명록에 아이디맞냐고
      질문글 남기셔도 되요^^ㅎㅎ;;

  12. 진인수 2010/05/03 17:14  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/insoocop/60106552364
    책은 개념잡기에는 좋지만 실습에는 부족한 부분들이 많습니다.
    동영상이 있다면 쉽게 따라할 수가 있어서 좋을것 같네요.

    • 인터파크 2010/05/03 18:18  댓글주소  수정/삭제

      관심 가져주셔서 감사합니다. 동영상은 물론 핵심 패턴으로 구성되어 있어, 실습에도 많은 도움이되는 책입니다.

  13. korn 2010/05/03 16:02  댓글주소  수정/삭제  댓글쓰기

    저도 스크랩 해갑니다~ 쿄쿄

  14. 컴맹 2010/05/03 15:08  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/scym
    동영상까지 있다니...독학하기에 좋은 책이네요.^^

  15. 조중현 2010/05/02 18:38  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/iric

    꼭!! 당첨되었으면 좋겠습니다. 근데...책을 구입한사람은 어떻게 하나요..;;;

    • 인터파크 2010/05/03 13:39  댓글주소  수정/삭제

      이미 본 책을 구입한 분은, 만약 당첨되신다면 다른 아이폰 관련 개발서로 대신 보내드려야 겠네요.~ 홍보 많이 해주세요~

  16. 황용호 2010/04/28 09:34  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/yonghohwang/140105829835
    소개글 올렸습니다.
    필요한 책이군요.

    • 인터파크 2010/04/30 10:38  댓글주소  수정/삭제

      넵!! 퍼나르기 행사에 참여해 주셔서 감사합니다. 앞으로도 많은 퍼나르기 행사가 있을예정이니 많은 관심 바랍니다.

  17. pbeat 2010/04/28 09:30  댓글주소  수정/삭제  댓글쓰기

    http://blog.dreamwiz.com/pbeat/12697923
    당첨되었으면 좋겠습니다.

  18. 인터파크 2010/04/28 09:19  댓글주소  수정/삭제  댓글쓰기

    당첨자는 공구 마감 후, 본 댓글과 트위터를 통해 발표되며, 인터파크 ID 및 배송 주소 알려주시면 배송해 드립니다.

  19. 김인배 2010/04/28 08:04  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/sputnik5/80106423662

    꼭 보고싶은 책이네요

  20. 이든 2010/05/10 21:49  댓글주소  수정/삭제  댓글쓰기

    http://ethanjoh.tistory.com/1061 에 소개글 올렸습니다.
    꼭 당첨되었으면 좋겠네요...ㅠㅠ

    와 당첨됐네요 ^^
    인터파크 ID는 gsjoh 입니다.
    빨리 받아보고 싶네요 ^^ 고맙습니다.

  21. 돗구리 2010/05/13 15:30  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/yyy1974/104574209

    개발자에게 꼭 필요한 책인 것 같습니다. 관심있는 분야인데 꼭 당첨되었으면 ~~합니다.

    당첨 감사합니다.

    인터파크 ID : lgw700

    입니다. 집에는 아무도 없으니 회사로 부탁드립니다.

  22. jowlee 2010/04/27 18:58  댓글주소  수정/삭제  댓글쓰기

    http://blog.naver.com/jowlee/40105522393

    블로그 등록했습니다.

어제는 박스2D 물리 엔진을 가지고 아이폰에서 물리 시뮬레이션을 할 수 있는 방법에 대한 기초 과정을 스터디 해봤습니다. 다음주에는 이 것을 응용해서 자신만의 창의적인 생각을 담은 물리 시뮬레이션을 만들어 오기로 했어요. 아직 완벽하게 소화하지 못해 정확한 설명을 하긴 무리이긴 하지만 물리엔진에 대해 짧막하게 설명하자면 물리적인 특성을 적용할 수 있는 가상의 세계를 만들고 그 안에서 물리 객체들을 시뮬레이션 할 수 있도록 해주는 엔진입니다. 가상 세계에서 시뮬레이션한 데이터들을 주기적으로 현실(화면)에 반영하면 우리가 적용하고자 하는 물리적인 현상을 화면에서 확인할 수 있습니다. 아래 동영상은 아이폰SDK와 Cocos2D API를 설치한 상태에서 Box2D 템플릿 프로젝트를 선택하고 템플릿에 기본적으로 구현된 4가지 모양의 박스를 터치해서 랜덤하게 떨어뜨리는 과정이며 간단한 코드를 추가해서 떨어지는 중력의 방향을 화면 중앙을 기준으로 터치한 위치로 변화시켜보는 내용입니다. 누구나 따라해 볼 수 있으나 제대로 응용을 하려면 Box2D 홈페이지에서 관련 문서를 확인해보셔야 겠습니다.




// 중앙을 기준으로 터치한 위치로 중력 방향 변경하기
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGSize screenSize = [CCDirector sharedDirector].winSize;
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView: [touch view]];
    location = [[CCDirector sharedDirector] convertToGL: location];
    float accelX = (float) (location.x - screenSize.width / 2);
    float accelY = (float) (location.y - screenSize.height / 2);
    float length = sqrtf((accelX * accelX) + (accelY * accelY));
    b2Vec2 gravity( accelX * 10 / length, accelY * 10 / length);
    world->SetGravity( gravity );
}

// 원형 물체를 월드에 등록하기
{
    CCSprite *ball = [CCSprite spriteWithFile:@"circle32.png"];
    ball.position = ccp(5 * PTM_RATIO, 5 * PTM_RATIO);
    [self addChild:ball];

    b2BodyDef bd;
    bd.position.Set(5.0f, 5.0f);
    bd.type = b2_dynamicBody;
    bd.fixedRotation = true;
    bd.allowSleep = false;
    bd.userData = ball;

    b2Body *body = world->CreateBody(&bd);
    b2CircleShape shape;
    shape.m_radius = 32.0f / PTM_RATIO / 2.0f;
    b2FixtureDef fd;
    fd.shape = &shape;
    fd.density = 20.0f;
    body->CreateFixture(&fd);
}

// 6각형 물체를 월드에 등록하기
{
    CCSprite *polygon = [CCSprite spriteWithFile:@"polygon.png"];
    polygon.position = ccp(5 * PTM_RATIO, 5 * PTM_RATIO);
    [self addChild:polygon];

    b2BodyDef bd;
    bd.position.Set(5.0f, 5.0f);
    bd.type = b2_dynamicBody;
    bd.fixedRotation = true;
    bd.allowSleep = false;
    bd.userData = polygon;

    b2Body* body = world->CreateBody(&bd);

    float32 angle = 0.0f;
    float32 delta = b2_pi / 3.0f;
    b2Vec2 vertices[6];
    for (int32 i = 0; i < 6; ++i) {
        vertices[i].Set(0.5f * cosf(angle), 0.5f * sinf(angle));
        angle += delta;
    }

    b2PolygonShape shape;
    shape.Set(vertices, 6);

    b2FixtureDef fd;
    fd.shape = &shape;
    fd.density = 20.0f;
    body->CreateFixture(&fd);
}

// 긴 사각형과 그라운드 바디 사이에 조인트 생성하기
{
    b2PolygonShape shape;
    shape.SetAsBox(2.0f, 0.5f);

    b2BodyDef bd;
    bd.type = b2_dynamicBody;
    bd.position.Set(5.0f, 5.0f);
    bd.angle = 0.5f * b2_pi;
    bd.allowSleep = false;
    b2Body* body = world->CreateBody(&bd);
    body->CreateFixture(&shape, 5.0f);

    b2PrismaticJointDef pjd;

    // Bouncy limit
    b2Vec2 axis(0.3f, 0.1f);
    axis.Normalize();
    pjd.Initialize(groundBody, body, b2Vec2(0.0f, 0.0f), axis);

    // Non-bouncy limit
    //pjd.Initialize(ground, body, b2Vec2(-10.0f, 10.0f), b2Vec2(1.0f, 0.0f));

    pjd.motorSpeed = 5.0f;
    pjd.maxMotorForce = 10000.0f;
    pjd.enableMotor = true;
    pjd.lowerTranslation = 0.0f;
    pjd.upperTranslation = 8.0f;
    pjd.enableLimit = true;

    b2PrismaticJoint* m_joint;
    m_joint = (b2PrismaticJoint*)world->CreateJoint(&pjd);
}

웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/606

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

[아이폰 스터디 그룹 맴버쉽 게시판]
http://flashcafe.org/iphone_study

댓글을 달아 주세요

  1. 김민재 2011/02/05 00:53  댓글주소  수정/삭제  댓글쓰기

    저기 원에서 32.0f / PTM_RATIO / 2.0f를 하는 이유좀 설명해주시면 고맙겠습니다

  2. 하늘아래 2010/04/27 21:05  댓글주소  수정/삭제  댓글쓰기

    음.. Box2D 엔진은 플래시에나 쓰이는 줄 알았는데 아이폰에도 이용되네요 ㅇㅅㅇ

인터파크 도서와 함께 추진하고 있는 IT 전문 서적 공동구매 이벤트를 소개 합니다. 아이폰 애플리케이션 개발에 관심 있는 분들이 보시면 도움이 될만 책이므로 주위 개발자 분들께 추천해주셔도 좋을 것 같습니다.

이번 인터파크 공동구매는 인터파크와 본 블로그에서만 진행하는 특별 이벤트 입니다.
오늘부터 4월 30일까지 진행하는 이벤트이므로 지금 바로 참여해보세요.
그리고 본 공동구매에 관심 가질 만한 분들께 게시 내용을 포워딩 하거나 스크랩 하셔도 좋습니다.

[인터파크 공동구매 혜택]
25% 할인 + 10% 적립

[공동구매 기간]
2010년 4월 30일까지

[공동구매 방법]
1. 인터파크 도서 회원은 아래의 링크에 들어가서, 인터파크 도서 계정으로 로그인을 하면 4000원(15%)할인쿠폰이 발급됩니다.

- 쿠폰 발급 링크
   http://book.interpark.com/coupon/CouponFntMgt.do?_method=popup&sc.couponNo=207244
- 위 링크를 클릭하고 로그인하면 쿠폰은 자동 발급됩니다. (4,000원할인 쿠폰 / 15%)
- 이 쿠폰은 "iPhone Advanced Projects" 구매시에만 사용가능하며, 사용기간은 5월 2일까지 입니다.

2. 인터파크 도서 검색창에서 "iPhone Advanced Projects"를 검색하고, "결재과정"을 진행하면 쿠폰을 사용할 수 있습니다.

- 도서 구매 링크
   http://book.interpark.com/product/BookDisplay.do?_method=detail&sc.shopNo=0000400000&sc.prdNo=204561132
- 현재 인터파크 도서에서의 기본 가격은 10% 할인 + 10% 적립입니다.
- 할인쿠폰을 적용하면 추가적으로 4,000원 할인(15%)을 더 받게 되어 결과적으로 25% 할인 + 10% 적립이 됩니다.

인터파크 도서 & 웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/605

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

댓글을 달아 주세요

  1. 포짜 2010/04/20 11:03  댓글주소  수정/삭제  댓글쓰기

    VM웨어로 돌리는 맥OS로도 개발이 가능할까요..
    개발은 하고 싶은데 맥이 없어서 고민이네요..

이번 주에 있을 아이폰 게임 개발 스터디는 인기 아이폰 게임 불리 개발사 넥스트앱스 대표 김영식님과 함께 합니다. 넥스트앱스의 두번째 작품인 불리(Booooly)는 특히 여성 유저들에게 인기가 높은 두뇌퍼즐게임으로 애플 모바일 콘텐츠 오픈 마켓 장터인 앱스토어 진출 성공모델로 관련 컨퍼런스에서 자주 소개되고 있는 게임입니다. 음악 서비스 전문 개발자인 김영식님이 이끄는 넥스트앱스는 불리의 대박으로 창업 6개월도 되기전에 손익분기점을 넘었다고 하며 앞으로도 사명처럼 매달 꾸준히 새로운 컨텐츠를 개발해 출시하는 것을 목표로 하고 있다고 합니다. 김대표님은 요즘 아이폰 애플리케이션 개발자들과 교류하기 위해 분주하게 활동하시는 것으로 보이며 이번주에 있을 우리 아이폰 게임 개발 스터디에도 초청 되셨고 30여명의 개발자/디자이너들과 함께 즐겁고 유익한 시간을 가지게 될 예정에 있습니다. 특히나 인터파크에서 관련 도서 지원 뿐만 아니라 스터디 장소 지원도 받게 되어 이번주부터 좀 넓은 장소를 쓸 수 있게 되서 스터디 맴버를 더 받을 수 있게 될 것 같아요. 그래서 아이폰 게임 개발 스터디에 관심이 있는 분들의 참여 신청을 좀 더 받아볼 생각입니다. 현재 3주 스터디를 통해 기본적인 게임을 만들 수 있는 상태가 되었고 이번주에는 각자 만들고 싶은 게임에 대해 기획을 해서 발표를 하게 될 예정이며 다음주 부터는 본격적인 게임 개발을 하게 될 것입니다. 이런 진도 문제도 있으므로 참가 신청 자격이 어느 정도 필요하며 기본 자격은 게임 개발 경력이 어느 정도 있거나 당장 기본적인 아이폰 게임 개발이 가능한 수준에 있어야 합니다. 오브젝티브C와 아이폰 SDK 에 대해서도 어느 정도 파악이 되어 있어야 하며 Cocos2D 를 어느 정도 다룰 수 있어야 합니다. 참여 조건이 좀 까다로운 면이 있으나 하루 이틀 나오다가 포기하는 사례가 생기면 그 여파로 우리 스터디 분위기도 헤치고 운영에도 어려움이 생길수 있기 때문입니다. 이런 조건을 만족하는 분들은 서슴 없이 참가 해주시길 바래요.^^ 참고로 우리 스터디는 학습하고 스킬을 키우는 것 이상으로 개발자 인맥을 만들어가는 것에 좀더 관심이 있습니다. 이 점 체크 바랍니다.

[불리] Booooly
http://itunes.apple.com/us/app/booooly-free/id347511882?mt=8


웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/604

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

[아이폰 스터디 그룹 맴버쉽 게시판]
http://flashcafe.org/iphone_study

댓글을 달아 주세요

  1. 비밀방문자 2010/04/20 00:53  댓글주소  수정/삭제  댓글쓰기

    관리자만 볼 수 있는 댓글입니다.

요즘 매주 일요일 아이폰 게임 개발 스터디에서 게임을 개발하는 즐거운 시간을 보내고 있습니다. 2주차 과제는 지금까지 학습한 내용만으로 나만의 개성있는 아이폰 게임을 만들어 보는 것이었습니다. 그래서 간단한 슈팅 게임을 만들었고 바로 이 전 포스트에서 동영상으로도 소개했습니다. 아래 보이는 오브젝티브C 소스 코드는 그 슈팅 게임의 기능을 구현한 클래스 소스입니다. 생각보다 간단한가요? 구현한 기능이 단조로운 이유도 있겠지만 게임 엔진을 활용한 덕분에 코딩해야할 것이 많이 줄어든 것이 이유겠지요. 다음주 스터디의 주제는 물리엔진입니다. 물리엔진에 대해 어느 정도 파악하게 되면 이제 제대로 된 게임을 만들 수 있게 되겠군요.^^ 슬슬 chipmunk 와 box2d 물리엔진을 마구 파헤쳐 봐야겠어요.

CocosGame.zip

// ShootGame.m

#import "ShootGame.h"

@implementation ShootGame

@synthesize enemySprites, missileSprites;

+(id) scene {
    CCScene *scene = [CCScene node];
    ShootGame *layer = [ShootGame node];
    [scene addChild: layer];
    return scene;
}

-(id)init{
    if ( (self=[super init]) ) {
        self.isTouchEnabled = YES;
        self.isAccelerometerEnabled = YES;
       
        //sprite = nil;
        //CGSize size = [[CCDirector sharedDirector] winSize];
       
        CCSprite *sprite = [CCSprite spriteWithFile:@"shooter.png"];
        [sprite setPosition:ccp(26, 50)];
        [self addChild:sprite z:1 tag:1];
       
        self.enemySprites = [[NSMutableArray alloc] init];
        self.missileSprites = [[NSMutableArray alloc] init];
       
        [self schedule:@selector(scheduleEnemy:) interval:1.0];
        [self schedule:@selector(scheduleCollision:)];
    }
    return self;
}

- (CGRect) spriteRect:(CCSprite *)sprite {
    CGRect rect = CGRectMake(
        sprite.position.x - (sprite.contentSize.width/2),
        sprite.position.y - (sprite.contentSize.height/2),
        sprite.contentSize.width,
        sprite.contentSize.height);
    return rect;
}

- (void) moveFinished : (id) sender {
    CCSprite *sprite = (CCSprite *) sender;
    if (sprite.tag == 101) {
        [enemySprites removeObject:sprite];
    } else if (sprite.tag == 102) {
        [missileSprites removeObject:sprite];
    }
    [self removeChild:sprite cleanup:YES];
}

- (void) addEnemySprite {
    int rand = arc4random() % 2;
    CCSprite *enemy = [CCSprite spriteWithFile:[NSString stringWithFormat:@"enemy%d.png",rand]];
    CGSize winsize = [[CCDirector sharedDirector] winSize];
    int pointY = (arc4random() % 200 + 100);
    int timeDuration = (arc4random() % 4 + 1);
    enemy.position = ccp( winsize.width + (enemy.contentSize.width/2) , pointY);
    enemy.tag = 101;
    [enemySprites addObject:enemy];
    [self addChild:enemy];
    id actionMove = [CCMoveTo actionWithDuration:timeDuration position:ccp( -enemy.contentSize.width/2 , pointY)];
    id moveDone = [CCCallFuncN actionWithTarget:self selector:@selector(moveFinished:)];                
    [enemy runAction:[CCSequence actions:actionMove, moveDone, nil]];
}    

- (void) destroyEnemy:(CCSprite *)enemy {
    [enemy stopAllActions];
    id shaky = [CCShaky3D actionWithRange:4 shakeZ:NO grid:ccg(15,10) duration:1];
    id clear = [CCCallFuncN actionWithTarget:self selector:@selector(moveFinished:)];
    [enemy runAction: [CCSequence actions:shaky, clear, nil]];
}

- (void) checkCollision {
    NSMutableArray *crashMissiles = [[NSMutableArray alloc] init];
    for (CCSprite *missile in missileSprites)     {
        CGRect missileRect = [self spriteRect:missile];
        //NSLog(@"%@",NSStringFromCGRect(missileRect));
        NSMutableArray *crashSprites = [[NSMutableArray alloc] init];
        for ( CCSprite *enemy in enemySprites ) {
            CGRect enemyRect = [self spriteRect:enemy];
            if( CGRectIntersectsRect (missileRect, enemyRect) ) {
                [crashSprites addObject:enemy];
            }                                        
        }
        if (crashSprites.count > 0) {
            [crashMissiles addObject:missile];
        }
        for (CCSprite *enemy in crashSprites) {
            [enemySprites removeObject:enemy];
            //[self removeChild:enemy cleanup:YES];
            [self destroyEnemy:enemy];
        }
        [crashSprites release];
    }
   
    for (CCSprite *missile in crashMissiles) {
        [missileSprites removeObject:missile];
        [self removeChild:missile cleanup:YES];
    }
    [crashMissiles release];
}
                   
- (void) scheduleEnemy: (ccTime)dt {
    [self addEnemySprite];
}                    

- (void) scheduleCollision: (ccTime)dt {
    [self checkCollision];
}    

-(void)doTask{
    NSLog(@"doTask");
}

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    if( touch ) {
        //CGSize winsize = [[CCDirector sharedDirector] winSize];
        CGPoint location = [touch locationInView: [touch view]];
        CGPoint convertedPoint = [[CCDirector sharedDirector] convertToGL:location];

        CCNode *sprite = [self getChildByTag:1];
       
        CCSprite *missile = [CCSprite spriteWithFile:@"missile.png"];
        [missileSprites addObject:missile];
       
        int touchY = convertedPoint.y;
        int positionX = sprite.position.x;
        int positionY = sprite.position.y;
        id moveSprite;
        if (touchY > positionY) {
            moveSprite = [CCMoveTo actionWithDuration:0.5f position:ccp(positionX, positionY+40)];
        } else {
            moveSprite = [CCMoveTo actionWithDuration:0.5f position:ccp(positionX, positionY-40)];
        }
        [sprite runAction:moveSprite];
       
        missile.position = ccp(40, positionY);
        //missile.tag = 102;
        [self addChild:missile z:102 tag:102];
        id moveMissile = [CCMoveTo actionWithDuration:1.5f position:ccp(460, positionY)];
        id clearMissile = [CCCallFuncN actionWithTarget:self selector:@selector(moveFinished:)];
        //id actonMissile [CCSequence actions:moveMissile, clearMissile, nil];
        [missile runAction:[CCSequence actions:moveMissile, clearMissile, nil]];
    }
}

- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration {
    CCNode *sprite = [self getChildByTag:1];
    CGPoint converted = ccp( (float)-acceleration.y, (float)acceleration.x);
    sprite.rotation = (float) CC_RADIANS_TO_DEGREES( atan2f( converted.x, converted.y) + M_PI );
    sprite.scale = 0.5f + sqrtf( (converted.x * converted.x) + (converted.y * converted.y) );
}

@end

웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/603

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

[아이폰 스터디 그룹 맴버쉽 게시판]
http://flashcafe.org/iphone_study

댓글을 달아 주세요

아이폰 게임 개발 스터디 과제를 준비하려고 어제 저녁에 시간을 내서 간단한 테스트 게임을 만들어 봤습니다. 이번주 과제는 각자 개성을 담아 슈팅 게임을 만들어 오는 것이었습니다. 오픈 소스 게임 엔진 Cocos2D의 편리함으로 게임 개발이 한결 수월하다는 느낌이 드네요. 테스트 게임도 만들어 봤으니 이제 본격적으로 나만의 개성을 담은 슈팅 게임을 만들어 봐야겠습니다. 게임의 완성도를 높이려면 디자인에도 신경을 써야 하는데 디자인 해줄 파트너가 없네요. 여담으로 아이폰 게임 디자인에 관심이 많고 앱스토어에 나의 게임을 올려보고 싶은 분은 연락주세요.^^ 이렇게 만들어본 테스트 게임을 시뮬레이터로 실행해보는 장면을 동영상으로 담아 보았습니다. 아이폰 게임 개발에 관심 있는 분들은 아래에 보이는 동영상을 확인해보시고 시간을 내서 직접 코딩도 해보세요. 게임 엔진에 대한 자세한 정보는 관련 문서를 참고하세요.



웹프로그래머의 홈페이지 정보 블로그 http://hompy.info/602

[연관 포스트]
아이폰 게임 제작을 위한 2D 그래픽 엔진 Cocos2D 설치 및 실행 동영상
아이폰 아이팟 코코아 터치 애플리케이션 개발 샘플 동영상
직장인을 위한 아이폰 게임 디자인 스터디를 추진해 봅니다.
직장인을 위한 아이폰 앱 개발 Cocos2D 스터디를 추진합니다.

[아이폰 스터디 그룹 맴버쉽 게시판]
http://flashcafe.org/iphone_study

댓글을 달아 주세요

  1. 비밀방문자 2010/04/08 21:46  댓글주소  수정/삭제  댓글쓰기

    관리자만 볼 수 있는 댓글입니다.