본문 바로가기

전체 글

(95)
객체 이동 경로 관리 여기에서 말하고자 하는 것은 앞으로 이동할 경로에 대한 예측이 아닌, 현재 객체가 이동한 경로를 관리하고 처리하는 방식에 대해 논의해 보고자 한다. 어떻게 보면 이미 지난 데이터라 의미없을지 모르지만 예측이 아닌 객체(A)의 이동 처리 방식에서는 타 객체(B)의 현재 위치는 예전 위치이기 때문에 만약, 타 객체(B)가 객체(A)를 공격할때 이에 대한 정확한 판단이 필요하게 된다. == 이를 위해 다음과 같은 객체의 처리가 필요하게 된다. 다음과 같이 객체의 이동이 발생 되었다고 가정하다. 객체(A)는 이동을 하지만, 객체(A)를 보고 있는 다른 객체(B)는 일정 시간 이후에 객체(A)의 이동을 보게 된다. 이러한 시점에서 객체(B)가 객체(A)를 공격한다면? 서버에서는 객체(A)가 객체(B)가 보고 있는..
시야관리 - 데이터 최적화 여기에서 말하고자 하는 것은 시야 범위내 객체의 이동으로 인해 주변 객체에 전달해야 하는 데이터를 최적화 하는 방식에 대해 논하고자 하는 것이다. 화면은 일반적으로 MMO 계열의 객체 관리 방식을 나타낸 것이다. 일반적으로 3x3 방식의 블럭을 통해 객체에 대한 시야를 관리하고 데이터를 관리(전송)하게 된다. 이 방식의 장점은 데이터 발생에 대한 처리를 범위내 객체에 제한 되어 데이터 처리의 효율성을 증가시킨다는 장점을 가지고 있고, 물론 현재 대부분의 MMO 계열에서 사용되고 있다. 그러나 해당 방식의 가장 큰 단점은 바로 객체가 해당 3x3 블럭에 모여 있을 경우 데이터에 대한 처리가 많아 진다는 것이다. 즉, 100개의 객체가 존재한다면 발생 데이터당 100번의 데이터 전송을 해야 한다는 내용이 된..
[기사] 티스토리에서 레몬펜으로 '밑줄 좍~' http://news.naver.com/photo/read.php?mode=LTD&office_id=293&article_id=0000000364&section_id=105&view=all&type=1 재미 있는 기능이 될것 같습니다~ 밑줄 쫙~ ㅋ 기념으로 레몬펜 설치 했습니다.. OpenID도 발급받고~
Windows플랫폼에서 사용가능한 Minidump Windows 플랫폼에서 개발된 프로그램에 문제가 발생되었을때 어떻게 할까? UNIX(Linux) 에서는 core 파일이 생성되어 debug에 사용될수 있다. 그런데, Windows에서는 상대적으로 이런 부분에 대해서는 별도의 제어가 필요하다. 다음의 코드는 Exception이 발생되었을때 간단히 사용할수 있는 Source이다. #include #include #include #include /////////////////////////////////////////////////////////////////////////////// // Minidump creation function // typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)( HANDLE hProcess, DWORD..
[기사] 정부, 온라인게임에 '피로도 시스템' 도입 의무화 정부, 온라인게임에 '피로도 시스템' 도입 의무화 http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&sid2=&oid=031&aid=0000126727&iid= 게임을 몇시간 이상 못하게 하는 방식에 비해 좀더 지능화 한 방식이군요. 점점 규제가 가시화 되어 가는듯~ 한쪽에서는 온라인게임 분야에 대한 활성화를 논하고 한쪽에서는 규제방식을 논하고... 이러한 규제는 별 도움이 안될듯~ GPGStudy에 이에 대한 글이 떴네요. 링크: http://www.gpgstudy.com/forum/viewtopic.php?topic=18836
NPC/AI 처리 1) 각 NPC는 Hate List를 통해 분노도가 높은 객체(플레이어 또는 NPC)를 우선 공격하도록 구성 할수 있다. : 이러한 처리 만으로 NPC는 기본적인 AI만으로 플레이어에 대한 공격을 처리 할수 있다. 예를 들어, 몬스터를 직접 공격하는 플레이어와, 해당 플레이어에게 힐을 해주는 플레이어가 있다고 가정한다면 몬스터는 힐을 해주는 플레이어를 공격할수도 있게 된다. 2) 전략 및 전술을 위한, NPC간의 적대/우호 관계 및 상하 관계 리스트 구성 : 이러한 구성을 통해 몬스터가 전투중 도망가야 하는 상황이 발생될때, 자신의 시야에서 자신에게 유리한 방향을 선택할수 있으며 만약, 시야중에 자신과 상하 및 우호 관계에 있는 다른 몬스터에게 도움을 요청할 수 있도록 처리할수 있다. 3) NPC 지형 ..
NPC의 이동 관리 1) MOVE를 통보(Notify)받는 NPC에 대한 Priority Queue 관리 : 해당 처리를 통해 NPC가 플레이어가 존재하는 블럭에서만 이동할수 있도록 할수 있다. - Priority Queue는 전체 NPC를 한번에 처리 하지 않는 구조에 적합하며, 전체 NPC를 한번에 처리해야 하는 구조에서는 일반 list 처리가 빠른 성능을 보인다. - 해당 방식을 사용하기 위해서는 전체 NPC의 처리가 특정 시간에 집중 되지 않도록 분포시키는 기법이 중요하다. : 예를 들어, 전투/선공 상태의 NPC를 우선 처리하는 기법이 사용될수 있다. : 또한 Priority Queue의 insert/remove 시간을 줄이기 위해 형태별 독립된 Queue의 구성도 고려될수 있다. : 이러한 처리를 통해, CPU로..
객체 이동 관리 1) 이동된 경로를 레코딩하여 일정 주기로 서버에 전송 하는 방식은... : 해당 방식을 통해 서버는 사용자별 네트워크 트레픽을 예측할수 있다. : 예측이 포함되지 않으므로 정확한 이동에 대한 처리가 가능하다. : 이와는 반대되는 방식이 클라이언트에서 움직일 경로를 미리 서버에 전송하여 처리 하는 방식이 있는데, 해당 방식은 중간에 경로를 수정하고자 할때 서버의 연산 처리(거리 예측 계산 등)가 증가될수 있는 원인이 되며, 이로 인해 이동 패킷 이외의 보정 패킷이 필요하게 된다. - 그러나, 위에서 언급한 방식은 이러한 위치 연산을 최소화 할수 있다. : 이 방식의 단점은 바로 일정 시간 이후에 다른 플레이어가 내 화면에서 움직인다는 것이다. : 이동 방식의 정리 1. 일정 주기(시간)로 이동 경로를 레..