2014년 3월 25일 화요일

Cocos2d-x 3.0 rc0 버전 릴리즈 및 프로젝트 생성 방법 변경

Cocos2d-x로 게임을 하나 만들어 보겠다고 설치고 있지만..

정작 만들어 놓은 게임이 없다..

그런데 그동안 버전이 참 많이 바뀌었다..

그 원인 중 하나는 오픈소스인 것도 원인인 듯 하다..

아무튼.. 지금은 3.0 beta2 버전으로 공부 중인데 이번에 rc0 버전이 나왔다.

그런데 3.0 beta2와 rc0가 바뀐 내용이 있지만 그 중에 아쉬운 점이 하나 있어서 이렇게 올린다.

이전에 포스팅한 적 있는 GUI로 프로젝트를 생성할 수 있게 해주는 스크립트가 이번 버전에서는 제외되었다!

no

 

참 편리하게 쓰고 있었는데..

왜 제외 되었는지 모르겠다..

대신 이번에는 cocos라는 콘솔 명령어가 추가되었다.

혹자는 cocos2d 측에서 개발툴을 염두해둔 콘솔 명령어 추가가 아닌가..하는 추측도 한다.

아무튼..

엔진 압축을 풀어보면 베이스 디렉토리에 setup.py가 추가되어 있는 것을 볼 수 있다.

이 스크립트는 cocos2d-x와 Android NDK, SDK 그리고 Ant 의 경로 설정을 하는 설정 스크립트이다.

기존에 설정되어 있다면 별 과정없이 끝나고 아니면 환경변수에 추가된다.






D:\tools\cocos2d-x\cocos2d-x-3.0rc0>setup.py 

Setting up cocos2d-x...

-> Adding COCOS2D_CONSOLE_ROOT environment variable... ALREADY ADDED

-> Looking for NDK_ROOT envrironment variable... FOUND

-> Looking for ANDROID_SDK_ROOT envrironment variable... FOUND

-> Looking for ANT_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): D:\jjorae.com\apache-ant-1.9.3\bin
ADDED
-> Added: ANT_ROOT = D:\jjorae.com\apache-ant-1.9.3\bin

Set up successfull:
ANT_ROOT was added into registry

Please restart the terminal or restart computer to make added system variables take effect

D:\tools\cocos2d-x\cocos2d-x-3.0rc0>

이러면 일단 엔진 설정은 끝!

그럼 이제 패스가 잡혀있어서 cocos라는 명령을 그냥 아무데서나 사용할 수 있다.

cocos 명령은 아래와 같은 기능을 가지고 있다.






Available commands:
compile Compiles the current project to binary
new Creates a new project
run Compiles & deploy project and then runs it on the target
deploy Depoly a project to the target

이 명령들은 cocos명령 뒤에 인자로 넣어주면 된다.

아래와 같이 하면 각각의 기능에 대한 help를 볼 수 있다.






C:\Users\rhcho>cocos new --help 

usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY]
[-t TEMPLATE_NAME] [--no-native]
[PROJECT_NAME]

Creates a new project

positional arguments:
PROJECT_NAME Set the project name

optional arguments:
-h, --help show this help message and exit
-p PACKAGE_NAME, --package PACKAGE_NAME
Set a package name for project
-l {cpp,lua,js}, --language {cpp,lua,js}
Major programming language you want to use, should be
[cpp | lua | js]
-d DIRECTORY, --directory DIRECTORY
Set generate project directory for project
-t TEMPLATE_NAME, --template TEMPLATE_NAME
Set the template name you want create from

lua/js project arguments:
--no-native No native support.

Game1이라는 프로젝트를 생성해 보겠다.






C:\Users\rhcho>cocos new -p com.jjorae.game1 -l cpp -d D:\tools\cocos2d-x\projects Game1 

C:\Users\rhcho>python D:\tools\cocos2d-x\cocos2d-x-3.0rc0\tools\cocos2d-console\bin\/cocos.py new -p com.jjorae.game1 -l cpp -d D:\tools\cocos2d-x\projects Game1
Runing command: new
> Copy template into D:\tools\cocos2d-x\projects\Game1
> Copying cocos2d-x files...
> Rename project name from 'HelloCpp' to 'Game1'
> Replace the project name from 'HelloCpp' to 'Game1'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.jjorae.game1'
C:\Users\rhcho>

이렇게 한 다음 Visual Studio나 Xcode를 사용해 프로젝트를 불러온 다음 빌드하면 아래와 같은 화면을 볼 수 있다.

왼쪽 하단에 fps를 보여주는 곳이 이전 버전과 비교해 조금 바뀐 것을 볼 수 있다.

Cocos2d-x 3.0 rc0 초기화면

2014년 3월 24일 월요일

MySQL BLOB, TEXT size limit

테스트를 진행하던 중에 textarea 값을 DB로 던졌더니 무시무시한 500 에러가 떨어졌다.

내용을 보니 INSERT 시에 컬럼의 제한보다 긴 문자열이 INSERT를 시도해서 발생한 에러였다.

문제가 된 컬럼을 확인하니 데이터 타입은 TEXT.

헐?

도대체 얼마나 긴 문자를 집어 넣었길래 이런 문제가 발생했을까..

입력한 문자들이 HTML형태로 변환되기에 입력 값이 조금 많을 것이라는 예상을 했지만..

TEXT 타입의 제한을 넘겨버릴 줄은 생각도 못했다.

에러를 발생시킨 장본인을 찾아갔더니..

첨부파일 기능이 없어서 PDF의 내용을 모두 복사시킨 후 붙여넣었다고 한다..

그랬더니 이렇게 에러가 떨어졌다고..

이런젠장

 

그래요..예외처리를 하지 않은 개발자 잘못이죠 ㅠㅠ

MySQL의 BLOB과 TEXT는 아래와 같은 사이즈로 저장이 된다.








TINYBLOB, TINYTEXT       L + 1 bytes, where L < 2^8    (255 Bytes)

BLOB, TEXT               L + 2 bytes, where L < 2^16   (64 Kilobytes)

MEDIUMBLOB, MEDIUMTEXT   L + 3 bytes, where L < 2^24   (16 Megabytes)

LONGBLOB, LONGTEXT       L + 4 bytes, where L < 2^32   (4 Gigabytes)


TEXT 타입은 UTF-8이 3바이트씩 저장된다고 할 때, 한 2만자는 넘게 저장할 수 있는 크기다.

그 이상의 길이를 저장하기 위해서는 MEDIUMTEXT 타입으로 수정해야 하지만..

64K의 저장공간에서 16M의 저장공간으로 증가하는 것은 저장공간에 있어서 엄청난 타격을 입게 된다.

신중히 결정해야할 사항이다..

그래서 나는 약 64K 이상의 문자를 입력받으면 문자열 길이에 대한 경고를 출력하도록 수정하였으며, (실제로는 여유있게 약 50K)

첨부파일을 첨부할 수 있도록 변경하였다.

2014년 3월 14일 금요일

1300k 최대 30% 쿠폰 이벤트!

[caption id="attachment_880" align="aligncenter" width="573"][ 1300k 최대 30% 쿠폰 이벤트 ] [ 1300k 최대 30% 쿠폰 이벤트 ][/caption]1300k에서 오늘(13일) 딱 하루만 최대 30% 할인 쿠폰을 제공하는 행사를 한다.

 

그간 눈독 들여오던 아이템들이 있어서 이게 왠 떡이냐! 하는 마음에 접속도 잘 되지 않는 홈페이지를 겨우겨우 접속했다.

사실 뉴스에서 전 상품 30% 할인이라는 낚시성 글을 보고 들어갔는데..

역시나..상품별로 10, 20, 30% 할인 쿠폰이 제공되고 할인 쿠폰이 제공되지 않는 상품들도 있다는 것이다.

내가 사고 싶어하던 상품들은 모두 할인 쿠폰 제외 상품들..ㅋㅋㅋㅋ

이런 낚시성 기사 때문에 피해를 봤어..정신적, 시간적인 피해..

젠장할..ㅋㅋ

2014년 3월 6일 목요일

PS Vita 2세대 구입!

매일 핸드폰 게임만 하다가 갑자기 꽂혀버린 플스4..
허나 그 가격은 넘사벽이어ㅛ고..
플스3로 눈을 돌렸으나 어마어마한 중고가격..
그리고 집에 놔두고 할수 없을 것이란 판단에..
비타를 질러버렸네요 ㅋㅋ

20140306-132850.jpg
처음 만져보는 기기라서 소중히..
이 또한 3일도 안가 막다루게 되겠지만..
다들 말이 많은 2세대의 액정에 대한 불만..
전 모르겠네요 ㅋㅋ
좋기만 한걸요 ㅋㅋ
아날로그에 대한 불량도 저한테는 없네요 ㅎㅎ
불량화소 체크도 안해봤네요..

나이 먹으니까 뭐가 이리 귀찮은지 ㅋㅋㅋㅋ

게임은 드래곤즈 크라운 하나만 사왔습니다..
다른 타이틀과 메모리카드는 다음 용돈날에 사는걸로..

2014년 3월 4일 화요일

Eclipse general project를 Eclipse Java project로 변경하는 방법

다른 사람들이 만들어 놓은 프로젝트를 이클립스에서 import하거나 check out하면 java code를 포함하지만 general project로 생성되어 있어서 빌드하지 못하는 문제가 간혹 발생합니다.

이럴 때에는 이클립스의 프로젝트 파일을 수정하므로써 해결할 수 있습니다.

일단 프로젝트를 close합니다.

Project -> Close Project

프로젝트의 root 디렉토리에 있는 .project 파일을 에디터로 엽니다.

<natures></natures> 태그 사이에 아래 내용을 추가합니다.
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>

파일을 저장한 후 프로젝트를 오픈하면 Java project로 변경된 것을 확인할 수 있습니다.