사내 스트레스 테스트

4월 10일 사내에서 175명의 직원들을 상대로 개발중인 게임을 공개했다. 동영상이나 pt자료는 공개한 적이 있었지만, 플레이 가능한 바이너리를 공개하긴 처음이었다. 여지껏 MMORPG에서 TPS(혹은 FPS)스타일의 전투를 도입한 사례는 없었다. 주변의 우려와 스스로의 불안감에도 불구하고 TPS전투 MMORPG를 표방하며 2007년 8월에 프로젝트를 시작했다. 사실 지금껏 한 순간도 우려하지 않았던 적은 없었다. 계산상으로는 가능해보였다. 허나 돌려보기 전에는 모르는 일. 이번 테스트는 … More 사내 스트레스 테스트

엔진 그림자 개선

일전에 일기장에 투덜댄 바, 그림자를 개선하고 있다. nVidia의 LiPSM샘플을 참고하여 일단 대충 구현은 했다. 원리가 이해되지 않아서 몇 일간 출퇴근시, 자기 직전, 운동할때, 열심히 생각을 해서 기본적인 원리는 이해했다고 판단. 코딩은 반나절 걸려서 끝냈다. 내가 확실하게 이해를 못해서 그런지, 퀄리티가 아주 맘에 드는건 아니다. 좀 더 개선을 해야하고 코드도 정리해야한다. 이 짓을 시작한 이유는 씬 … More 엔진 그림자 개선

설 연휴 작업 내용

금요일 로켓탄의 궤적을 캡슐로 하여 캐릭터 타원체와 충돌처리. 필요한 검색 코드 및 수학함수 추가 토요일 npc서버를 릴리즈로 빌드하다 오작동. 코드를 샅샅이 뒤졌으니 문제 발견 못함. 디스어셈블된 코드를 살펴보고 컴파일러가 옵셋을 잘못 계산했음을 발견. 프리컴파일드 헤더 다시 세팅하고 최적화 옵션 바꾸고 어쩌고 하다보니, 어느 순간 제대로 된다.–; 현재 풀 옵티마이즈 상태로 제대로 작동. 일요일 서버에서 로켓탄환 … More 설 연휴 작업 내용

피직 트랜스폼(캐릭터 스키닝) 64비트 SSE버젼 코드

소스코드 ———————————————————————————————————————————————— <physiq_transform_x64.asm> ———————————————————————————————————————————————— INCLUDE math_type_x64.inc .code ;void __stdcall PhysiqueTransformPosAndNormalAndUV(BYTE* pVertexResult,PHYSIQUE_VERTEX* pPhyVertex,DWORD dwVertexNum,DWORD dwSize,MATRIX4* pMatrixEntry) PhysiqueTransformPosAndNormalAndUV PROC pVertexResult:QWORD , pPhyVertex:QWORD , dwVertexNum:QWORD , dwSize:QWORD , pMatrixEntry:QWORD local   v3Normal : VECTOR4 local   v3Tangent : VECTOR4 ; backup xmm6 sub   rsp,32 movups  [rsp+0],xmm6 movups  [rsp+16],xmm7 mov    qword ptr[rbp+16],rcx mov    qword ptr[rbp+24],rdx mov    qword ptr[rbp+32],r8 mov    qword ptr[rbp+40],r9  mov   rcx,dwVertexNum or   rcx,rcx jz   lb_return  mov   r10,pPhyVertex mov   r8,pVertexResult; pVertexResult lb_loop_physique_num: xorps  xmm3,xmm3     ; v3Result movups  v3Normal,xmm3    ; v3Normal movups  v3Tangent,xmm3    ; v3Tangent … More 피직 트랜스폼(캐릭터 스키닝) 64비트 SSE버젼 코드

추석 연휴 작업 내용

금요일 (연휴 전날) 트리거 렌더링 코드 디버깅 -> 정상 작동 맵툴에서 퍼포몬스 체크용 폰트 화면 가장자리로 밀림 -> 정상작동 최근에 버텍스 버퍼 락을 완전히 없애고 쉐이더 기반으로 바꾸면서 생긴 버그들. 어쨌든 다 잡았다. (토요일) 현재의 툰 쉐이딩에 깔끔한 외곽선을 넣어보고자 이리저리 시도. 먼저번에 이미지 프로세싱 기반으로 시도했다가 영 지저분하게 나와서 , 이번엔 노말벡터랑 시선 벡터 … More 추석 연휴 작업 내용

BSP/PORTAL적용 결과

본점(http://yuchi.net)에 올린 글입니다. 게이버 따위에 자료를 올려줘야 할 가치가 있는진 좀 의문이긴 하지만 일단 올려봅니다. 제 홈피에서도 몇번인가 언급한적이 있고 KGC2006때 발표했었던 주제입니다. 툴을 이용해서 ROOM을 모델링하고 PORTAL을 자동생성, 공간 구분은 BSP를 이용하는 기술이죠. 그 동안 아이디어를 실제 프로젝트에 적용하는데 꽤 시간과 노력을 들였고, 이젠 안정화 단계에 접어들었다고 생각합니다. 해서 홈피 놀러오시는 분들에게 서비스 차원으로 … More BSP/PORTAL적용 결과

새로운 툴 추가 MTControl

아이템샵 기능을 만들어넣다가 이래저래 하다 보니 아무래도 툴이 필요했다. 하는 김에 모델뷰에다가 어거지로 때려넣었던 클래스 프로퍼티, 무기 프로퍼티, 방어구 프로퍼티 툴까지 몽땅 통합했으면 좋겠다는 생각이 들었다. 해서 후닥닥 만들었다. 몸만 안아팠으면 2일이면 됐을것을. 금요일 작업하고 월요일 골골대고 화요일까지 작업해서 대충의 프레임을 잡고 아이텝샵 생성 기능을 만들어 넣었다. 이 와중에 DB에도 테이블 두개 추가. 이름하여 MTControl. … More 새로운 툴 추가 MTControl

멀티플 클라이언트 제작

  mmorpg프로젝트다보니 이래저래 작업을 하다보면 클라이언트를 몇개씩 띄워야할 때가 많다. 메모리를 100메가가 넘게 쳐먹는 클라이언트를 여러 개 띄우려면 꽤나 짜증이 난다. 일단 옆에 둔 노트북이 큰 도움이 되긴 하지만서도. 로딩시간도 그렇고 화면이 계속 갱신되는데다, 마우스랑 키보드 컨트롤 게임이다보니 디버깅 하려고 콘솔을 조작하면 게임 상태도 계속 영향을 받는다. 해서 한 프로세스로 여러 개의 클라이언트를 시뮬레이션 해주는 … More 멀티플 클라이언트 제작

몬스터가 나를 때린다

유져가 접속해있는 에이전트 서버, 게임 컨트롤 서버, NPC 서버가 따로 존재하다보니 NPC입장에서 유져를 탐색하고 공격하고 그에 대한 판정을 하는게 쉽지는 않았다. 여기서 NPC란 대체로 몬스터를 칭하지만  그외 플레이 하지 않는 모든 캐릭터를 말한다. 하여간 대단히 복잡한 구조를 구상하고 코딩하다가, 삽질임을 깨닫고 좀 간단한 방법으로 코드를 다시 짰다. 삽질임을 빨리 깨달아서 다행이다. 일주일을 예상했지만 생각보다 빨리 끝냈다. … More 몬스터가 나를 때린다

비디오 텍스쳐

2004년도에 졸업논문의 주제로 선택한 것은 ‘d3d와 픽셀 쉐이더를 이용한 실시간 포스트 이펙팅’ 이였다. 쉽게 요약하자면 1.동영상 플레이어다. 2.픽셀쉐이더를 이용해서 실시간으로 이펙트를 먹여준다 3.샤픈,모션블러,흑백,연필화느낌 필터…등등등 따위의 필터가 가능하다 하여간 그때 일도 바빴고 급하게 준비하느라 무지 고생했던 기억이 난다. 우선 dshow를 이용해서 4DyuchiGXMedia.dll컴포넌트를 만들었다. 이 녀석을 엔진의 렌더러와 연결했다. 이 DLL을 사용하여 엔진에서 avi텍스쳐를 생성할 수 있도록 … More 비디오 텍스쳐