KR20200049252A - 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템 - Google Patents

지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템 Download PDF

Info

Publication number
KR20200049252A
KR20200049252A KR1020180132273A KR20180132273A KR20200049252A KR 20200049252 A KR20200049252 A KR 20200049252A KR 1020180132273 A KR1020180132273 A KR 1020180132273A KR 20180132273 A KR20180132273 A KR 20180132273A KR 20200049252 A KR20200049252 A KR 20200049252A
Authority
KR
South Korea
Prior art keywords
location
user terminal
location information
navigation
guessing
Prior art date
Application number
KR1020180132273A
Other languages
English (en)
Inventor
김지호
Original Assignee
주식회사 드래곤랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 드래곤랩 filed Critical 주식회사 드래곤랩
Priority to KR1020180132273A priority Critical patent/KR20200049252A/ko
Publication of KR20200049252A publication Critical patent/KR20200049252A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • H04L67/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

지능형 추측항법을 이용한 이동 패킷 통신 방법은 서버에서 유저 단말기에 임의의 오브젝트의 위치 정보를 전달하는 방법에 있어서, 상기 오브젝트의 실제 위치를 상기 서버로 전송 받는 단계, 상기 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하는 단계, 상기 유저 단말기의 캐릭터의 위치 및 환경 파라미터와 상기 오브젝트의 위치 및 환경 파라미터를 변수값으로 가지는 위치 정보 전송 조건 결정 함수를 이용하여 위치 정보를 전송하는 패킷을 발생할 것인지를 결정하는 단계 및 상기 위치 정보 전송 조건 결정 함수에 의해 전송이 필요한 경우 상기 서버에서 상기 유저 단말기에 상기 오브젝트의 위치 정보를 전송하는 단계를 포함한다.

Description

지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템{A MOVING PACKET COMMUNICATION METHOD WITH DEAD RECKONING AND AN OBJECT MOVING SYSTEM USING THE SAME METHOD}
본 발명은 지능형 추측항법을 이용한 이동 패킷 통신 시스템 및 이를 이용하는 오브젝트 이동 시스템에 관한 것이다.
최근 대용량 네트워크를 필요로 하는 게임이 다수 개발되고 있으며, 이러한 게임들은 대부분 대용량 네트워크를 사용하는 PC 기반 플랫폼에서 구현되는 것이 일반적이다.
이와는 달리, 모바일이나 콘솔 플랫폼 또는 일부 인터넷이 열악한 해외에서는 네트워크의 성능이 이를 뒷받침하지 못하기 때문에, 대용량 네트워크를 이용한 게임 구현이 사실상 힘들다.
모바일이나 콘솔 플랫폼은 한정된 하드웨어 자원을 사용하며, 보통 WiFi와 같은 비교적 느린 속도의 무선망 사용이 일반적이기 때문에, 유선망을 기본적으로 사용하는 PC 기반 플랫폼에 비해서 통신 속도가 느리다.
또한, 한국이 인터넷 속도 세계 1위로 평균 26.7Mbps의 속도를 가지고 있어, 탑 순위권안의 다른 나라들보다 1.5배에서 2배정도 빠른 반면, 제3국가의 경우에는 평균속도가 5Mbps의 속도 아래로 상당히 느린 편이며, 네트워크 서비스 품질이 상당히 낮다.
이러한 네트워크 품질이 열악한 플랫폼이나 지역에서는 현재 PC 플랫폼에서 구축된 대규모 다중 사용자 온라인 롤 플레잉 게임(MMORPG; Massive Multiplayer Online Role Playing Game)의 구현이 힘들다. 예를 들어, 대용량 네트워크를 사용하는 MMORPG의 구성요소로는 한국 게임의 특이 요소인 대규모 공성전이 있다. 수백명의 플레이어들이 한자리에 모여있는 형태에서 발생하는 이동 패킷의 양은 전체 통신 패킷의 99% 이상을 차지하고 있으며, 네트워크가 느린 곳에서는 플레이가 상당히 제약되는 요소이다.
이러한 게임을 콘솔이나 모바일 플랫폼 상의 네트워크에서 구현하기 위해서는 기존의 PC 기반 플랫폼에서 사용되는 방법보다 효율적인 이동 패킷의 활용이 필요하다.
대한민국 등록특허 제 10-0350863호
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 다수의 오브젝트들이 개별적으로 이동하는 정보들을 대용량 네트워크를 이용하지 않고 효율적으로 이동 패킷을 사용할 수 있도록 하는 지능형 추측항법을 이용한 이동 패킷 통신 시스템을 제공하는 것이다.
본 발명에 따른 지능형 추측항법을 이용한 이동 패킷 통신 방법은 서버에서 유저 단말기에 임의의 오브젝트의 위치 정보를 전달하는 방법으로 사용되고, 상기 오브젝트의 실제 위치를 상기 서버로 전송 받는 단계, 상기 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하는 단계, 상기 유저 단말기의 캐릭터의 위치 및 환경 파타미터와 상기 오브젝트의 위치 및 환경 파타미터를 변수값으로 가지는 위치 정보 전송 조건 결정 함수를 이용하여 위치 정보를 전송하는 패킷을 발생할 것인지를 결정하는 단계 및 상기 위치 정보 전송 조건 결정 함수에 의해 전송이 필요한 경우 상기 서버에서 상기 유저 단말기에 상기 오브젝트의 위치 정보를 전송하는 단계를 포함한다.
일 실시예에 있어서, 상기 오브젝트의 실제 위치를 전송 받는 단계는, 상기 오브젝트를 구동하는 다른 유저의 단말기로부터 실제 위치를 전송 받는 것을 특징으로 한다.
일 실시예에 있어서, 상기 오브젝트의 실제 위치를 전송 받는 단계는, 상기 오브젝트를 구동하는 프로그램으로부터 위치를 전송 받는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 상기 위치 정보 전송 조건 결정 함수는, 상기 오브젝트의 실제 위치와 상기 추측 위치의 차이값(ΔP)이 기준치 이상이 되는 경우, 전송이 필요한 경우로 판단하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 상기 위치 정보 전송 조건 결정 함수의 기준치는, 상기 유저 단말기의 캐릭터의 위치를 기준으로 상기 오브젝트의 실제 위치 또는 추측 위치 간의 거리가 클수록 더 높아지는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 상기 위치 정보 전송 조건 결정 함수의 기준치는, 상기 유저 단말기의 캐릭터의 시선을 기준으로 상기 오브젝트가 시선상에 없는 경우 더 높아지는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 상기 위치 정보 전송 조건 결정 함수의 기준치는, 상기 오브젝트가 방향을 회전하는 운동을 하는 경우에 더 낮아지는 것을 특징으로 하는 지능형 추측항법을 이용할 수 있다.
일 실시예에 있어서, 상기 위치 정보 전송 조건 결정 함수는, 상기 오브젝트의 실제 이동 방향의 변화값(Δθ)이 기준치 이상이 되는 경우, 전송이 필요한 경우로 판단하는 것을 특징으로 할 수 있다.
본 발명에 따른 오브젝트 이동 시스템은 추측항법을 사용하여 제한된 이동 패킷을 바탕으로 유저 단말기에서 임의의 오브젝트를 이동하는 시스템에 사용되며, 상기 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하여 상기 오브젝트를 상기 유저 단말기 상의 시스템에서 이동하는 단계 및 상기 오브젝트의 실제 위치에 대한 위치 정보가 송신되는 경우, 상기 오브젝트의 위치를 상기 송신된 위치로 수정하는 단계를 포함한다.
일 실시예에 있어서, 상기 오브젝트의 추측 위치를 추측하여 상기 오브젝트를 상기 유저 단말기 상의 시스템에서 이동하는 단계에서, 상기 추측 항법에 사용되는 상기 오브젝트의 변수는 상기 오브젝트의 이동 속도, 이동 방향을 포함하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 상기 추측 항법에 사용되는 상기 오브젝트의 변수는 상기 오브젝트의 회전 각속도, 이동 가속도를 더 포함하는 것을 특징으로 할 수 있다.
 
상기와 같은 본 발명에 따르면, 모든 오브젝트의 실시간 이동 현황을 네트워크를 통해 전송하지 않고, 효율적인 이동 패킷을 전송할 수 있어, 비교적 열악한 네트워크 환경에서도 멀티 유저의 어플리케이션 구현이 가능하다.
도 1a는 본 발명의 일 실시예에 따른 이동 패킷 통신 방법을 나타내는 개념도이다.
도 1b는 도 1a의 실시예에 따른 이동 패킷 통신 방법의 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 이동 패킷 통신 방법을 나타내는 순서도이다.
도 3a은 도 2의 실시예에 따른 이동 패킷 통신 방법을 서버측에서 나타내는 개념도이다.
도 3b는 도 3a의 실시예에 따른 이동 패킷 통신 방법의 흐름도이다.
도 4는 도 2의 실시예에 따른 이동 패킷 통신 방법을 단말측에서 나타내는 개념도이다.
도 5a는 도 2의 실시예에 따른 이동 패킷 통신 방법 중 정보 전송 조건 결정 함수를 설명하는 개념도이다.
도 5b는 도 5a의 실시예에 따른 정보 전송 조건 결정 함수를 설명하는 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른 이동 패킷 통신 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본원 명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
Figure pat00001
본 발명은 본 발명의 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.
게임에 적용 되는 추측항법
도 1a는 본 발명의 일 실시예에 따른 이동 패킷 통신 방법을 나타내는 개념도이다. 도 1b는 도 1a의 실시예에 따른 이동 패킷 통신 방법의 흐름도이다.
도 1a 및 1b를 참조하면, 다수의 유저가 하나의 어플리케이션에 참여하는 MMORPG 게임과 같은 시스템에는 각 플레이어들의 위치를 업데이트 하는 작업이 필요하다.
각각의 사용자의 유저 단말(A, B, C, D)에는 사용자의 실질적인 조작에 의해 어플리케이션 내의 오브젝트를 이동한다. 서버(S)에서는 이러한 실제 이동된 정보가 전송되며, 개별적인 유저 단말 내에서의 오브젝트의 이동 데이터는 서버(S)를 경유하여 다시 각각의 유저 단말(A, B, C, D)로 이동 정보를 전송한다.
예를 들어 기존의 시스템에서는, 단말 A에 있는 어플리케이션 내에서 각각 유저 단말 B, C, D의 오브젝트의 이동 정보를 얻기 위해서, 실시간으로 서버로 전송되는 개별적인 유저 단말 B, C, D의 이동 데이터를 모두 단말 A로 전송하여야 한다.
이렇게 되면 각각의 단말에서는 이동되는 모든 오브젝트의 실시간 데이터를 전송받아야 하기 때문에, 예를 들어, 수백개의 오브젝트가 각각의 유저들의 조작에 의해 바쁘게 움직이는 상황에서는 엄청난 트래픽이 발생할 수 밖에 없으며, 이것은 네트워크의 많은 부담을 가져온다.
본 실시예에 따른 이동 패킷 시스템에서는 각 단말 내에서 외부의 조작에 의해 움직이는 오브젝트들에 대해서는 추측항법을 이용하여 단말 내에서 가상의 이동을 진행함과 동시에, 서버(S)에서 이러한 가상의 이동과 실질적인 이동이 일정한 범위를 넘어서는 조건에 한해 이동 패킷을 전송함으로써, 이동 패킷의 양을 줄일 수 있는 방법을 포함한다.
추측항법(dead reckoning)은 가장 최근에 구한 정확한 위치를 기초로 하여 최근에 이동하였던 속도, 가속도, 각속도 등의 값을 이용하여 현재 또는 미래의 위치를 추론하는 방법이며, 실시간 외부 데이터가 필요한 경우 이를 얻을 수 없는 상황에서 선박의 항로나, 각종 네비게이션 등이 활용하는 방법이다.
게임과 같은 어플리케이션 내에서 추측 항법은 주어진 편차가 정해진 한계치 이상이면 이동 패킷을 발생하는 시스템을 고려할 수 있다. 즉, 현재 전달된 이동 패킷을 가지고 현재 대상의 위치와 방향을 추측하여 표현하고, 서버(S)와 같이 패킷을 보내는 주체에서 추측항법으로 시뮬레이션한 데이터와 실제 데이터와의 차이가 한계치 이상 커지는 경우에 패킷을 보냄으로써 모든 이동 패킷을 실시간으로 전송할 필요가 없어지며, 따라서 불필요한 네트워크 전송을 줄일 수 있다.
도 1b를 다시 참조하면, 유저 단말 A(Client A)에서 조작이 있는 경우 유저 단말 B(Client B)로 위치정보를 전송하는 과정을 볼 수 있다.
유저 단말 A(Client A)에서는 실질적으로 캐릭터를 조작하여 이동하는 이동 이벤트(S10)가 발생된다. 이러한 이동 이벤트도 여전히 아날로그적인 방법으로 내부에서 작동하므로, 실질적으로 실시간에 가까운 패킷을 전송한다고 하더라도, 일부 추측항로 필터(S11)를 적용하여 데이터를 전송한다. 추측항로필터(S11)는 조작 유저 단말 측에서 아날로그적 움직임에 추측항로기법을 적용하여 조건에 부합하는 경우(기준치를 초과하는 경우) 데이터를 서버측으로 발송하는 프로세스를 사용한다.
서버(Server) 측에서는 유저 단말 A(Client A)에서 송신된 데이터를 수집한다(S15). 이후 데이터의 종류에 따라 데이터를 클러스터링(S16)한다. 여기서, 데이터클러스터링의 의미는 사용 빈도가 높는 데이터와 그렇지 않은 데이터를 다른 저장소에 구분함으로써, 데이터의 사용을 효율화 하기 위한 작업이다.
이후 서버(Server) 측에서는 유저 단말 A(Client A)에서의 조작 오브젝트에 대한 이동 데이터가 유저 단말 B(Client B)로 가는 것을 분석하여 데이터를 발송한다(S20, S30, S40). 이 과정에서는 추후 단계에서 상세히 설명한다.
유저 단말 B(Client B) 측에서는 대상 오브젝트에 대한 위치 정보가 포함된 패킷을 수신(S51)하고, 차이가 있는 오브젝트의 위치에 대해 랑데뷰 알고리즘(S52)를 적용하여, 구현상의 오차를 해결하여, 실질적인 오브젝트 A를 이동하게 된다(S53).
추측 항법을 사용하는 이동 패킷 전송 방법
도 2는 본 발명의 일 실시예에 따른 이동 패킷 통신 방법을 나타내는 순서도이다.
도 2를 참조하면, 본 실시예에 따른 이동 패킷 통신 방법은 서버에서 유저 단말기에 임의의 오브젝트의 위치 정보를 전달하는 방법에 있어서, 오브젝트의 실제 위치를 상기 서버로 전송 받는 단계(S10), 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하는 단계(S20), 유저 단말기의 캐릭터의 위치 및 환경 파라미터와 상기 오브젝트의 위치 및 환경 파라미터를 변수값으로 가지는 위치 정보 전송 조건 결정 함수를 이용하여 위치 정보를 전송하는 패킷을 발생할 것인지를 결정하는 단계(S30), 위치 정보 전송 조건 결정 함수에 의해 전송이 필요한 경우 상기 서버에서 상기 유저 단말기에 상기 오브젝트의 위치 정보를 전송하는 단계(S40)를 포함한다.
a. 오브젝트의 실시간 데이터 수집
오브젝트의 실제 위치를 상기 서버로 전송 받는 단계(S10)에서는 서버(S)에서 모든 오브젝트의 실제 위치를 수집한다. 복수개의 개별적인 단말에서 직접 조작하는 각 캐릭터의 오브젝트에 대한 위치 데이터는 실시간으로 서버에 전송한다. 따라서 서버에서는 실시간으로 각 단말 내의 조작하고 있는 오브젝트에 대한 위치 데이터가 수집된다.
b. 각 단말별로 추측항법에 의해 추측 위치를 추측
유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하는 단계(S20)에서는 각각의 개별적인 유저 단말기에서 얻은 정보를 기준으로 추측 위치를 추측한다.
설명한 바와 같이, 서버 내에서는 실시간으로 모든 데이터가 수집된다. 따라서 서버 자체는 개별적인 오브젝트에 대한 추측항법을 적용하는 것이 필요하지 않다. 서버는 각각의 단말에 대해 추측항법을 개별적으로 적용하여, 가장 최근에 보낸 해당 오브젝트에 대한 데이터를 기반으로 개별적인 해당 단말 내에서 오브젝트의 추측 위치를 추측한다. 따라서, 서버측에서는 실질적인 오브젝트의 위치 뿐만 아니라, 각각의 개별적인 단말에서 추측항법으로 예측되어지는 오브젝트의 추측 위치를 계산할 수 있다.
또한, 각각의 추측 위치는 동일한 오브젝트라고 하더라도 각 단말에 따라 최근에 전송된 위치 정보가 다를 수 있으므로, 이것이 다르게 표현될 수 있다. 이것은 각 단말 내에서 오브젝트를 추측하는 추측항법에 적용하는 기초 데이터가 달라질 수 있기 때문이다.
c. 정보 전송 조건 결정 함수로 이동 패킷의 전송 결정
유저 단말기의 캐릭터의 위치 및 환경 파라미터와 상기 오브젝트의 위치 및 환경 파라미터를 변수값으로 가지는 위치 정보 전송 조건 결정 함수를 이용하여 위치 정보를 전송하는 패킷을 발생할 것인지를 결정하는 단계(S30)는 서버측에서 단말 별로 해당 오브젝트에 대한 추측 위치와 실제의 위치를 바탕으로 정보 전송 조건 결정 함수를 적용하여 패킷을 전송해야 하는 지의 여부를 결정한다.
유저 단말기의 캐릭터 의 위치 및 환경 파라미터와 오브젝트의 위치 및 환경 파라미터, 그리고 정보전송 조건 결정 함수는 후에 예를 들어 상세히 설명하겠다.
서버측에서는 되도록 패킷의 전송량을 최소화 하기 위해, 특정 조건에 부합하는 경우에만 해당하는 이동 패킷을 전송하여, 실시간으로 집중되는 패킷의 전송량을 모두 전송할 필요 없이 효율적으로 패킷을 전송한다.
d. 해당 오브젝트에 대한 이동 패킷을 해당 단말에 전송
위치 정보 전송 조건 결정 함수에 의해 전송이 필요한 경우 상기 서버에서 상기 유저 단말기에 상기 오브젝트의 위치 정보를 전송하는 단계(S40)에서는 해당 오브젝트에 대한 이동 패킷을 해당 단말에 전송한다.
추측항법에서 이동 패킷을 줄이는 원리는 해당 단말에서 구동 되리라고 예상되는 추측 위치 정보와 실제 위치값의 편차가 정해진 값 이상인 경우에만 해당 이동 패킷을 발송하여, 패킷의 전송량을 줄이는 것이다.
또한, 이러한 이동 패킷 발송의 빈도를 너무 줄이는 경우 오브젝트의 이동 품질에 영향을 줄일 수 있으므로, 품질에 영향을 줄이지 않고 패킷을 줄이기 위해서는, 정교한 모델을 적용하여 추측 항법을 활용하는 데에 달려 있다.
오브젝트의 이동 모델
오브젝트의 이동 모델은 아래와 같이 서술할 수 있다.
오브젝트의 이동 파라미터를 각각, v는 플레이어의 이동 속도,
Figure pat00002
는 플레이어의 향하는 방향,
Figure pat00003
t는 시간의 경과치, ω는 플레이어의 회전 각속도, a 는 가속도 또는 감속도라고 하면, 이동은 물리적인 저항을 가지고 있으며, 가속과 감속이 존재하는 것으로 모델링 한다. 
Figure pat00004
 
 
Figure pat00005
P는 한 지점에서 Δt라는 시간이 경과했을 때의 위치를 표현할 수 있는 값이고, ΔP는 이러한 위치의 차이를 나타내는 값으로 나타내어 진다.
이렇게 시간의 경과에 따른 오브젝트의 추측 위치를 추측항법을 통하여 추측할 수 있으며, 이 때에 필요한 값들은 위의 모델링을 적용하였을 때에, 속도, 방향, 가속도, 경과시간, 각속도 등이 될 수 있다.
각각의 파라미터는 더 정교한 모델링 또는 효율적인 모델링이 가능한 경우 다양한 모델링을 적용할 수 있다.
서버측에서의 추측항법을 이용한 이동 패킷의 발생
도 3a은 도 2의 실시예에 따른 이동 패킷 통신 방법을 서버측에서 나타내는 개념도이다. 도 3b는 도 3a의 실시예에 따른 이동 패킷 통신 방법의 흐름도이다.
도 3a를 참조하면, 최종 전송된 이동 패킷에 의해 결정되는 오브젝트의 최종 위치(NP)를 기준으로 추측항법을 적용하는 경우, 오브젝트는 제1 추측 위치 (V1), 제2 추측 위치(V2) 및 제3 추측 위치(V3)로 이동하는 것을 계산할 수 있다.
이 동안에, 실제 조작에 의한 오브젝트의 실제 위치는 제1 실제 위치(R1), 제2 실제 위치(R2), 제3 실제 위치(R3)로 실제 조작되는 단말로부터 서버로 전송받는다. 각 시간대별로 제1 추측위치(V1)는 제1 실제 위치(R1)과 대응되고, 제2 추측 위치(V2)는 제2 실제 위치(R2)와 대응되고, 제3 추측 위치(V3)는 제3 실제 위치(R3)와 대응된다. 서버측에서는 각각의 실제 위치과 추측 위치 간의 차이값을 계산한다. 실제 제1 추측위치(V1)와 제1 실제 위치(R1) 간의 차이값은 미미하므로, 서버측에서는 이동 패킷 전송을 진행하지 않는다.
제2 추측위치(V2)와 제2 실제 위치(R2) 간에는 제1 차이값(ΔP1)이 발생되며, 기준 차이값 내에 있으므로, 이때에도 이동 패킷 전송을 진행하지 않는다.  제3 추측위치(V3)와 제3 실제 위치(R3) 간에는 제2 차이값(ΔP2)이 발생되며, 이때에는 기준 차이값을 초과하므로, 해당 단말측에 해당 오브젝트의 실제 위치(R3)에 해당하는 값을 가지는 이동 패킷을 전송한다.
각각의 실제 위치(R1, R2, R3)의 주변에 그려진 점선의 원은 기준 차이값의 한계치를 나타내는 범위이다. 제3 실제 위치(R3)에 해당하는 경우 제3 추측 위치(V1)와의 제2 차이값(ΔP2)은 기준 차이값을 벗어나 있다. 따라서 서버측에서는 해당 단말에 해당 오브젝트의 실제 위치값(R3)을 전송함으로써 해당 단말 상의 오브젝트의 이동이 더 이상 추측항법에 의해 진행되지 않고, 실제 이동된 위치로 갱신하도록 명령한다.
이러한 이동 패킷 전송의 기준이 되는 기준 차이값은 정보 전송 조건 결정 함수를 통해 결정된다. 정보 전송 조건 결정 함수는 유저 단말기의 캐릭터의 위치 및 환경 파라미터와 오브젝트의 위치 및 환경 파라미터를 변수값으로 가지며, 예를 들어 유저 단말기의 캐릭터의 위치와 오브젝트의 위치가 멀수록 이러한 기준 차이값은 더 크게 설정될 수 있다.
유저 단말기의 캐릭터와 오브젝트의 위치 차이가 큰 경우에는 원근법을 고려한 화면 표현에 따라 유저 단말기 상에는 해당 오브젝트의 위치 이동이 실제 이동에 비해 아주 작은 값들로 표현되므로, 이동 패킷의 전송 빈도를 매우 적게 하여도 해당 오브젝트의 이동 표현상의 품질은 별로 훼손되지 않는다.
반대로, 유저 단말기의 캐릭터와 오브젝트의 위치 차이가 작은 경우에는 해당 캐릭터를 기준으로 오브젝트가 가까이 위치하고 있으므로, 오브젝트는 화면상에도 크게 표현되고, 보다 정밀하게 표현되어야 한다. 따라서 기준 차이값을 작게 가져감으로써, 오브젝트의 이동하는 표현을 상대적으로 더 정밀하게 할 필요가 있다.
도 3b를 다시 참조하면, 도 3b에 나타나는 흐름도는 이러한 이동 패킷의 전송을 서버측에서 구현한 프로세스를 나타내는 흐름도이다. 이 과정에서는 데이터 패킷 핸들러 쓰레드와 스폰데이터 업데이트 쓰레드가 병렬적으로 작용한다.
데이터 패킷 핸들러 측에서는 추측항법을 계산하고, 이를 계속적으로 서버에 저장한 후, 추측항법과 실질적으로 전달되는 데이터들을 비교한다. 이후 이러한 데이터들을 앞서 도 1b의 경우와 마찬가지로, 데이터를 분류하여 클러스터링 한다.
스폰데이터 업데이트 측에서는 보낼 오브젝트의 정보를 분석한다. 이때에는 오브젝트의 다양한 변수들인 캐릭터와의 위치에 따른 거리, 캐릭터의 시야에 확보되었는지의 여부, 회전운동이 있는지의 여부 등에 따라 결정된다. 이동 패킷을 전송하여야 한다고 위치 정보 전송 조건 결정 함수에 의해 결정된 경우에는 해당 관련 데이터를 데이터 클러스터링에서 취사선택한다. 이후 전송할 데이터를 패킹하고 전송하게 된다.
단말 측에서의 추측항법을 이용한 오브젝트의 이동
도 4는 도 2의 실시예에 따른 이동 패킷 통신 방법을 단말측에서 표현하는 개념도이다.
도 4를 참조하면, 단말기 상에서는 최종 전송된 이동 패킷에 의해 결정되는 오브젝트의 최종 위치(NP)를 기준으로 추측항법을 적용하여 해당 오브젝트를 이동시킨다. 제1 추측 위치(V1) 및 제2 추측 위치(V2)의 시간까지는 서버측으로부터 해당 오브젝트의 이동 패킷이 전송되지 않으므로, 단말 내에서 추측되는 경로로 해당 오브젝트를 이동시킨다.
이때에 해당 오브젝트의 실제 이동 위치인 제1 실제 위치(R1) 및 제2 실제 위치(R2)와 다소 차이가 발생하지만, 계산된 기준치 내의 오차 안에 있으므로, 추측 위치로 이동하여도 실질적인 오브젝트의 이동 품질에는 큰 영향을 주지 않는다.
하지만 제3 실제 위치(R3)로 이동하는 시간대에는 앞의 도 3의 경우에서와 같이 제2 차이값이 기준 차이값을 초과하였으므로, 서버측으로부터 해당 오브젝트의 이동 패킷이 단말로 전송되게 되며, 이때에 해당 오브젝트의 이동 패킷을 전송받은 단말에서는 해당 오브젝트를 제3 실제 위치(R3)로 이동시켜, 실질적인 오브젝트의 위치를 반영한다.
이때에 해당 오브젝트에 대해서는 새롭게 전송된 이동 패킷에 의해 실제 위치가 업데이트 되었으므로, 제3 실제 위치(R3)을 기준으로 오브젝트의 최종위치(NP)와 마찬가지로 새롭게 추측항법을 이용한 이동을 시작한다. 이 추측항법에 의한 이동은 서버측으로부터 해당 오브젝트의 새로운 이동 패킷이 전송되는 시점까지 계속될 수 있다.
정보 전송 조건 결정 함수의 기준 차이값 결정
도 5a는 도 2의 실시예에 따른 이동 패킷 통신 방법 중 정보 전송 조건 결정 함수를 설명하는 개념도이다. 도 5b는 도 5a의 실시예에 따른 정보 전송 조건 결정 함수를 설명하는 흐름도이다.
도 5a를 참조하면, 정보 전송 조건 결정 함수는 추측 위치와 실제 위치간의 차이를 계산하고, 이 차이값이 기준 차이값 이상인 경우 이동 패킷을 전송하는데, 이 때에 적용되는 기준 차이값을 위의 함수에 의해 결정한다.
기준 차이값에 영향을 줄 수 있는 파라미터는 예를 들어 아래와 같다.
a. 유저 단말의 캐릭터를 기준으로 해당 오브젝트와의 거리 차이
b. 유저 단말의 캐릭터의 시선 방향(D)을 기준으로 해당 오브젝트가 시선 내에 있는지 시선 뒤에 있는지의 여부
c. 해당 오브젝트가 방향의 변화(회전 운동)을 하는지의 여부
d. 유저 단말에서 해당 오브젝트가 타겟으로 설정되어 있는지의 여부
첫번째로, 위치 정보 전송 조건 결정 함수의 기준치는, 유저 단말기의 캐릭터의 위치를 기준으로 상기 오브젝트의 실제 위치 또는 추측 위치 간의 거리가 클수록 더 높아질 수 있다.
앞서 설명한 바와 같이, 유저 단말기 상에 표현되는 해당 오브젝트는 거리가 멀수록 작게 표현되고, 실질적인 위치에 차이가 있더라도 이것이 미미한 값으로 화면상에 나타나게 된다. 또한, 필요에 따라서는 거리의 차이의 제곱에 비례하여 기준치를 증가시킬 수 있다.
도 5a를 기준으로 하는 경우, 제1 오브젝트(O1)의 거리(P1)는 제2 오브젝트(O2)의 거리(P2)보다 가까이 위치하고 있으므로, 제1 오브젝트(O1)의 기준치는 제2 오브젝트(O2)의 기준치 보다 더 적게 설정되어, 제1 오브젝트(O1)의 기준치는 더 작게 설정되고, 제1 오브젝트(O1)의 이동은 더 민감하게 반영된다.
두번째로, 위치 정보 전송 조건 결정 함수의 기준치는, 유저 단말기의 캐릭터의 시선을 기준으로 상기 오브젝트가 시선상에 없는 경우 더 높아질 수 있다.
단말의 화면은 해당 캐릭터의 시선을 기준으로 표현되므로, 시선 상에 위치하는 오브젝트들은 민감하게 이동을 표현하여야 하나, 시선 뒤에 있는 오브젝트들은 상대적으로 덜 만감한 감도로 이동시킬 수 있는 여력이 있다.
도 5a를 기준으로 하는 경우 메인캐릭터(MC)의 시선 방향(D)을 기준으로 하였을 때에, 표현되는 기준선(HL)을 기준으로 뒤쪽에 위치하는 제3 오브젝트(O3)는 제1 오브젝트(O1)와 같은 거리에 있다고 하더라도 기준치를 더 크게 설정하여, 덜 민감한 정도로 이동시킬 수 있다.
세번째로, 해당 오브젝트가 방향의 변화(회전 운동)을 하는 경우이다.  위치 정보 전송 조건 결정 함수의 기준치는, 오브젝트가 방향을 회전하는 운동을 하는 경우에 더 낮아질 수 있다.
일반적으로 오브젝트의 이동 방향이 변화하는 경우에는 직선 운동하는 경우 보다 메인캐릭터(MC)에서 감지하는 이동의 차이가 더 커질 수 있으므로, 방향이 변화하는 경우 더 민감하게 이를 반영할 필요가 있다.
따라서 기준치를 더 낮게 설정하여, 방향이 변화하는 경우나 오브젝트가 회전하는 경우에는 더 잦은 패킷을 발생할 수 있도록 기준치를 낮게 설정하고, 민감하게 오브젝트의 이동을 반영한다.
이에 더하여, 해당 오브젝트가 회전운동을 하는 경우 회전운동의 기준을 설정하여 부가적인 기준치로 설정할 수 있다. 도 6은 본 발명의 다른 실시예에 따른 이동 패킷 통신 방법을 나타내는 순서도이다.
도 6을 참조하면, 해당 오브젝트가 부채꼴로 설정된 기준 방향범위 이상의 각도로 회전하여 운동하는 경우에는 이를 즉각적으로 반영하여, 서버측에서 이동 패킷을 전송하도록 설정할 수 있다.
도 6에서는 제1 실제 위치(R1)에서 제2 실제 위치(R2)의 이동 방향 변화(Δθ1)는 설정된 부채꼴의 범위, 즉 설정된 기준 내에서의 변화이므로, 서버측에서 이동 패킷을 전송하지 않지만, 제2 실제 위치에서 제3 실제 위치(R3)의 이동 방향 변화(Δθ2)는 설정된 부채꼴의 범위를 벗어났으므로, 이때에는 서버측에서 즉각적으로 이동 패킷을 전송하도록 설정할 수 있다.
마지막으로, 해당 오브젝트가 타겟으로 설정된 경우에는 해당 오브젝트의 이동을 민감하게 설정할 수 있다. 타겟 지정된 것들에 대해서는 실제 거리 관련된 액션들에 대해서 민감성이 강하게 요구되기 때문에 한계치를 줄여서 보다 정확한 값을 유지할 필요가 있다. 따라서 이 경우에는 위치 정보 전송 조건 결정 함수의 기준치를 낮게 설정하여 해당 오브젝트의 이동을 민감하게 반영한다.
도 5b를 다시 참조하면, 스폰 업데이트 프로세스에서는 해당 캐릭터의 뷰에 해당하는 오브젝트들에 대한 리스트를 조회한다. 이때에, 타겟이 설정되었는지의 여부(Target), 뷰의 전방 앵글에 포함되었는지의 여부(In View Angle), 거리의 정도(Distance), 같은 파티로 설정되었는지의 여부(Party), 회전운동이 있는지의 여부(rotation)를 고려하여 기준 한계값을 결정한다. 이를 바탕으로 데이터 클러스터에서 데이터를 선택하여, 해당 단말측으로 위치 패킷을 전송하게 되는 것이다.
이상에서 본 발명에 따른 실시 예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.

Claims (12)

  1. 서버에서 유저 단말기에 임의의 오브젝트의 위치 정보를 전달하는 방법에 있어서,
    상기 오브젝트의 실제 위치를 상기 서버로 전송 받는 단계;
    상기 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하는 단계;
    상기 유저 단말기의 캐릭터의 위치 및 환경 파라미터와 상기 오브젝트의 위치 및 환경 파라미터를 변수값으로 가지는 위치 정보 전송 조건 결정 함수를 이용하여 위치 정보를 전송하는 패킷을 발생할 것인지를 결정하는 단계; 및
    상기 위치 정보 전송 조건 결정 함수에 의해 전송이 필요한 경우 상기 서버에서 상기 유저 단말기에 상기 오브젝트의 위치 정보를 전송하는 단계;
    포함하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  2. 제1항에 있어서,
    상기 오브젝트의 실제 위치를 전송 받는 단계는,
    상기 오브젝트를 구동하는 다른 유저의 단말기로부터 실제 위치를 전송 받는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  3. 제1항에 있어서,
    상기 오브젝트의 실제 위치를 전송 받는 단계는,
    상기 오브젝트를 구동하는 프로그램으로부터 위치를 전송 받는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  4. 제1항에 있어서,
    상기 위치 정보 전송 조건 결정 함수는,
    상기 오브젝트의 실제 위치와 상기 추측 위치의 차이값(P)이 기준치 이상이 되는 경우,
    전송이 필요한 경우로 판단하는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  5. 제4항에 있어서,
    상기 위치 정보 전송 조건 결정 함수의 기준치는,
    상기 유저 단말기의 캐릭터의 위치를 기준으로 상기 오브젝트의 실제 위치 또는 추측 위치 간의 거리가 클수록 더 높아지는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  6. 제4항에 있어서,
    상기 위치 정보 전송 조건 결정 함수의 기준치는,
    상기 유저 단말기의 캐릭터의 시선을 기준으로 상기 오브젝트가 시선상에 없는 경우 더 높아지는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  7. 제4항에 있어서,
    상기 위치 정보 전송 조건 결정 함수의 기준치는,
    상기 오브젝트가 타겟으로 설정된 경우 더 낮아지는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  8. 제4항에 있어서,
    상기 위치 정보 전송 조건 결정 함수의 기준치는,
    상기 오브젝트가 방향을 회전하는 운동을 하는 경우에 더 낮아지는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  9. 제4항에 있어서,
    상기 위치 정보 전송 조건 결정 함수는,
    상기 오브젝트의 실제 이동 방향의 변화값(θ)이 기준치 이상이 되는 경우,
    전송이 필요한 경우로 판단하는 것을 특징으로 하는 지능형 추측항법을 이용한 이동 패킷 통신 방법.
  10. 추측항법을 사용하여 제한된 이동 패킷을 바탕으로 유저 단말기에서 임의의 오브젝트를 이동하는 시스템에 있어서,
    상기 유저 단말기에 가장 최근 전달된 상기 오브젝트의 위치 정보를 기반으로, 추측항법에 의해 상기 유저 단말기 상의 상기 오브젝트의 추측 위치를 추측하여 상기 오브젝트를 상기 유저 단말기 상의 시스템에서 이동하는 단계;
    상기 오브젝트의 실제 위치에 대한 위치 정보가 송신되는 경우, 상기 오브젝트의 위치를 상기 송신된 위치로 수정하는 단계;를 포함하는 지능형 추측항법을 이용한 오브젝트 이동 시스템.
  11. 제10항에 있어서,
    상기 오브젝트의 추측 위치를 추측하여 상기 오브젝트를 상기 유저 단말기 상의 시스템에서 이동하는 단계에서,
    상기 추측 항법에 사용되는 상기 오브젝트의 변수는 상기 오브젝트의 이동 속도, 이동 방향을 포함하는 것을 특징으로 하는 지능형 추측항법을 이용한 오브젝트 이동 시스템.
  12. 제11항에 있어서,
    상기 추측 항법에 사용되는 상기 오브젝트의 변수는 상기 오브젝트의 회전 각속도, 이동 가속도를 더 포함하는 것을 특징으로 하는 지능형 추측항법을 이용한 오브젝트 이동 시스템.
KR1020180132273A 2018-10-31 2018-10-31 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템 KR20200049252A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180132273A KR20200049252A (ko) 2018-10-31 2018-10-31 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180132273A KR20200049252A (ko) 2018-10-31 2018-10-31 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템

Publications (1)

Publication Number Publication Date
KR20200049252A true KR20200049252A (ko) 2020-05-08

Family

ID=70677082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180132273A KR20200049252A (ko) 2018-10-31 2018-10-31 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템

Country Status (1)

Country Link
KR (1) KR20200049252A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100350863B1 (ko) 2001-01-11 2002-09-05 (주)웹 젠 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100350863B1 (ko) 2001-01-11 2002-09-05 (주)웹 젠 온라인 게임에서의 캐릭터 이동 데이터 패킷 송수신 방법

Similar Documents

Publication Publication Date Title
US11504620B2 (en) Method for controlling game character and electronic device and computer storage medium
CN107835148B (zh) 游戏角色控制方法、装置、系统及游戏客户端
KR102276899B1 (ko) 낮은 레이턴시 데이터그램-응답성 컴퓨터 네트워크 프로토콜
US10369446B2 (en) Baseball pitch simulation and swing analysis using virtual reality device and system
WO2018130135A1 (zh) 一种控制模拟对象寻路的方法、装置及服务器
CN108415424B (zh) 智能机器人控制方法和装置、系统及存储介质
KR20110069824A (ko) 실제 환경에서 이벤트들을 시뮬레이팅하는 시스템 및 방법
WO2015176669A1 (en) Method and system of moving character in online game
US10406438B2 (en) Controlling behavior of entities in funnel sections of a computer-represented environment
US11829870B2 (en) Deep reinforcement learning based models for hard-exploration problems
US20230398450A1 (en) Virtual object control method and apparatus, storage medium, and electronic device
CN113194488A (zh) 一种无人机轨迹和智能反射面相移联合优化方法及系统
WO2023019976A1 (zh) 虚拟对象的控制方法、电子设备及可读介质
WO2018103656A1 (zh) 一种vr场景下的道具运动处理方法、装置及存储介质
KR20220130781A (ko) 가상 객체를 제어하기 위한 방법 및 장치, 단말, 저장 매체, 및 프로그램 제품
CN109990783A (zh) 一种机器人运动路径规划方法、机器人及存储介质
CN110772784B (zh) 载具控制方法和装置、存储介质及电子装置
KR20200049252A (ko) 지능형 추측항법을 이용한 이동 패킷 통신 방법 및 이를 이용하는 오브젝트 이동 시스템
CN106507479A (zh) 一种基站网络、定位系统及建立拓扑结构的方法
CN111265884B (zh) 虚拟对象的作弊检测方法、装置、设备及介质
CN108983954B (zh) 基于虚拟现实的数据处理方法、装置以及系统
CN107092492B (zh) 虚拟对象的控制方法和装置
US12029975B2 (en) Action execution method and apparatus, storage medium, and electronic device
US20230191247A1 (en) Action execution method and apparatus, storage medium, and electronic device
CN113031759B (zh) 定位方法、装置及头戴式显示设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right