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

최근에 달린 댓글


★http://developer.itopping.co.kr/contest <- 자세한 것은 이곳을 참고하세요.

참여자 혜택을 보고 알게된 것 :
 - 개발자 등록비를 받는구나
 - 검증 수수료도 받는구나?!!



아무튼, 특별상을 제외하고 총 1억 2천만원의 상금이 52명에게 나눠(?)지네요. 상금 규모가 큰건 아니지만... 경험을 쌓는다 생각하면 한번쯤 도전해도 좋지 않을까 싶네요.

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

날로 먹는 iPhone dev 일기 #4  (0) 2009.06.19
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
Posted by jakesoul



20년도 넘게 이어진 어드벤쳐 장르에 대한 편애, 그리고 얼마전 구입한 햅틱의 터치 UI에 맞는 컨텐츠를 찾다가 발견한 EA 모바일 코리아의 검은방. 거기에 무엇보다, 평소 휴대폰이건 psp건 ndsl이건 터치건 어찌되었건 모바일 플랫폼에서 공포물의 구현에 대해 관심이 있던 터라, 이 게임이 내세우는 미스테리 스릴러이라는 키워드에 혹해서 다운을 받게 되었습니다.

[+]
  • 인물, 배경할 것 없이 색감이 게임 전반의 분위기와 잘 매칭이 되며, 특히 극적인 상황에서 칼라반전(네거티브) 효과 등으로 연출에 힘을 실어주고 있습니다.

[-]
  • 일단 메인 스토리의 양이 너무 짧고, 그 내용도 평이한 수준. (모바일의 한계..?)
  • 미스테리와 스릴러는 어디에?
  • 그나마 차별점이 될 수 있을 것이라 기대했던, 멀티엔딩 시스템이라고 해놓은 것도 말이 멀티엔딩이지, 솔직히 말하면 그냥 멀티게임오버. 메인 스토리(=정답)에서 벗어난 분기점(=오답)은 얼마 안가 바로 게임 오버로 이어집니다. 2회차 플레이때 새로운 캐릭터가 등장해서 게임의 내용이 좀 더 깊어 지는 것 외에는 생색내기에 불과한 수준입니다.

+ 보다는 - 가 더 많지만, 그래도 몇일간 재미있게 플레이 했습니다. =) 관계자 분들께서는 너무 상처받지 마시길 바라며. ㅎㅎ





Posted by jakesoul
주위에서 관련 질문을 해주신 분이 계셔서... 이전에 포스팅했던 내용을 보여드릴랬더니만, 일전에 포스트가 단체로 안드로메다 사생대회 가는 바람에 다 지워진 모양입니다.

이왕 포스트 하는 김에, 추가로 몇개 더 턱턱 붙여서 올립니다. 이전처럼 자세한 설명은 시간관계상 생략하겠습니다.-_-;; 코드의 세련미, 효율성이나 가독성은 여기서는 고려치 않았습니다.

##화면의 확대
: 화면을 주어진 배율로 확대합니다. 이 때 배율은 1, 2, ..., n 등 정수 뿐만 아니라, x1.2, x1.8, x2.7 등 실수배도 가능토록 합니다. 입력될 배율의 표현은 두개의 정수[int zoom_mul, int zoom_div]로 받겠습니다.

rate = mul / div;

void *frameBuffer;  //#### pointer of frame Buffer
void *destBuffer;   //#### copy of frame Buffer

//#### zoom rate = int zoom_mul / int zoom_div, zoom_div != 0
//#### scrWidth = width of screen
//#### scrHeight = width of screen

//#### Make destBuffer that will contains cropped frameBuffer
//#### ===============================
//#### 현재 frameBuffer의 중앙으로부터, 확대되어 화면에 뿌려질 부분만을 cropping 합니다.

const int DESTBUFFER_START_X_OFFSET
= (scrWidth * zoom_mul / zoom_div - scrWidth) / (2 * zoom_mul / zoom_div);
const int DESTBUFFER_START_Y_OFFSET 
= (scrHeight * zoom_mul / zoom_div - scrHeight) / (2 * zoom_mul / zoom_div);
const int DESTBUFFER_WIDTH = scrWidth * zoom_div / zoom_mul;
const int DESTBUFFER_HEIGHT = scrHeight * zoom_div / zoom_mul;

int offset = 0;
for ( int j = DESTBUFFER_START_Y_OFFSET; 
           j < DESTBUFFER_START_Y_OFFSET + DESTBUFFER_HEIGHT; j ++)
{
for ( int i = DESTBUFFER_START_X_OFFSET;
           i < DESTBUFFER_START_X_OFFSET + DESTBUFFER_WIDTH ; i ++)
{
*(destBuffer + offset ++) = *(frameBuffer + j * scrWidth + i);
}
}

//#### Make destBuffer fit to frameBuffer
for (j = 0; j < scrHeight; j ++)
{
int _j = j * zoom_div / zoom_mul;

for (i = 0; i < scrWidth; i ++)
{
int _i = i * zoom_div / zoom_mul;

*(frameBuffer + j * scrWidth + i) 
= *(destBuffer + _j * DESTBUFFER_WIDTH + _i);
}
}

* 화면을 확대할 때, 원래 배율 화면1에서 확대된 배율 화면 2로 바로 넘어가지 말고, 중간에 한두 프레임정도 화면1과 화면2를 적절한 알파값으로 겹쳐 그리는 것을 삽입하면 적절한 ZOOMING 연출이 됩니다.


## 전체 화면 BLUR 효과
: 현재 frameBuffer를 알파 적용해서 기준 화면에서 x, y 각각의 방향으로 -1, +1 씩 어긋나게 겹쳐 찍습니다. 타겟 디바이스의 퍼포먼스를 고려해서, 얼마나 많이 겹쳐 찍을 것인지-보통 상하좌우 4번이면 적당하지 않을 까요- 또한 그에 따라 겹쳐 찍을 때 알파 값을 어느 정도로 줄 것인지 그래픽 아티스트와 게임 디자이너 등과 조정하면 될 것입니다. 이 소스를 구구절절히 쓰는 것은 패킷의 낭비와도 같으므로 생략합니다.ㅎㅎ


## 전체 화면 모자이크 효과
: 화면을 정해진 크기[int  mosaic_size]의 격자로 나누어, 정해진 정도[int mosaic_degree]로 평균값을 구해서 칠합니다. 이 때, 각 격자 안의 픽셀들의 평균값을 구하는 방식은 여러가지가 있을 수 있는데요, 역시 타겟 디바이스의 퍼포먼스 등을 고려해서 얼마나 디테일하게 평균값을 구할 것인가를 정해야할 것입니다. 

다만, 특정인의 신원을 보호하기 위해, 혹은 성인물 윤리위원회의 심의를 통과하기 위해-_- 모자이크를 하지 않는다면, 모자이크라는 표현 자체가 '원래 이미지를 얼마나 근접하게 재현하는 가' 하는 것은 쥐한테 삽 들려주는 것만큼 가치가 없는 짓거리라는 것은 분명합니다. 

여기서는 격자의 최 좌측 상단의 점부터 시작하여 최 우측 하단의 점까지 mosaic_degree 만큼의 픽셀 값을 읽어 평균을 내도록 합니다.

void *frameBuffer;  //#### pointer of frame Buffer
void *destBuffer;   //#### copy of frame Buffer

//#### int mosaic_size;
//#### int mosaic_degree;
//#### scrWidth = width of screen
//#### scrHeight = width of screen

//#### void BlendPixel( int bg_RGB, int fg_RGB, int alpha );
//#### int getCoordDivByDeg(int mosaic_size, int mosaic_degree, int step);

for (int j = 0; j < scrHeight / mosaic_size; j++)
{
int _j = j * mosaic_size;

for (int i = 0; i < scrWidth / mosaic_size; i ++)
{
int _i = i * mosaic_size;

int rgbValue = *(destBuffer + _j * scrWidth + _i);

//#### Calculate balanced rgb value for the mosaic square
for (int k = 0; k < mosaic_degree; k ++)
{
int currLoc
    = getCoordDivByDeg(mosaic_size, mosaic_degree, k);
int currRGB 
     = *(frameBuffer + (_j + currLoc) * W + _i +  currLoc);
rgbValue 
     = BlendPixel ( 
           rgbValue, currRGB, 256 - 256 / mosaic_degree);
}
*(destBuffer + j * (scrWidth / mosaic_size)  + i) = rgbValue;
}
}

//#### draw
for (int j = 0; j < scrHeight; j ++)
{
int _j = j / mosaic_size;
for (int i = 0; i < scrWidth; i ++)
*(frameBuffer + j * scrWidth + i) 
     = *(destBuffer + _j * (scrWidth / mosaic_size) + i / mosaic_size);
}


##화면의 회전
: 사실 이것을 구현하는 것이 가장 골치 아팠는데, 제가 아는 삼각함수 이론으로 구현하니 한 8% 부족하더군요-_-;; (잘돌다가 갑자기 쿠에르보 더블 턴을 하더군요...) 그래서 다른 멋쟁이 개발자의 소스를 그냥 날로 먹겠습니다 차용해서 구현했습니다. 쎼쎼 아리가또 땡큐.

void *frameBuffer;  //#### pointer of frame Buffer
void *destBuffer;   //#### copy of frame Buffer

//#### int pivotX;
//#### int pivotY;
//#### int angle;
//#### scrWidth = width of screen
//#### scrHeight = width of screen

//#### return value of sin(int angle), cos(int angle) => -0xFF ~ 0xFF

for (int j = 0; j < scrHeight; j ++)
{
int tmpY = j - pivotY;

for (int i = 0; i < scrWidth; i ++)
{
int tmpX = i - pivotX;

int _i = pivotX + (tmpX * cos(angle) - tmpY * sin(angle) >> 8);
int _j = pivotY + (tmpX * sin(angle) + tmpY * cos(angle) >> 8);

if (_i >= scrWidth || _i < 0) continue;
if (_j >= scrHeight || _j < 0) continue;

*(frameBuffer + j * scrWidth + i) = *(destBuffer + _j * scrWidth + _i);
}
}


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

날로 먹는 iPhone dev 일기 #3  (2) 2009.05.06
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
Posted by jakesoul
작년 내내 매달렸던 프로젝트가 일본에 런칭이 되었습니다. 일본쪽 타이틀은 에리테리아 전설이군요. 
 


2월 말 au(KDDI), 3월 초 야후 케타이(softbank)에서 서비스 되었고, 그리고 3월 말에 i-mode(NTT)에서 서비스 예정입니다. 기존 인력 다 나가고 프로젝트 중간에 갑자기 맡게 된 것인데다가 본사 입맞에 맞춰주고, 플랫폼도 여러번 바꿔터느라 그 퀄리티가 차마 어디 내놓기 부끄러운 놈이지만 의외로 선전하는 모양입니다. 전 캐리어 통합랭킹(?) 17위, 다음주 야후 케타이 랭킹 7위라는 이야기가 있네요. 정작 저희 팀 내부에서는 '초딩도 외면할 게임'이라며 자책했는데요. =) 

사실 설령 일본에서 1등한다고 해도 저랑은 아무 상관이 없는 이야기입니다. 한국에서 잘 나와야지요.(-_-) 하지만 정작 한국 쪽 서비스는 통신사 평가단의 높은 벽+국내 유수의 개발사들에서 내놓은 고 퀄리티의 뛰어난 경쟁작 때문에 어찌될지 모르는 일입니다. ㅎㅎ




Posted by jakesoul

작년 한해 제 폰(업무적인 용도로 회사폰에 받아본 것 말고)에 받아서 플레이 해 본 게임들을 간단하게 돌아보는 시간을 가져봅니다.

코나미 파워풀 석세스

실황 혹은 파와푸로쿤 시리즈의 팬이라면, 국내에 한글화되어 정식 런칭된 석세스를 한번쯤은 꼭! 해보셔야죠. 하지만 투수 석세스는 너무 어려운 관계로 타자만 잔뜩 키우게 되는 것이 단점? 어쨌거나 밸런스를 비롯해서 여러가지로 부족한 점도 많습니다. 현재 코나미에서 후속작 개발에 박차(…이 회사의 업무 강도는 내가 아는한 국내 최고-_-)를 가하고 있다니까 기대를 해봅니다.

  • 갑자원 우승은 2년차에 하는게 3년차 보다 10배는 쉬운 느낌. 무조건 초반에 달려서 2년차에 우승을 달성하는 것을 목표로…
  • 개인적으로 다이죠부박사의 개조 성공률이 타 시리즈에 비해서 상당히 높은 느낌. SKT 평가단에게 지적을 당했나-_-.
  • 양호선생님하고 뭔가 썸씽이 이루어질 것 같은 분위기 인데 이벤트 발생에는 실패. 혹시 정보있으시면 공유부탁드려요.

 

당신은 야구 감독

무엇보다 그래픽이 인상적인 게임. 분명 모바일 씬에서 유행하거나 보편화된 스타일은 아니지만, 나름대로 굵고 개성적인 스케치와 색표현을 보여줍니다. 또한 게임이 진행되는 전체화면은 SD 캐릭터들로 표현되는 데, 이 역시 어딘가 향수를 부르는 느낌입니다.

게임 진행은 야큐쯔쿠(야구팀을 만들자)에서 선수관리를 빼버린 미니멀라이즈드 버전 같은 기분? 뭐 복잡한 커맨드나 상성, 옵션 등은 없고 그냥 뭐 훈련하면 뭐 오르고 뭐 떨어지고… 해서 적당히 다 잘 키워서 팀 수치를 높인 후 타 팀들과 시뮬레이션으로 경기를 치뤄 승리하는 것이 다 입니다. 물론 이러면 너무 재미가 없으니까 중간중간 사용자가 개입할 수 있도록 해놨는데… 이게 다 박자 맞춰서 커맨드 입력하는 방식이라 더 재미도 없고 더 말도 안되고 해서 금세 안하게 됩니다.

어쨌거나 이 작품으로 개발사인 Hotdog 스튜디오의 행보에 관심을 갖게 되었고, 나올지 안나올지 모르겠지만-_- 후속작을 기대해봅니다.

 

YAP!

아직도 네이트 TOP 20안에 있다는 것이 놀라운 게임. 이거 개발하신 분들하고 일면식도 없는데 대놓고 깔꺼라서 초면에 먼저 사과드리고 시작합니다. (하지만 돈 많이 버셨잖아요. 존경합니다.-_-)

개발사 인터뷰를 보니 제목이 YAP인 이유가 그냥 주인공이 내는 소리가 얍이라서 제목에 가져다 썼다는데.. 더 놀라운 것은 스토리도 그냥 날로 만든 것 같고, 레벨 디자인도 그냥 어떻게든 볼륨 맞출라고 끼워다 맞춘 느낌. 포탈 탈 때마다 폰 리붓되는 경우도 잦습니다. 엔진하고 시스템하고 거의 다 된 거 같은데… 마지막 7%정도 부족한 느낌? UI 들도 게임하고 잘 안맞는 것 같은 느낌을 많이 줍니다.

 

제노니아

지금까지 나온 모바일 RPG중 최고가 아닐까…싶습니다. 단순해 보이면서도 섬세한 그래픽과 모자라지도 지나치지도 않은 이펙트, 그리고 잘 구성된 UI. 아.. 대화 포트레이트는 그냥 그렇습니다.-_-

어쨌거나 무엇하나 콕 찝어 말하기가 번거로울 정도로… 드래곤 로드, 영웅서기 등 나름 이 바닥에서 탄탄하게 자리 잡고 버텨온 인기 RPG들을 한번에 거시기 거시기 할만한 정도의 임팩트. 개인적으로 가지고 있던 게임빌 게임들은 캐쥬얼한 그래픽에 원버튼 류의 단순한 시스템, 그리고 회사 이름빨로 적절히 포장되어 잘 팔리기만 할 뿐이라는 편견(게임빌 임직원 분들께도 사과드립니다.-_- 하지만 회사 이름빨, 대표이사 학력빨로 위기들도 잘 버티고 어느 정도 회사 잘 꾸려온 것도 사실이잖아요.)이 깨지는 순간이었습니다.

Posted by jakesoul

 

게임을 하다 사람이 죽을 수도 있다는 것을 알려준 내 인생 제 1의 게임, 실황 파워풀 프로야구(이하 실황)의 국내 모바일 버전이 발매되었습니다. 실황은 1994년부터 지금까지 매년 발매되는 게임으로, 일본야구협회NPB 공식 야구게임입니다. 몇년전 부터 메이저리그 버전도 발매되고 있죠.

P1000577

콘솔에서의 실황은 하나의 패키지 안에 여러개의 모드를 탑재하고 있습니다. 그것은 크게 일반적으로 야구게임하면 떠오르는 경기진행 즉, 페넌트레이스와 육성 시뮬레이션 모드들입니다. 국내 모바일 버전은 페넌트레이스와, 육성 모드를 대표하는 석세스를 별도의 어플로 나눠서 서비스 하고 있습니다. (개인적으로 좋은 방침이라고 생각합니다. 전 모바일로 페넌트레이스를 하고 싶진 않거든요. 불필요한 패킷을 다운로드 하고 싶지 않습니다.)

P1000578

코나미의 로고. 아아... 얼마전 코나미 코리아에서 VM 개발자를 모집했었는데 말이죠. 애기낳고 리턴투회사원 할줄 알았으면 좀 더 적극적으로 구직활동해보는건데...

P1000579 P1000589 P1000592 P1000594 P1000595 P1000596 

석세스는 모바일로 즐기기에 딱 좋은 형태입니다. 고등학교에 입학한 주인공이 고교 3년 동안 야구부에서 활약하여 프로선수로 지명되는 것이 게임의 큰 줄기입니다. 게임은 매 주 별로 진행이 되며, 매 주 연습, 상담, 데이트, 공부(휴식) 등의 커맨드를 지시할 수 있습니다.

게임은 N64때의 석세스를 모티브로 했다는 것이 실황팬들의 의견이며, 등장인물들은 100% 국내화되어있습니다. (주인공의 라이벌인 마모루군은 강영웅으로...) 연애모드도 역시 탑재되어있으며, 김태희가 나옵니다.ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ. 참고로 전 김태희랑 3년동안 사귀어봤습니다. ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ. 등장하는 여성들 중 선생님하고만 못사귀어봤네요. 공부만 열심히 하려면 되려나.

석세스를 통해 육성한 선수는 서버에 등록해서, 모바일판 페넌트레이스에서 사용할 수 있다고 하는데... 과연 모바일에서 구현한 야구게임에서 얼마나 그 능력치의 차이를 표현할 수가 있을지, 모바일에서 야구게임 몇번 만들어 런칭 시켜본 사람입장에서 매우 회의적입니다.

원활한 게임 진행을 위한 팁과 소감들을 잠깐 리스트업 해보면,

  • 투수는 만들지 마라; 능력치 up & down이 자동으로 이루어진다.
  • 타자는 무조건 '사용자 육성'으로 작성한다.
  • 천재형(초기 능력치 평균이 C)에 센스O가 아니면 다시 시작해라.
  • 범재는 용서할 수 있어도 센스X는 용서가 안된다.
  • 연습을 통한 능력치 포인트 상승 외에, 경기 출장을 통한 능력치 포인트 획득을 노리기 위해선 무조건 경기에 나가서, 경기를 이겨야 한다.
  • 전국대회 우승은 2년차가 기회. (3년차의 강영웅 보다 2년차의 강영웅이 상대하기 편하다. 또한 3년차에 전국대회 결승에 제왕고 보다 강력한 고등학교가 기다리고 있다.)
  • 입학(게임개시)과 동시에 운동장정리만 죽어라 해라. (이 명령은 언제나 부상률 1%, 즉 부상을 당하지 않으므로 걱정말고) 그러면 바로 1년차 여름 대회부터 주전으로 뛸 수 있다.
  • 여자친구는 무조건 만들어라. 생일날 여자친구의 선물을 통해 추가 능력치 업이 가능하다.
  • 여자친구와 데이트시, 추울 때 공원을 가거나 지난번에 간 곳을 또 가거나 하는 것은 금물. 오락실과 영화관도 대체로 좋은 반응을 얻기 힘들다. 야구 연습장에 가서 성적이 안좋으면 평가가 하락하는데, 이 성적은 자신의 능력치와 비례한다.
  • 매년 2월달에 학과 시험을 치룬다. 성적이 좋지 않으면 2월달 내내 추가 시험대비를 위한 공부를 해야 한다. 시험 성적은 컨디션과 의욕에 비례하므로 이 전에 미리 신경쓰는 것이 좋다.
  • 스카우터가 자신에게 관심이 있을 때, 타격능력을 보여주도록 하자. 자신이 잘하면 잘 할수록 추가 포인트를 얻는다.

'30대의 유희 > 게임' 카테고리의 다른 글

2008년 1년간 플레이해 본 모바일 게임 간단 리뷰  (0) 2009.02.22
sensible soccer  (0) 2008.12.31
실황파워풀 석세스 @모바일  (1) 2008.04.06
Medal of honor : airborne  (0) 2007.12.15
John Woo presents; STRANGLEHOLD  (0) 2007.09.13
포에버 블루 on Wii  (0) 2007.08.12
Posted by jakesoul