'cocos2d-x'에 해당되는 글 3건

  1. 2014.12.24 Crash Reporting System
  2. 2014.11.25 cocos2d-x vs unity 2d
  3. 2014.11.25 cocos2d-x 2.1.5 갤럭시s2(4.0.4)에서 발생하는 crash문제


Crash Reporting System

 모바일 서비스를 하게 되면 다양한 환경(제한된 램, 불안정한 네트워크, 저장공간부족등)에서 플레이가 되다 보니 크래시가 빈번하게 일어납니다. 예를 들어 모바일게임을 하는 유저가 자기 폰에서 크래시가 난다고 항의했을 시 개발사에서는 그 사람 계정을 복제하여 플레이한다고 해서 반드시 크래시가 나지 않습니다. 이런 문의를 받으면 참 난감합니다. 당당하게 크래시 안 나니깐 유저발 버그라고 할 수도 있고.....크래시 지레짐작하여 허송세월을 보내기도 합니다. 물론 크래시 덤프가 존재한다고 해서 크래시를 항상 완벽하게는 대응하지 못합니다. 하지만 더 빠르고 더 정밀한 대응을 할 수 있습니다.


 그래서 크래시 덤프를 외부 서버로 전송을 해서 클라이언트 개발자가 분석을 할 수 있게 만들어야 합니다. 이 것이 크래시 레포팅 시스템입니다. 


왜 외부서버이냐?

개발자만큼 플랫폼을 잘 알고 거기다가 매우 친절한 유저가 많으면 이런거 안 만들어도 됩니다. 그 사람들이 친절하니깐 크래시덤프를 메일로 보내줄수도 있으니..

일반적인 사용자가 크래시가 나서 보고서를 제출하겠냐고 하는 문구에 확인을 누르는 사람은 1000명 중에 한명꼴이라는 통계를 본적이 있습니다. 그래서 크래시가 나면 크래시 레포팅시스템에 의해서 개발사가 준비해놓은 서버로 전송해야 합니다. 


이걸 다 개발해야 되는건 아닙니다. 이런 서비스를 무료로 제공하는 곳도 있고 유료도 있습니다.

대부분 크래시 로그 및 분석 등이 제공됩니다.


아래는 여러가지의 크래시레포팅서비스를 제공하는 곳입니다.


-Crashlytics


-HockeyApp


-Crittercism


-Google breakpad
  • https://code.google.com/p/google-breakpad/
  • Android NDK 크래시 덤프를 만들고 분석하기 위한 라이브러리
  • Android NDK을 제공하는 다른 서비스도 breakpad를 이용한 것임.
  • 안드로이드 설정 - https://code.google.com/p/google-breakpad/source/browse/trunk/README.ANDROID



Posted by Finebe
,


비교항목

cocos2d-x

unity

업데이트

대응속도 느림.
버그 있을 커뮤니티를 보고 대응해야 .

버전업시 하위버전과 호환성이 좋음.

대응속도 빠름.
빠른 대응으로 업데이트를 .

하위버전과 호환성 좋음.

reference

적음

매우 많음. 유료 플러그인등

멀티플랫폼 지원

ios, android, windows7, mac, windows phone

ios, android, web, mac, linux, playstation, xbox, wii

사용되는 언어

c++ 11( cocos2d-x 3.0이상), lua, javascript

c#, javascript, boo

생산성

높은 편.

매우 높은편. 

커뮤니티 활성도

우리나라는 중간정도. 일본, 중국쪽에서 활발함.

높음. 한국에서 매우 인기가 많음.

접근성(습득속도)

진입장벽이 높음. 객체지향개념등

낮음. 기본적인 프로그래밍만 알아도 개발이 가능함.

개발툴

visual studio 2012, xcode

unity, mono develop, visualstudio(unityVS)

3d 적용범위

3d객체를 추가할 있지만 제한적임

3d 요소 추가 용이함

엔진 튜닝

open source라서 가능.

불가능

비용

무료

495만원( pro, ios, android )

미래성

좋은 편이긴 하나 apple 차세대 그래픽api 메탈api 지원할지는 미지수.

좋은 메탈api지원하기로 발표함.

2d render performance Test


2d 최적화

2d는 매우 최적화됨. 3.x부터 3d를 공식적으로 지원함.

보통이지만 많이 좋아짐(4.2이후 공식 지원)

2d 추출시 기본적인 용량(리소스 제외)

2~3메가

10메가


Posted by Finebe
,


2.1.5버전 갤럭시s2(4.0.4)에서 버그가 발생합니다..

이유는 TTFLabel생성시 ""이면 제대로 텍스쳐를 생성을 못하여 Null값으로 들어가는 문제가 있습니다.. 이는 아주 작은 Rawdata를 생성하여 임시로 넣어주어 해결했습니다. 

-cocos2d-x 3.x에는 추가된 사항입니다.


static unsigned char cc_2x2_white_image[] = {

    // RGBA8888

    0xFF, 0xFF, 0xFF, 0xFF,

    0xFF, 0xFF, 0xFF, 0xFF,

    0xFF, 0xFF, 0xFF, 0xFF,

    0xFF, 0xFF, 0xFF, 0xFF

};


#define CC_2x2_WHITE_IMAGE_KEY  "cc_2x2_white_image"


void Sprite::setTexture(Texture2D *texture)

{

    // If batchnode, then texture id should be the same

    CCASSERT(! _batchNode || texture->getName() == _batchNode->getTexture()->getName(), "CCSprite: Batched sprites should use the same texture as the batchnode");

    // accept texture==nil as argument

    CCASSERT( !texture || dynamic_cast(texture), "setTexture expects a Texture2D. Invalid argument");


    if (NULL == texture)

    {

        // Gets the texture by key firstly.

        texture = TextureCache::getInstance()->textureForKey(CC_2x2_WHITE_IMAGE_KEY);


        // If texture wasn't in cache, create it from RAW data.

        if (NULL == texture)

        {

            Image* image = new Image();

            bool isOK = image->initWithRawData(cc_2x2_white_image, sizeof(cc_2x2_white_image), 2, 2, 8);

            CCAssert(isOK, "The 2x2 empty texture was created unsuccessfully.");


            texture = TextureCache::getInstance()->addUIImage(image, CC_2x2_WHITE_IMAGE_KEY);

            CC_SAFE_RELEASE(image);

        }

    }


    if (!_batchNode && _texture != texture)

    {

        CC_SAFE_RETAIN(texture);

        CC_SAFE_RELEASE(_texture);

        _texture = texture;

        updateBlendFunc();

    }

}

 

원본 위치 <http://discuss.cocos2d-x.org/t/cceditbox-crash-on-android-tablet/7670/15

'Mobile Programming > Cocos2d-x' 카테고리의 다른 글

Crash Reporting System  (0) 2014.12.24
cocos2d-x vs unity 2d  (0) 2014.11.25
Posted by Finebe
,