오전 부터 작업했으니깐 15시간 정도 삽질해서 또 하나를 마무리 지었습니다.
다른 업무를 하기 전 생긴 약간의 시간에 싸한 감정이 몰려옵니다.

친구 말 따라 그 형이 좋아하는 감정도, 그 친구가 좋아하는 감정도, 지금 내 감정도 다 같을 수 있을겁니다. 정도의 차이는 당연히 있을 수도 있을겁니다. 하지만 그 좋아하는 감정이 "보고싶고 같이 있고 싶다"라는 표현으로 나오진 않을 것 같다는 생각이 듭니다.

어젠 일마치고 제 마음을 눈치챈 친구놈이 네이트온에서 대화를 겁니다.
"너 나 한테 할 말 없냐?"
"일 힘들지? 밥 먹었어? 날 춥지? 내일은 어디로 일 간데?"
라며 엄한 기운에 말을 돌립니다.
뚱딴지 같은 말돌리기는 않 통합니다.
"니가 느낌 감정 그대로야. 앞으로 발전 할 수는 있겠지만 아직은 아니야."
라고 대답 합니다.
"더 할말 없어?"
다른 말을 기대했는지 다시 묻습니다.
그 친구는 제 마음을 의심하는 사람이 있다며 사귀든 아니든 빨리 끝내랍니다.
그러면서 본인은 저와 그 사람 사이를 반대한다고 합니다.
사실 저를 너무나 잘 알고 있는 친구기에 한 쪽 귀로 흘려보낼 수는 없었습니다.
저보다 저를 더 잘 아는 그 친구가 가끔 원망 스러울 때도 있습니다.

올 해 초 작년 부터 만나오던 사람과 헤어졌습니다.
헤어지면서 정말 많은 다짐을 했습니다.
많은 사람과 연애를 했지만 그 동안의 연애는 아이들 소꿉장난과 별반 다를게 없었습니다.
결혼할 생각이 없으면 마음도 주지 말고 영화 보잔 얘기도 하지 말자 생각했습니다.
사실 두달 전 부터 그녀에 대한 감정이 생기려 했습니다.
그럴수록 "거리두기"와 "감정버리기", "일에몰두하기"와 같은 행동을 계속 했습니다.

생각하면 할 수록 머리만 복잡해집니다.
일을 할 때가 아니면 이렇게 마음이 애려옵니다.
"날씨 춥다. 왠만하면 집에가서 자라."라는 문자 한 통에 정말 신났습니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

'나에 관한 관심 > 긍정적인 나' 카테고리의 다른 글

우리만의 암호를 정했습니다.  (2) 2007/11/18
신기한 사람입니다.  (0) 2007/11/13
보고싶습니다.  (0) 2007/10/31
사귈래? 말래?  (0) 2007/10/30
연하남과 연상녀의 입장차이.  (0) 2007/10/14
소규모아카시아밴드 - Lalala  (0) 2007/09/28

"사귈래? 말래?"
이런 질문 역시 흑백논리의 질문이다.
하루를 고민해도, 1년을 고민해도 위와 같은 질문에 대한 답은 2가지 밖에 없다.
사귀는 것사귀지 않는 것.
어쩌면 그녀 말 따라 지금 이 순간의 감정에만 충실하면 된다는 말이 맞는걸 수도 있겠다.

지난 주말 여수 항일함의 한 펜션에서 같이 놀자며 들어온 동갑내기 친구들이 들어왔다.
그 친구들이 악의가 있든 없든 중요치 않다.
그녀가 그 들과 친해지는게 싫었고 난 술에 취해있었다.
난 내 감정에 충실해서 "씹팔 개새끼들아 꺼져."라고 말했다.
그 친구들을 우리방으로 데려온 형은 내게 뭐라했지만 그녀는 마음을 알았는지 편이 되줬다.
여기에서 내 마음을 들킨거다.
그녀 역시 일련의 일 속에서 마음을 비춰줬다.

프로젝트 마무리 단계에 있는 지금 일이 손에 잡히질 않는다.
작업하러 학교 들어오는 길에 만난 그녀. 함께 있고 싶었지만 학교로 들어왔다.
취직이라는 행운과 찾아온 사랑에 이 둘을 모두 잘 할수 있을까 라는 노파심에 고민이 많다.
첫 직장에서 그 동안 준비해왔던 내 실력을 십분 발휘하고 싶고,
7번 째 사랑이 끝난 후 8번 째 사랑과는 결혼을 하고 싶다.

사귈래? 말래? 라는 단순한 질문에 머릿속은 복잡해져만 간다.
욕심쟁이 혜윰군은 일에도, 사랑에도 최선이고 싶다.
정말 좋은 그녀. 괜한 기우에 놓치기 싫다.
정말 보고 싶다.
함께 한 저녁의 4시간이 어떻게 지나갔는지 모르겠다.
그게 지금의 마음이다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

'나에 관한 관심 > 긍정적인 나' 카테고리의 다른 글

우리만의 암호를 정했습니다.  (2) 2007/11/18
신기한 사람입니다.  (0) 2007/11/13
보고싶습니다.  (0) 2007/10/31
사귈래? 말래?  (0) 2007/10/30
연하남과 연상녀의 입장차이.  (0) 2007/10/14
소규모아카시아밴드 - Lalala  (0) 2007/09/28
사내 정치를 잘하려면..
기사 원문 : http://news.naver.com/news/read.php?mode=LSS2D&office_id=088&article_id=0000079310&section_id=102&section_id2=251&menu_id=102

 11월 5일 정치 많기로 유명한 게임업계로 첫 발을 내딪는 날입니다.
교수님들 하나같이 하시는 소리가 정치 많은 게임업계에 내보내는게 걱정이라 합니다.
2년간 게임프로그래머가 되려고 정말 많은 노력을 했습니다.
오늘만 해도 집에 안들어간지 3일 째 입니다. 물론 오늘도 학교에서 취업 전 진행하던 프로젝트를 마무리 짓기 위해 밤샘 작업을 할꺼구요.
실력과 정치 혹은 인간관계.
 학생의 입장이라면 실력에 더 우위를 점치겠지만 출근을 앞두고 있는 지금 후자에 더 높은 점수를 주겠습니다. 물론 실력도 중요하지만 메인클라이언트와 메인네트워크프로그래머를 서브하는 서브 프로그래머로서 인간관계 혹은 정치 역시 중요하게 다가옵니다.
프로젝트 2개를 진행하면서 기획자가 원하고 제게 주어진 일이라면 순조롭진 않아도 어떻게든 일을 마무리를 지었습니다. 회사에 가도 구현하지 못하는 시스템은 없을 거라는 생각을 합니다. 물론 시간과 완성도, 혹은 성능의 문제겠죠. 하지만 정치는 다릅니다. 실력이 엇비슷한 경우라면 당연히 정치를 잘 하는 사람에게 승진과 더높은 연봉을 보장받을 테고 조금 떨어진다 해도 결과는 그러할꺼란 생각을 합니다.
 입조심, 생각조심, 몸짓조심
머릿속에 있는 생각들은 자신도 모르는새에 몸짓으로 투영되고 몸짓으로 투영된 생각들은 자신도 모르게 입으로 튀어나옵니다.
 입조심, 생각조심, 몸짓조심 
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

탄금 프로젝트에 AStar알고리즘을 적용 시킬려면 어떤게 필요할까?

사용자 삽입 이미지

1. SRPG라는 장르적 특성 상 기존 알고리즘의 이동형태를 바꿀 필요가 있다.
 : 자신 타일을 기준으로 상하좌우 대각선을 포함해 8방향에 대한 적합성 검사를 한다. 이를 수정하여 상하좌우 즉 4방향에 대한 검사를 수행하도록 해야한다.
 : 캐릭터가 이동 할 수 있는 영역은 자신의 이동거리를 나타내는 타일을 넘어갈 수 없으므로 이를 제한해야 한다. 최대 이동 거리를 제한 할 수 있는 방식에는 2가지가 있다. 길찾기가 완료된 GetBestNode()매서드를 통해서 최적화된 노드의 리스트를 얻어오는데. 얻어온 후 이동 시에 자신의 최대 이동거리와 비교하여 break; 시키는것과 노드 검색 시에 검색 범위를 최대 이동거리로 제한을 두는 것이다. 2번째 방법이 효율성 측면에서는 우수하나 AStar알고리즘의 특성 상 현재 찾고 있는 길의 적합도(f)값은 길찾기가 완료되지 않은 시점에서는 추측에 불과하기 때문에 무리가 있다.

2. 1번 문제가 해결됐다면 2번 문제를 들어가야 된다. 현재 검색하고자 하는 타일을 구성하는 작업이 필요하다.
 : 타일의 사이즈를 구성하는데에는 3개의 define문이 사용되었다.
#define ASE_GRIDSIZE 8    // 타일 간격
#define ASE_BOARDX 100  // 검색하고자 하는 타일의 세로축
#define ASE_BOARDY 100  // 검색하고자 하는 타일의 가로축
.
.
UCHAR  m_cBoard[ASE_BOARDX][ASE_BOARDY];
UCHAR  m_cDataBoard[ASE_BOARDX][ASE_BOARDY];
위의 코드처럼 검색할 보드가 셋팅된다.
시각적인 보드로 판단되니 코드 분석을 더 합시다.
실마리를 풀었다. aseView.cpp의 MouseToPoint()매서드를 살펴보자.
이 매서드는 유저가 툴바에서 선택한 브러쉬로 해당 포인트를 설정하는 루틴이 들어있다.
1) 마우스의 포인터와 보드 정보를 얻어온다
int px = point.x/ASE_GRIDSIZE;  // 마우스 좌표를 얻어온다.
int py = point.y/ASE_GRIDSIZE;  // 마우스 좌표를 얻어온다.
UCHAR *board = GetDocument()->GetBoard(); // GetBoard()함수로 포인터를 얻어온다.
2) Start-End값을 셋팅한다.
 else if (brush == 256)
 {
  temp.x = m_cStart.x * ASE_GRIDSIZE;
  temp.y = m_cStart.y * ASE_GRIDSIZE;
  UCHAR *board = GetDocument()->GetBoard();
  if (board[ci(px,py)] == 0 || pDoc->AseMessage(ASE_VALID, px, py) == ASE_POSINVALID) return;
  m_cStart.x = px;
  m_cStart.y = py;
 }
if (brush == 257)
 {
  temp.x = m_cEnd.x * ASE_GRIDSIZE;
  temp.y = m_cEnd.y * ASE_GRIDSIZE;
  UCHAR *board = GetDocument()->GetBoard();
  if (board[ci(px,py)] == 0 || pDoc->AseMessage(ASE_VALID, px, py) == ASE_POSINVALID) return;
  m_cEnd.x = px;
  m_cEnd.y = py;
 }

: 브러시 256은 start 257은 end를 나타내며 탄금 프로젝트 에서 start에는 캐릭터 자신의 위치를 넣고 end에는 공격할 대상의 위치를 넣으면 되겠다.
3) 장애물 값을 셋팅 한다. 장애물과 관련된 변수와 함수를 살펴보자.
var
m_iBreakData - int
m_cBreakpoint - CPoint
m_iBreakData - int
m_pcBreakNode - _asNode*

func
CPoint  GetBreakpoint() { return m_cBreakpoint; }
void SetBreakpoint(CPoint bp) { m_cBreakpoint = bp; m_iBreakData = -1; }
void CAseDoc::NodeAdded(_asNode *node, int data)
{
 if (m_cBreakpoint.x == -1 && m_iBreakData == -1) return;
 if (node->x == m_cBreakpoint.x && node->y == m_cBreakpoint.y) {
  m_bBreakpointHit = true;
  m_pcBreakNode = node;
 }
 if (data == m_iBreakData) {
  m_bBreakpointHit = true;
  m_pcBreakNode = node;
 }
}

위의 함수는 BreakPoint메뉴를 위해 존재하는 것이다.
다시 찾아보면 이동이 불가능한 타일은 ID_WEIGHTIMPASSABLE이라 명명되어 있고 m_uBrushType은 0으로 설정되어 있다.
결국 MouseToPoint매서드가 호출될 때 board의 특정 인덱스에 장애물을 나타내는 brush값인 0을 집어 넣음으로써 맵데이터가 채워지는 것이다.
// 뭐야 별거 아니잖아. 이것 때문에 4시간 동안 삽질 했다.
실질적으로 필요한 것만 간추리면 정말 간소한 AStar알고리즘이 완성되겠다.

//------------------------------------------------------------------------------
Q1-m_cDataBoard라는 멤버변수가 어디에 사용되는지는 이해가 않감.
A1-
Q2-캐릭터-캐릭터매니저-AI-FSM-AStar클래스간의 설계.
A2-
Q3-고정 장애물 말고 캐릭터를 장애물로 놓고 생각했을 시의 길찾기
A3-캐릭터 캐릭터 이동 턴이 종료된 시점에 해당 타일 정보 업데이트 시켜줌.

2007년 10월 24일 추가 작성
자료구조와 알고리즘 교수님께서 우리팀은 A*알고리즘을 프로젝트에 적용 시켰다고 이에 대한 발표준비를 하라고 하셨다. 그래서 샤샤삭 만들어 봤다. 실행파일과 스크린 샷 등을 포함 시켰다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
 프로그래밍이 뭔지도 모르고 제대하고 들어간 학교에서 열심히 했습니다.
이제 프로그래머라는 타이틀 보다는 게임프로그래머라는 타이틀을 달 정도가 됐습니다.
무작정 발을 디딘 처음과는 달리 지금은 게임프로그래밍의 재미를 알게됐습니다.

 게임프로그래머는 두 종류의 사람이 있습니다.
전자는 게임이 좋아서 게임프로그래머가 되겠다는 사람.
후자는 프로그래밍이 좋아서 게임프로그래머가 되겠다는 사람.
저는 후자에 속합니다. 부단한 노력끝에 포트폴리오를 만들어 게임잡에 올려놨고 제 이력서를 보고 연락 온 회사가 엔도어즈 개발2본부 입니다. 작년 G-STAR당시 엔도어즈에서 개발한 쿵파의 게임시연 도우미로 활동했는데 그래서 더욱더 애착이 가는 회사입니다.
1/13도 괜찮고,
집에서 조금 멀어도 괜찮습니다.
아침, 점심, 저녁을 모두 챙겨주고 원한다면 사내 기숙사 까지 지원해준다고 합니다.
뽑아만 준다면 회사에서 챙겨주는 밥 챙겨먹고, 회사에서 제공해준 숙소에서 자면서 프로그래밍에 미쳐볼랍니다.

 첫 면접에 대한 두려움도 있지만, 소풍가기 전 날 밤 설래임에 잠이 않오는 어린아이 마냥 한 숨도 못잤습니다. 뜬 눈으로 밤을 새며 학생의 신분으로 마지막 프로젝트가 된 탄금 후반 작업을 했습니다. 아침을 먹고, 위장약을 먹고, 씻고, 면도도 하고, 스킨로션도 챙겨 바르고, 어젯 밤에 잘 다려논 와이셔츠 입고 집을 나설겁니다. 지금의 기분은 첫사랑을 만나러 가는 것보다, 소개팅을 하러 가는것보다 더 설래입니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

엔트리브 - 홈페이지 서류전형 탈락;
예당온라인 - 메일로 이력서 제출
위메이드 - 홈페이지 지원
엠게임 - 홈페이지 지원
네오위즈 - 홈페이지 지원
엔도어즈 - 서류전형패스. 22일 오후 3시 면접
엔에치엔 - 서류전형패스. 22일 오전 11시 면접
한빛소프트 - 온라인입사지원

2007년 10월 1일

 마키아벨리는 군주론에서 정치가 혹은 지도자는 그에 걸맞게 신의가 두텁고 고결하며 인자하고 때론 용맹한 것으로 보여질 필요가 있으나 그 내면은 그렇지 않아도 된다고 생각했다. 마키아벨리즘이라는 용어가 여기에서 탄생됐는데 교황과 당시의 군주들에게 되려 탄압을 받았다고 한다.
 그가 탄압을 받은건 그의 저서에서 이야기 하고자 하는 바가 내면과 외면의 모습이 같든 다르든 그가 이야기 하고자 하는 방향대로 흘러가버릴수도 있겠단 생각 때문이었겠지만, 그를 탄압하던 특정 집단은 그의 말에 발가벗김을 당했다는 생각이 들었을꺼다.
 진실과 거짓. 선함과 악함. 긍정과 부정은 동전의 양면이다. 공간적인 면에서는 멀지도 모르지만 공간의 왜곡이 일어난 곳에서는 어느 것 보다도 가까울 수 있다.

2007년 10월 1일
위장약 먹고, 모기 다섯 마리 잡고, 화장실 3번 왔다 갔다 하고,
그랬더니 세벽 3시 12분.
그나저나 왜 이렇게 심장이 뛰나 몰라.

2007년 10월 2일
악!
그렇게 믿었건만 떨어져 버렸다.
엔트리브. 게임 완성 해서 다시한번 재도전!

2007년 10월 2일
서류심사에서 떨어진걸 바로 알았을때는 오히려 무덤덤 했는데..
지금은 완전 억장이 무너져 내린다.
게임 개발자로서 그 동안 열심히 공부했고, 프로젝트도 열심히 했는데.
뭐가 문제란 말이더냐? 응 응?
정말 가고 싶은 엔트리브.
보름 뒤 완성될 게임 + UML 추가해서 포트폴리오 업데이트 시켜서 다시 제출할거다.
합격 할거다. 반드시 합격 할거다.
아침 밥도 먹고 왔겠다.
게임 완성을 위해서 다시 좋은 기분으로 코딩 합시다.

2007년 10월 5일.
무너지던 억장을 다시 이렇게 저렇게 해서 다시 그 회사에 이력서를 냈는데,
똑같은 말이다.
내가 이기나 그 회사가 이기나 한 번 해봅니다.
실행파일 첨부할테니 조금만 기다려주십쇼.

2007년 10월 5일
입술이 트고, 손이 건조해지는 충돌질 하기 좋은 계절이 돌아와 버렸어.
모든게, 모든사람이, 모든일들이 지금 내겐 딱 좋아.
그 이상도 그 이하도 딱 여기까지만이야.
생활예절이라는 교양수업에 교수님께서 교수님 친구분이 가을은 충동질하기 좋은 계절이라는 말을 했다며 공감이 간다고 말하는게 어찌나 공감가는지.
뭔 말인지 알지?

2007년 10월 5일
학교에 괴소문이 돌고 있다고 한다.
모 게임회사에서 우리 팀을 통째로 대려간데나 뭐래나~
그게 진짜든 가짜든 왠지 기분 좋은 소문이다.

2007년 10월 6일
예당온라인 - T3엔터테인먼트 - 네오위즈 - 위메이드 에 입사지원함.
내가 너무 눈만 높은건 아니겠죠?
하여간 이제 길찾기 최적화 작업이나 합시다요.

2007년 10월 8일
게임잡에 올려논 이력서랑 포트폴리오를 보고 엔도어즈 개발 2팀에서 연락이 왔다.
작년 넥슨서포터즈로 뛰면서 넥슨에서 퍼블리싱할 계획이 있던 쿵파파트를 담당했었는데,
엔도어즈.
게임 프로그래머를 꿈꾸고 있는 지금 인연이 많은 회사다.
송파구에 있다는것만 빼면 정말 마음에 든다.
너무 멀~~~~어.
10월 22일. 지금 진행하는 프로젝트 끝내고 가벼운 마음으로 면접준비 확실히 해봅니다.

2007년 10월 8일
어익후야.
또 면접 보러 오라는 연락을 받았다.
회사이름이..에? 넨? 엠? 뭐라 그랬는데 순간 딴 생각 하느라 못들었다.
젝일슨.
분당구 정자역에 22일 오전 11시 까지와서 전화달라 하신다.
새우잡이배에 팔려가는건 아니겠지?
그래도 게임개발에 1억 2천만원 짜리 엔진을 쓸려면 규모있는 회사일텐데..
게임엔진 판매처랑 위치랑 회사규모랑 따져봤을때..
설마 NHN Games는 아니겠지?
NHN이든, 작은 회사든, 집에서 먼 회사든 잘 준비해갑시다!
그나저나 시험공부는 언제 할꺼니? 응!!!!!!!!

2007년 10월 12일
주구장창 프로젝트 관련 포스팅만 하고 있다.
이제..열흘..남았다..화이팅 하자..

2007년 10월 15일
앨범시장이 확실히 불황이긴 하나보군하.
식영이형님도 디지털싱글앨범을 내셨어.
근데..실질적으로 앨범판매량은 적을지 몰라도 음원판매나, 공연수익등을 따지면..
불황이라나는 말은 나 원 참.
인디밴드 앨범 말고 그냥저냥 가요앨범은 한 장 값이 너무 아깝단 말이지.
금방 질리기도 하고, 철 지나서 들으면 감흥없고.
그래도 식영이형님 노래 좋군하.

2007년 10월 15일
지금 강컴에 가면 특정 도서에 한해서 35%할인 이벤트를 한다.
강컴으로 고고씽
완전 사고 싶던 책이 "GOF디자인패턴 + 이펙티브STL + 리얼타임렌더링"이렇게 세권이 있는데 디자인 패턴책을 제외하고 두권이나 할인 행사 중인거다. 일단 한 권 바로 질렀다. 꺄악.
다시 들어가서...세 권 다 질렀다...미쳐...
합해서 54850원.

2007년 10월 17일 세벽
어제 저녁에 교수님께서 날 찾았다고 한다.
프로젝트 일로 자주 마주치는 교수님이지만 우리 팀 프로그래머를 찾은게 아닌..
날 찾았다고 하니 기분이 묘하다.
혹시, 이력서 집어넌 회사에서 학교로 연락을 한건 아닌가?
나쁜 일만 아니었으면 좋겠다.
물론 좋은 일이면 더할 나위 없지만서도..

2007년 10월 17일 세벽
"오늘 부터 내 몸과 마음, 영혼은 영원히 당신것입니다."
이 말을 하게 될 날이 언젠간 오겠지?
가을은 충돌질 하기 좋은 계절이랍디다.
바쁜 일로 충돌질 할 세가 없네요.

크리에이티브 커먼즈 라이선스
Creative Commons License


프로그래밍 관련 서적을 35%할인해서 판매하고 있습니다.
전 강컴 직원은 아니나 괜찮은 행사인것 같아 이렇게 포스팅 합니다.
일단 회원가입하면 즉시 사용할 수 있는 2000원 쿠폰을 줍니다.
그리고 4만원 이상 구입하면 배송비 2000원을 까줍니다.
저도 이곳에서 구매했습니다.
사용자 삽입 이미지

"GOF디자인패턴! 이렇게 활용한다." - 정가 : 28,000원
사용자 삽입 이미지

"Effective STL" - 정가 : 18,000원
사용자 삽입 이미지

"Real-Time Rendering" - 정가 : 35,000원


정가로 산다면 81,000원이나 들일 돈을 54,850원으로 해결했습니다.
게임프로그래머로 부족한 분야라 생각했던 디자인패턴과 쉐이더 서적을 샀습니다.
STL은 항상 느끼는거지만 MFC랑 STL잘하면 입에 거미줄 칠 일은 없을것 같다 말입니다.
일주일 용돈이 50,000원인 학생인 전 당분간 긴축재정 들어갑니다.
마음도 배도 허기지겠지만 머리만큼은 커지는 연말이 될 것 같습니다.


ps. 좋은 정보라 생각되시면 회원 가입하실 때 추천인에 gojuen 추천 부탁드려요^0^
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

남좌와 여좌의 생각의 차이는 충분한 오해의 소지를 일으킬 수 있습니다.
...
...
...
그러한 차이로 몇 일전 약간 오해 살만한 일이 있었습니다.
그 일 때문에 친구가 맘에 걸렸는지 잘 쉬고 있나 안부 전화 한답시고 맥주 한 잔 하잡니다.
중간에서 정말 많은 걸 알고 있는 친구녀석.
가끔은 그 놈이 무섭기도 합니다.
가끔 걱정이 되는건 너무 많은 걸 알고 있어 그게 자신에게 큰 짐으로 다가올 때가 있거든요.
저 역시 그런적이 많아서 잘 알고 있습니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

'나에 관한 관심 > 긍정적인 나' 카테고리의 다른 글

우리만의 암호를 정했습니다.  (2) 2007/11/18
신기한 사람입니다.  (0) 2007/11/13
보고싶습니다.  (0) 2007/10/31
사귈래? 말래?  (0) 2007/10/30
연하남과 연상녀의 입장차이.  (0) 2007/10/14
소규모아카시아밴드 - Lalala  (0) 2007/09/28
3D 게임 상에서 계단을 오르는 처리를 어떻게 하면 가장 좋을까?
가장 좋다는 말은 빼도록 하는게 좋겠지만 일단 생각을 좀 해봅시다.
지금까지 2D슈팅, 3D 보드형전략게임의 프로젝트를 진행했는데 계단이라는 지형을
프로그래밍할 부분은 없었다.
그래서 가끔 계단을 보면 저걸 어떻게 프로그래밍하는게 좋을까 라는 생각을 했었다.
지금까진 해답이 없었는데 갑작스레 답이 나온것 같다.
구현을 해서 퍼포먼스를 따져보지는 않았으나 그렇게 많은 연산이 들어가진 않을것 같다.

1. 2개의 높이 정보를 지닌 맵을 준비한다.
2. 캐릭터 클래스에 멤버변수로 현재 위치한 층수에 대한 정보를 지닌다.
3. 캐릭터 이동 시 위치정보가 업데이트 될 때 마다 높이 정보를 읽어오는 방식의로 구현한다.
4. 계단으로 올라가게 되는 위치로 이동하면 캐릭터클래스의 층수 정보를 2층으로 바꾼다.
5. 2층으로 바뀌게 되면 읽어들일 높이맵을 바꿔준다.
6. 계단입구에 들어섰을 때 높이맵을 로딩하고 적용시키게 되면 약간은 버벅 거릴듯 싶다.


 외국 게임프로그래밍 포럼을 돌아다녔을 때 자연스런 계단이동을 위해 구체를 이용한 물리 자료를 본적이 있다. 게임을 현실감과 퍼포먼스는 서로 반대편에 서 있다. 게임을 플레이할 때 사실감을 극대화 시키기 위해서는 모든 물체 하나하나의 특성에 따라 물리엔진을 적용시켜야 겠지만 그러기엔 퍼포먼스를 너무 많이 잡아먹는데. 그런 복잡한 연산없이도 알고리즘이나 트릭을 거치면 사실감을 극대화 시킬 수 있다. 게임프로그래밍이 재밌는 이유가 그거다. 물리엔진은 피직스를 살짝 맛배기만 봤는데 분명히 흥미롭다. AI와 더불어 관심있는 전문분야 중 하나다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License

'직업에 관한 관심 > 탄금 프로젝트' 카테고리의 다른 글

D-Day일? 게임 완성일.  (1) 2007/12/18
게임에서 계단 오르내리기.  (0) 2007/10/14
선형보간 공식. 자꾸 까먹어.  (0) 2007/10/14
CEGUI 파일 분석  (0) 2007/10/11
프로젝트 "탄금"  (2) 2007/10/01
DLL을 이용한 프로그래밍  (0) 2007/09/27