KR101640922B1 - 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템 - Google Patents

랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템 Download PDF

Info

Publication number
KR101640922B1
KR101640922B1 KR1020140159030A KR20140159030A KR101640922B1 KR 101640922 B1 KR101640922 B1 KR 101640922B1 KR 1020140159030 A KR1020140159030 A KR 1020140159030A KR 20140159030 A KR20140159030 A KR 20140159030A KR 101640922 B1 KR101640922 B1 KR 101640922B1
Authority
KR
South Korea
Prior art keywords
ranking
data
player
sampling
score
Prior art date
Application number
KR1020140159030A
Other languages
English (en)
Other versions
KR20160058340A (ko
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 KR1020140159030A priority Critical patent/KR101640922B1/ko
Publication of KR20160058340A publication Critical patent/KR20160058340A/ko
Application granted granted Critical
Publication of KR101640922B1 publication Critical patent/KR101640922B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 양상에 따라서 게임을 수행하는 플레이어들에게 효율적인 랭킹제공을 위한 랭킹 산출 방법을 개시한다. 상기 랭킹 산출 방법은, 플레이어의 점수 데이터에 기초하여, 상기 플레이어가 순위권에 포함되었는지 여부를 판단하는 단계; 상기 플레이어가 순위권에 포함된 경우, 미리 생성된 순위권 랭킹 데이터를 업데이트하고, 순위권 랭킹 데이터를 제공하는 단계; 및 상기 플레이어가 순위권에 포함되지 않은 경우, 상기 플레이어의 근사 랭킹을 산출하고, 상기 산출된 근사 랭킹 데이터를 제공하는 단계를 포함할 수 있다.

Description

랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템{RANKING COMPUTATION METHOD, COMPUTER-READABLE MEDIUM AND SYSTEM}
본 발명은 랭킹 산출 방법으로서, 보다 구체적으로는, 순위권과 비순위권 플레이어를 구분하고 순위권 플레이어에게는 순위권 랭킹을, 비순위권 플레이어에게는 근사 랭킹을 제공하기 위한 발명이다.
게임 수행시 게임을 수행하는 플레이어가 자신의 랭킹 정보를 제공받는 것은 게임 플레이어로 하여금 엔터테인먼트 요소를 증대할 수 있다. 일반적으로 온라인 게임 랭킹 제공 방법으로는, 모든 플레이어의 점수 데이터에 기초하여 랭킹을 산출하는 방법이 사용된다. 따라서 이러한 랭킹 산출 시스템은 랭킹을 제공하기 위해 모든 사용자의 점수 데이터를 저장 및/또는 로드한다. 따라서 이러한 기존의 랭킹 산출 시스템은 과도한 메모리 사용으로 랭킹 제공의 실시간성이 떨어지고, 랭킹 서버를 유지하는 비용 소모가 크다.
이에따라, 제한된 리소스만으로 서비스 가능한 랭킹 산출에 대한 요구가 업계에 존재한다.
이와 관련한 등록특허 제 10-0837295호가 존재한다.
본 발명은 전술한 내용을 감안하여 안출된 것으로, 랭킹을 제공하는 시스템 관리자의 개발 부담을 감소시키기 위함이다.
본 발명은 게임을 수행하는 플레이어에게 엔터테인먼트 요소를 증대시키기 위함이다.
전술한 바와 같은 과제를 실현하기 위하여 본 발명의 일 실시 예에 따라, 랭킹 산출 방법이 개시된다. 상기 랭킹 산출 방법은, 플레이어의 점수 데이터에 기초하여, 상기 플레이어가 순위권에 포함되었는지 여부를 판단하는 단계; 상기 플레이어가 순위권에 포함된 경우, 미리 생성된 순위권 랭킹 데이터를 업데이트하고, 순위권 랭킹 데이터를 제공하는 단계; 및 상기 플레이어가 순위권에 포함되지 않은 경우, 상기 플레이어의 근사 랭킹을 산출하고, 상기 산출된 근사 랭킹 데이터를 제공하는 단계;를 포함할 수 있다.
더불어, 본 발명의 일 실시예에 따라 플레이어 디바이스와 네트워크로 연결되어 동작하는 랭킹 산출 서버가 개시된다. 상기 랭킹 산출 서버는, 플레이어 랭킹 정보에 기초하여 상기 플레이어가 순위권에 포함되었는지 여부를 판단하는 제어부; 순위권 랭킹 데이터 및 근사 랭킹 데이터를 생성하는 랭킹 산출부; 상기 생성된 랭킹 데이터를 송신하는 송신부; 및 상기 플레이어의 랭킹 데이터 및 샘플링 데이터를 기록하여 저장하는 데이터베이스부를 포함할 수 있다.
본 발명은 전술한 내용을 감안하여 안출된 것으로, 랭킹을 제공하는 시스템 관리자의 개발 부담을 감소시킬 수 있다.
본 발명은 게임을 수행하는 플레이어에게 엔터테인먼트 요소를 증대시킬 수 있다.
상기 언급된 본 개시내용의 특징들이 상세하게, 보다 구체화된 설명으로, 이하의 실시예들을 참조하여 이해될 수 있도록, 실시예들 중 일부는 첨부되는 도면에서 도시된다. 또한, 도면과의 유사한 참조번호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭하는 것으로 의도된다. 그러나, 첨부된 도면들은 단지 본 개시내용의 특정한 전형적인 실시예들만을 도시하는 것일 뿐, 본 발명의 범위를 한정하는 것으로 고려되지는 않으며, 동일한 효과를 갖는 다른 실시예들이 충분히 인식될 수 있다는 점을 유의하도록 한다.
도 1은 본 발명의 일 실시예에 따라 본 발명의 다양한 양태 및 랭킹 산출을 위한 랭킹 서버가 구현될 수 있는 예시적 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따라 랭킹을 제공하는 예시적 방법의 플로우챠트를 도시한다.
도 3은 본 발명의 일 실시예에 따른 근사 랭킹 산출을 위한 예시적 방법의 플로우차트이다.
도 4a는 본 발명의 일 실시예에 따라 랭킹을 제공하기 위해 비순위권 랭킹 데이터에서 추출된 샘플링 데이터 및 간략화된 근사 랭킹 산출 과정을 도시한다.
도 4b는 본 발명의 일 실시예에 따라 랭킹을 제공하기 위해 분류된 버퍼 랭킹 데이터를 포함하는 순위권 랭킹 데이터 및 비순위권 랭킹 데이터를 도시한다.
도 5는 본 발명의 일 실시예에 따라 플레이어에게 랭킹 추이를 제공하기 위해 미리 결정된 기간별로 저장된 순위권 랭킹 데이터 및 샘플링 데이터를 도시한다.
다양한 실시예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나 이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.
또한, 다양한 양상들 및 특징들이 다수의 디바이스들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있는 시스템에 의하여 제시될 것이다. 다양한 시스템들이, 추가적인 장치들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있다는 점 그리고/또는 도면들과 관련하여 논의된 장치들, 컴포넌트들, 모듈들 등 전부를 포함하지 않을 수도 있다는 점 또한 이해되고 인식되어야 한다.
본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다. 아래에서 사용되는 용어들 '컴포넌트', '모듈', '시스템', '인터페이스' 등은 일반적으로 컴퓨터 관련 엔티티(computer-related entity)를 의미하며, 예를 들어, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어를 의미할 수 있다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
더불어, 본 명세서에서 사용되는 용어 "클라이언트", "유저" 및 "사용자"는 종종 상호교환가능하게 사용될 수 있다. 더불어, 본 명세서에서 사용되는 용어 "컴포넌트" 및 "엘리먼트" 또한 종종 상호교환가능하게 사용될 수 있다.
본 명세서에서 사용되는 용어 "정보" 및 "데이터"는 종종 서로 상호교환가능하도록 사용될 수 있다.
온라인 게임 수행시 플레이어가 자신의 게임 점수와 그에 해당하는 랭킹을 아는 것은 매우 흥미로운 일이다.
본 명세서에서 사용되는 용어 '게임'은 온라인 게임일 수 있으며, 상기 온라인 게임은 클라이언트 기반으로 플레이하는 클라이언트 게임과, 웹브라우저를 기반으로 하는 웹 게임 및/또는 모바일 기기를 기반으로 하는 모바일 게임일 수 있다. 또한, 상기 게임은 아케이드 게임, 롤플레잉 게임, 어드벤처 게임, 시뮬레이션 게임, 퍼즐 게임 및/또는 스포츠 게임 등과 같은 다양한 양태의 게임들을 포함할 수 있다.
본 발명의 일 양상에 따라서, 아케이드 게임은 짧은 시간 내에 플레이어가 게임에 몰입할 수 있도록 하는 단순한 게임일 수 있다. 또한, 아케이드 게임은 액션게임 및/또는 슈팅 게임으로 분류될 수 있다.
본 발명의 일 양상에 따라서, 롤플레잉 게임은 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG; Massively Multiplayer Online Role-Playing Game) 및/또는 다중 사용자 온라인 롤플레잉 게임(MORPG; Multiplayer Online Role-Playing Game)일 수 있다. 또한, 본 발명의 일 양상에 따른 게임은 퍼즐 게임, 카드 게임, 레이싱 게임, 리듬 액션 게임, 런닝 액션 게임을 포함할 수도 있다.
상기에서 언급된 게임의 분류는 상기 정의된 게임의 분류에 한정되지 않으며, 상기 게임은 상기 게임 분류의 형식이 융합된 새로운 게임의 형식일 수 있다.
본 발명의 일 실시예에 따라 게임을 수행하는 플레이어가 순위권에 포함되는지 여부를 판단함으로써 플레이어에게 랭킹을 산출하는 방법을 달리할 수 있다. 예컨대, 순위권 플레이어에게는 정확하게 산출된 랭킹이 제공될 수 있다. 비순위권 플레이어에게는 근사 랭킹이 제공될 수 있다. 이로써 제한된 리소스만으로 랭킹 산출이 가능할 수 있다.
도 1은 본 발명의 일 실시예에 따라 본 발명의 다양한 양태 및 랭킹 산출을 위한 랭킹 서버가 구현될 수 있는 예시적 블록 구성도이다.
도시된 바와 같이, 플레이어 디바이스(100)와 랭킹 서버(110)는 네트워크(120)에 연결되어 작동된다.
플레이어 디바이스(100)는, 플레이어의 휴대폰, 태블릿, PC, PDA, 휴대용 멀티미디어 기기 등 네트워크(120)에 연결되어 작동할 수 있는 디바이스 중 하나로, 플레이어의 점수 데이터를 포함한 플레이어 데이터를 전송할 수 있다. 추가적으로, 상기 플레이어 디바이스(100)는 플레이어 랭킹 제공 요청을 포함한 플레이어 요청 정보를 전송할 수 있다. 본 명세서에서 "플레이어 요청 정보", "플레이어 요청" 및 "요청"은 종종 상호교환가능할 수 있다.
플레이어 데이터는 적어도 플레이어의 점수 데이터를 포함한다. 추가적으로, 플레이어 요청은 적어도 플레이어 랭킹 제공 요청을 포함한다. 나아가, 플레이어 요청은, 플레이어 랭킹 추이 제공 요청을 포함할 수 있다.
또한, 플레이어 디바이스(100)는 랭킹 서버(110)로부터 랭킹 정보를 수신할 수 있다. 또는, 랭킹 추이 정보를 수신할 수 있다.
네트워크(120)는, 유선 인터넷, 무선 인터넷 또는 유선 인터넷과 무선 인터넷의 복합 형태 중 적어도 하나의 형태일 수 있다.
추가적으로, 네트워크(120)로 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다.
유선 인터넷 기술로는 XDSL(Digital Subscriber Line), FTTH(Fibers to the home), PLC(Power Line Communication) 등이 이용될 수 있다.
추가적으로, 근거리 통신 모듈인 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 플레이어 디바이스(100)와 랭킹 서버(110)와의 통신 또는 플레이어 디바이스(100)들간의 통신 등에 이용될 수 있다.
상기 랭킹 서버(110)는, 상기 플레이어 디바이스(100)로부터 플레이어 데이터 및/또는 플레이어 요청을 전송받아 동작할 수 있다.
상기 랭킹 서버(110)는, 수신부(101), 제어부(103), 랭킹 산출부(105), 데이터 베이스부(107), 송신부(109)로 구성될 수 있다.
전술한 수신부(101), 제어부(103), 랭킹 산출부(103), 데이터 베이스부(107) 및 송신부(109)는 본 발명의 일 실시예에 따른 예시적 구성 요소일 뿐이며, 각 요소는 삭제 및 통합, 변경될 수 있다.
본 발명의 일 실시예에 따른 상기 수신부(101)는, 하나 이상의 플레이어 디바이스 및/또는 외부 서버로부터 플레이어 점수 데이터를 포함한 플레이어 데이터를 수신할 수 있다. 상기 플레이어 데이터는 플레이어가 게임 수행 후에 얻는 점수 데이터를 포함한 정보로, 게임 종료시 즉각적으로, 또는 미리 결정된 기간 이후에 랭킹 서버(110)로 전송될 수 있다. 나아가, 플레이어 데이터는 외부 서버로 전송되어, 외부 서버에서 랭킹 서버(110)로 전송될 수도 있다.
본 발명의 일 실시예에 따라 수신부(101)는, 하나 이상의 플레이어 디바이스 및/또는 외부 서버로부터 플레이어 랭킹 제공 요청을 포함한 플레이어 요청을 수신할 수 있다. 상기 플레이어 요청은 랭킹 추이 제공 요청을 더 포함할 수도 있다.
본 발명의 일 실시예에 따라 상기 수신부(101)에 의해 수신된 상기 플레이어 데이터 및/또는 플레이어 요청은 상기 제어부(103)로 전달될 수 있다. 전술한 플레이어 데이터 및/또는 플레이어 요청은 랭킹 서버(110)의 수신부(101)가 수신할 수 있는 정보의 일례일 뿐이며 다양한 정보들이 수신될 수 있다. 나아가, 수신부(101)에 의해 수신된 정보는 다른 컴포넌트들로 전달될 수 있다.
본 발명의 일 실시예에 따른 상기 제어부(103)는, 상기 플레이어 데이터 및/또는 요청에 부분적으로 기초하여 상기 랭킹 산출부(105) 및/또는 상기 데이터 베이스부(107)를 제어할 수 있다.
본 발명의 일 실시예에 따라, 상기 제어부(103)는 수신부(101)에 수신된 데이터 및/또는 랭킹 제공 요청이 없더라도, 미리 결정한 기간별로 상기 데이터 베이스부(107)를 주기적으로 업데이트할 수 있다. 이로써 순위권 랭킹 데이터 및 샘플링 데이터가 미리 생성되어 업데이트 될 수 있다.
본 발명의 일 실시예에 따라서, 랭킹 데이터는 적어도 플레이어 데이터 및 점수 데이터를 포함한다. 예를 들어, 순위권 랭킹 데이터란 순위권에 속하는 플레이어의 플레이어 데이터 및 상기 플레이어의 점수 데이터를 총칭하는 용어이다. 예를 들어, 비순위권 랭킹 데이터란 비순위권에 속하는 플레이어의 플레이어 데이터 및 상기 플레이어의 점수 데이터를 총칭하는 용어이다.
플레이어 데이터는, 플레이어 식별 정보, 서버 정보, 나이, 성별, 지역 및/또는 플레이어를 식별할 수 있는 임의의 정보를 포함할 수 있다.
점수 데이터는, 랭킹을 결정하는 요인(예컨대 점수, 승률, 승수, 패수, 게임 수행 기간, 게임 수행 횟수, 가산점, 부정 행위 정보 등)에 부분적으로 기초하여 생성된 랭킹 결정 기준이 되는 정보를 의미할 수 있다.
본 발명의 추가적인 실시예에 따라 점수 데이터는 상기 랭킹을 결정하는 요인 및 미리 결정된 로직을 통해 산출될 수 있다. 또는, 랭킹을 결정하는 요인 그 자체가 점수 데이터가 될 수 있다. 예컨대, '점수' 그 자체가 점수 데이터가 될 수 있다. 또는 '승률' 그 자체가 점수 데이터가 될 수 있다.
본 발명의 일 양상에 따라서, '순위권'이란 미리 결정된 순위 안에 들어가는 범위를 뜻한다. 예를 들어, 상위 10위, 상위 100위, 상위 1000위 등이 순위권으로 결정될 수 있다. 나아가 순위권의 수는 전체 플레이어 수에 따라서 달라질 수 있다. 추가적으로, 랭킹서버(110)에 미리 결정된 임의의 비율(n%)에 따라 자동적으로 순위권의 수가 달라질 수 있다. 또는, 순위권은 랭킹서버(110)를 관리하는 회사 및/또는 게임 업체로부터 지정될 수 있다. 나아가, '순위권'이 아닌 경우 '비순위권'이라고 통칭한다.
추가적으로, 상기 플레이어의 점수 데이터가 순위권 랭킹 데이터에 포함되어 있으면, 상기 플레이어를 '순위권 플레이어'로 정의할 수 있다. 추가적으로, 상기 플레이어의 점수 데이터가 순위권 랭킹 데이터에 포함되어 있지 않으면, 상기 플레이어를 '비순위권 플레이어'로 정의할 수 있다.
본 발명의 일 실시예에 따라, 상기 랭킹 산출부(105)는 상기 제어부(103)에 의해 제어되며, 상기 데이터 베이스부(107)에 저장된 랭킹 데이터에 기초하여 플레이어의 랭킹 산출 및/또는 랭킹 추이 도출을 할 수 있다.
본 발명의 일 양상에서 랭킹 산출은, 플레이어가 순위권에 포함되는지 여부를 판단함으로써 플레이어에게 랭킹을 산출하는 방법을 달리할 수 있다. 예컨대, 순위권 플레이어에게는 정확하게 산출된 순위권 랭킹이 제공될 수 있다. 비순위권 플레이어에게는 근사 랭킹이 제공될 수 있다. 이와 관련하여 후술하도록 한다.
본 발명의 추가적인 양상에 따른 플레이어의 순위권 포함 여부를 판단하는 일례의 방법으로, 플레이어의 점수 데이터가 순위권 랭킹 데이터에 포함되어 있는지 확인하는 방법이 수행될 수 있다. 이를 위해 플레이어의 점수 데이터와 상기 순위권 랭킹 데이터의 최하위 랭킹 데이터를 비교하는 방법이 선택될 수 있다.
본 발명의 일 실시예에 따라, 상기 데이터 베이스부(107)는 상기 제어부(103) 및/또는 상기 랭킹 산출부(105)의 동작을 위한 프로그램을 저장할 수 있다. 나아가, 입/출력되는 데이터들(예를 들어, 플레이어 요청, 순위권 랭킹 데이터, 샘플링 데이터 및 비순위권 랭킹 데이터 등)을 임시 저장할 수도 있다. 또는, 상기 입/출력되는 데이터가 미리결정된 기간별로 데이터 베이스부(107)에 저장될 수도 있다.
플레이어 요청이란, 플레이어로부터 수신된 요청으로 플레이어 랭킹 제공 요청 및/또는 플레이어 랭킹 추이 제공 요청을 포함한다. 전술한 내용은 본 발명의 일 실시예에 따른 일례일 뿐이며, 플레이어 디바이스(100)로부터 수신한 다양한 요청들이 존재할 수 있다.
랭킹 산출부(105)는 플레이어의 점수 데이터에 기초하여, 순위권 랭킹 데이터를 실시간 업데이트하여 데이터 베이스부(107)에 전달할 수 있다. 이를 통해, 상기 데이터 베이스부(107)는 업데이트된 순위권 랭킹 데이터를 저장, 기록할 수 있다.
그 외에도 상기 데이터 베이스부(107)는 플레이어가 게임 수행시 발생되는 다양한 데이터(예를 들어, 부정 행위 정보)를 저장할 수 있다. 추가적으로, 상기 데이터 베이스부(107)는 미리 결정된 기간별로 초기화될 수 있다. 나아가, 데이터 베이스부(107)는 상기 랭킹 서버(110) 및/또는 게임 서비스 제공 업체로부터 초기화될 수도 있다.
데이터 베이스부(107)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
본 발명의 일 실시예에 따른 상기 송신부(109)는, 상기 플레이어 요청을 기초로 하여, 하나 이상의 플레이어 디바이스 및/또는 외부 서버로 상기 플레이어의 랭킹 데이터를 송신할 수 있다. 추가적으로, 송신부(109)는 하나 이상의 플레이어 디바이스 및/또는 외부 서버로 상기 플레이어의 랭킹 추이 정보를 송신할 수도 있다.
여기에 설명되는 다양한 실시예는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 여기에 설명되는 실시예는 ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays, 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시예들이 제어부(103) 자체로 구현될 수 있다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 씌여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 데이터 베이스부(107)에 저장되고, 제어부(103)에 의해 실행될 수 있다.
상기 "근사 랭킹 데이터" 및 "순위권 랭킹 데이터"는 "근사 랭킹" 및 "순위권 랭킹"으로 종종 상호교환가능할 수 있다.
게임을 수행하는데 있어서 비순위권의 랭킹은 각 랭킹별 점수 차이가 매우 적고 각 점수별로 분포되는 플레이어 수가 매우 많을 수 있다. 예를 들어, 순위권의 비율이 10%인 경우, 비순위권은 전체 플레이어의 90%를 차지하게 된다. 이러한 경우, 90%에 달하는 데이터들의 순위를 정확하게 결정하기 위해서는 메모리 또는 프로세서에 과도한 부담이 가중될 수 있다.
이에, 비순위권 플레이어에게는 근사 랭킹이 제공될 수 있다. 근사 랭킹이란, 선형 근사 개념을 이용하여 정확한 랭킹과 유사할 수 있게 산출된 랭킹이다.
선형 근사란, 특정 함수를 선형 함수, 즉 일차 함수로 근사하는 것을 말한다. 특정 함수의 어떤 점 근처를 확대하면 확대할수록 미분 가능한 그래프와 그 점에서의 접선은 비슷해진다는 개념이다. 근사 랭킹 데이터를 제공하기 위해 근사 랭킹 알고리즘이 수행될 수 있다. 상기 근사 랭킹 알고리즘은 후술하도록 한다.
도 2는 본 발명의 일 실시예에 따라 랭킹을 제공하는 예시적 방법의 플로우챠트를 도시한다. 도 2는 랭킹 서버(110)(또는 랭킹 산출 서버) 및/또는 플레이어 디바이스(100)에 의해 구현될 수 있다. 추가적으로, 상기 랭킹 서버(110)(도 1 참조)에 접속할 수 있는 다양한 방법들이 존재할 수 있다. 예를 들어, 상기 랭킹 서버(110)(도 1 참조)는 플레이어 디바이스(예를 들어, 플레이어의 휴대폰, 태블릿, PC, PDA, 휴대용 멀티기기 등 상용가능한 UE)(100)(도 1 참조)의 수신부를 통해 플레이어 데이터 및/또는 요청을 전달받을 수 있다.
플레이어에게 랭킹을 제공하기 위한 일례의 방법으로, 도시된 바와 같이 랭킹 서버(110)(도 1 참조)가 플레이어 점수 데이터를 수신받는 단계(201)로부터 시작될 수 있다.
랭킹 서버(110)의 수신부(101)로 전달된 플레이어 점수 데이터는 데이터 베이스부(107)에 즉각, 또는 미리 결정된 시간 기간 이후에 업데이트된다(203).
상술된 바와 같이, 점수 데이터는, 랭킹을 결정하는 요인(예컨대 점수, 승률, 승수, 패수, 게임 수행 기간, 게임 수행 횟수, 가산점, 부정 행위 정보 등)에 부분적으로 기초하여 생성된 랭킹 결정 기준이 되는 정보이다.
상기 플레이어 점수 데이터가 랭킹 서버(110)의 데이터 베이스부(107)에 업데이트되면(203), 상기 플레이어가 순위권인지를 확인하는 단계(205)가 개시된다. 전술한 바와 같이, '순위권'이란 미리 결정된 순위 안에 들어가는 범위를 뜻한다. 순위권의 수 및 범위는 전체 플레이어 수에 따라서 달라질 수 있다.
플레이어의 순위권 포함 여부를 확인(205)하는 일례의 방법으로, 플레이어의 점수 데이터가 순위권 랭킹 데이터에 포함되어 있는지 확인하는 방법이 수행될 수 있다. 예컨대, 플레이어의 점수 데이터와 상기 순위권 랭킹 데이터의 최하위 랭킹 데이터를 비교하는 방법이 선택될 수 있다. 추가적으로, 상기 순위권 랭킹 데이터는 미리 산출되어 데이터 베이스부(107)에 저장될 수 있다. 이를 통해, 플레이어의 점수 데이터 및 상기 순위권 랭킹 데이터에 기초하여 플레이어의 순위권 포함 여부가 판단(205)될 수 있다.
본 발명의 추가적인 양상에 따라 플레이어의 순위권 포함 여부를 판단(205)하는 또다른 방법으로, 플레이어의 수와 점수 데이터 간의 맵핑(maping)하는 방법이 선택될 수 있다. 플레이어의 수와 점수 데이터 간의 맵핑(maping)을 통하여 플레이어가 순위권에 포함되는지 결정하는 것이다. 즉, 전체 플레이어수가 100명인 경우 1등 부터 100등까지 차례로 100점부터 1점까지 부여한다. 이 때, 순위권을 결정하는 비율을 5%라고 가정한다면, 94점부터 1점까지 부여된 플레이어는 비순위권임을 확인할 수 있다.
단계 205를 통해 상기 플레이어가 순위권에 포함되는 것으로 확인되면(예를 들어, 플레이어의 점수 데이터가 순위권 랭킹 데이터의 최하위 플레이어의 점수 데이터와 같거나 그 이상인 경우), 순위권 랭킹 데이터가 제공될 수 있다. 순위권 랭킹 데이터란, 미리 결정된 로직(예컨대, 샘플링 알고리즘 및 근사 랭킹 알고리즘)을 통해 산출한 플레이어의 정확한 랭킹으로서, 랭킹서버(110)에 의해 생성된다.나아가, 상기 플레이어가 순위권에 포함된 경우 미리 생성된 순위권 랭킹 데이터는 업데이트되어 데이터 베이스부(107)에 저장될 수 있다. 추가적으로, 랭킹서버(110)는, 플레이어가 순위권에 포함되면 기존 순위권 랭킹 데이터를 업데이트하고, 업데이트된 순위권 랭킹 데이터를 생성한다.
즉, 본 발명의 일 실시예에 따라 플레이어가 순위권에 포함된 경우, 랭킹 서버(110)는 순위권 랭킹 데이터를 업데이트(207)하고, 상기 플레이어에게 업데이트된 상기 플레이어의 순위권 랭킹을 제공한다(209).
단계 205로 돌아와, 플레이어가 순위권에 포함되어 있지 않은 것으로 확인되면(예를 들어, 플레이어의 점수 데이터가 순위권 랭킹 데이터의 최하위 플레이어의 점수 데이터 미만인 경우), 플레이어의 근사 랭킹 데이터가 제공될 수 있다. 즉, 단계 205를 통해 비순위권 플레이어로 판단되면, 근사 랭킹을 제공하기 위해 단계 211, 213, 215가 수행될 수 있다.
플레이어가 순위권에 포함되지 않은 경우, 랭킹 서버(110)는 비순위권 플레이어로부터 자신의 랭킹을 확인하기 원하는지를 수신할 수 있다(211). 본 발명의 일 양상에서, 단계 211은 생략되거나 또는 단계의 수행 시점이 달라질 수 있다. 예를 들어, 단계 211은 단계 205에 앞서 수행될 수도 있다.
본 발명의 일 실시예에 따라, 비순위권 플레이어가 자신의 랭킹을 확인하기 원하면, 플레이어의 근사 랭킹이 산출될 수 있다(213).
본 발명에서, 비순위권 플레이어에게 제공되는 근사 랭킹은, 정확한 랭킹과 유사할 수 있게 산출된 랭킹을 의미한다. 데이터 베이스(107)에 저장된 샘플링 데이터 및 수신부(101)를 통해 입력된 플레이어의 점수 데이터를 기초로, 선형 근사 개념을 바탕으로 한 근사 랭킹 알고리즘을 통해 산출될 수 있다.
근사 랭킹의 개념을 간략화하면, 샘플링 데이터로부터 근사 랭킹 알고리즘을 통해 비순위권 플레이어의 샘플링 랭킹을 결정하고, 결정된 샘플링 랭킹을 비순위권 플레이어수와 비교하여 산출한 후 순위권의 수를 합산한 값이다.
보다 자세히, 근사 랭킹의 개념을 간략화하여 설명하도록 한다. 예를 들어, 순위권 플레이어가 50명, 비순위권 플레이어가 1000명이 존재한다고 가정한다. 본 발명의 일 실시예에 따라 비순위권 플레이어 1000명 중 100명의 점수 데이터로 샘플링 데이터를 구성할 수 있다. 샘플링 데이터에서 샘플링 랭킹 4위의 점수가 105점, 샘플링 랭킹 5위의 점수가 100점, 샘플링 랭킹 6위의 점수가 90점이라고 가정한다. 이 때, 제 1 비순위권 플레이어의 점수가 102점이고 제 2 비순위권 플레이어 의 점수가 93점이라면, 이 때 제 1 비순위권 플레이어의 샘플링 랭킹은, 약 4.33위이며, 제 2 비순위권 플레이어의 샘플링 랭킹은, 약 5.72위로 결정될 수 있다.
샘플링 랭킹이 결정되면, 비순위권 플레이어 1000명 중 100명의 점수 데이터로 구성된 샘플링 데이터에서의 샘플링 랭킹은, 비순위권 플레이어 총수에 적용할 수 있다. 샘플링 랭킹 및 비순위권 플레이어 수에 기초하여 비순위권 랭킹을 산출하면, 제 1 비순위권 플레이어의 비순위권 랭킹은 4.33*10 = 43.3위, 제 2 비순위권 플레이비순위권 랭킹은 5.72*10=57.2위가 된다. 따라서, 비순위권 플레이어의 근사 랭킹은 산출된 비순위권 랭킹에 순위권의 수를 더한 값, 즉, 제 1 비순위권 플레이어의 근사 랭킹은 93.3위, 제 2 비순위권 플레이의 근사 랭킹은 107.2위로 결정될 수 있다. 비순위권 플레이어에게 근사 랭킹을 제공하기 위해, 상기 산출된 근사 랭킹을 올림, 반올림 및 내림 중 하나를 선택하여 계산할 수 있다. 예를 들어, 반올림을 선택하여 제 1 비순위권 플레이의 근사 랭킹을 93위, 제 2 비순위권 플레이의 근사 랭킹을 107위로 제공할 수 있다. 전술한 내용은 근사 랭킹을 설명하기 위한 간략화된 개념이며, 이와 관련하여 도 4a에서 후술하도록 한다.
전술한 바와 같이 샘플링 랭킹은 샘플링 데이터에서의 비순위권 플레이어 점수 데이터의 랭킹으로, 선형 근사 개념을 통한 위치 확인을 통해, 샘플링 랭킹이 결정될 수 있다.
샘플링 데이터란, 근사 랭킹을 산출하기 위해서, 선형 근사 개념을 이용한 근사 랭킹 알고리즘을 통해 미리 생성해 놓은 데이터이다. 임의의 샘플링 데이터는 비순위권 플레이어들의 점수 데이터에서 랜덤하게 추출한 것으로, 상기 추출된 비순위권 플레이어들의 점수 데이터 집합으로 구성될 수 있다.
나아가, 샘플링 데이터는 비순위권 플레이어들의 플레이어 데이터 중 미리 결정된 비율(n%) 및/또는 미리 결정된 개수(n개)에 해당하는 수 만큼의 점수 데이터를 추출하여 생성될 수 있다.
본 발명의 일 실시예에 따라, 랭킹 서버(110)는 미리 결정된 비율(n%) 및/또는 미리 결정된 개수(n개)는 전체 플레이어 수에 기초하여 조정될 수 있다. 상기 n% 및 상기 n개는 상기 랭킹 서버(110)에 의해 주기적으로 조정될 수 있거나, 또는, 상기 랭킹 서버(110) 및/또는 게임 서비스 제공 업체에 의해 조정될 수도 있다.
단계 211을 통해 비순위권 플레이어로부터 랭킹 제공 요청이 수신되면, 단계 213을 통해 근사 랭킹이 산출된다. 단계 213은 도3에서 보다 자세히 후술한다.
랭킹 제공 요청을 송신한 비순위권 플레이어의 점수 데이터가, 샘플링 데이터에 존재하지 않으면, 랭킹 서버(110)는, 미리 생성된 샘플링 데이터에 상기 비순위권 플레이어의 점수 데이터를 추가한다. 이로써, 샘플링 데이터에 상기 비순위권 플레이어의 점수 데이터가 존재할 수 있다. 나아가, 선형 근사의 개념을 통해 샘플링 데이터에서의 상기 비순위권 플레이어의 점수 데이터의 랭킹을 확인할 수 있다. 이를 '샘플링 랭킹'이라고 한다.
단계 213과 관련하여, 도 3 및 도 4에서 상술하도록 한다.
단계 213에서 근사 랭킹이 산출되면, 비순위권 플레이어에게 상기 산출된 근사 랭킹이 제공될 수 있다(215). 또한, 상기 플레이어가 자신의 순위권 랭킹 또는 근사 랭킹을 제공 받으면, 상기 랭킹 방법은 종료될 수 있다.
또다른 일례의 방법으로, 단계 211로 돌아가, 비순위권 플레이어가 자신의 랭킹 확인을 원하지 않으면, 단계 213 및 단계 215는 생략되고 상기 랭킹 방법은 종료될 수 있다.
전술한 상기 랭킹 산출을 위한 각 단계는, 본 발명의 구현을 위한 일 실시예일 뿐이며, 각 단계는 생략 및/또는 추가될 수 있다. 예를 들어, 상기 플레이어로부터 자신의 랭킹을 확인하기 원하는지 여부를 수신하는 단계(211)는, 생략되거나 혹은 단계 205에 앞서 개시될 수도 있다.
본 발명의 추가적인 양상에서, 플레이어가 비순위권 플레이어로 결정된 경우, 랭킹 서버(110)는 플레이어 디바이스(100)로부터의 근사 랭킹 정확도(예컨대 상, 중, 하) 입력을 수신할 수 있다. 수신된 근사 랭킹 정학도에 따라 샘플링 데이터의 개수는 가변될 수 있다.
추가적으로, 본 발명의 일 실시예에 따른 랭킹 및 근사 랭킹은 점수 데이터 및 플레이어 데이터에 기초하여 제공될 수 있다. 예컨대, 점수 데이터를 구성하는 각 요인(예컨대 점수, 승률, 승수, 패수, 게임 수행 기간, 게임 수행 횟수, 가산점, 부정 행위 정보 등) 별로 제공될 수 있다.
또는, 본 발명의 일 실시에에 따른 랭킹 및 근사 랭킹은, 플레이어 데이터(예컨대 플레이어 식별 정보, 서버 정보, 나이, 성별, 지역 등)에 기초하여 제공될 수도 있다. 예를 들어, 플레이어의 랭킹은 플레이어의 서버 별로 제공될 수도 있다.
도 3은 본 발명의 일 실시예에 따른 근사 랭킹 산출을 위한 예시적 방법의 플로우차트이다.
도 3의 단계들은 랭킹 서버(또는 랭킹 산출 서버)(110) 및/또는 플레이어 디바이스(100)에 의해 수행될 수 있다.
도 3은 도 2의 단계 213과 대응될 수 있다. 다시 말하면, 도 2의 단계 213인 근사 랭킹 산출하는 방법은 도 3에 보다 구체적으로 설명된다.
비순위권 플레이어에게 근사 랭킹을 제공하기 위하여 단계 213이 시작된다. 단계 213은, 미리 생성된 샘플링 데이터 및 랭킹 제공 요청을 송신한 플레이어의 점수 데이터를 기초로 근사 랭킹 알고리즘을 통해 수행될 수 있다.
샘플링 데이터란, 전술한 바와 같이, 비순위권 플레이어들의 플레이어 데이터 중 미리 결정된 비율(n%) 및/또는 미리 결정된 개수(n개)에 해당하는 수 만큼의 점수 데이터를 추출함으로써 생성된 데이터이다.
단계 213은 비순위권 플레이어의 점수 데이터가 미리 생성된 샘플링 데이터에 존재하는지 확인하는 단계(301)로 개시될 수 있다.
샘플링 데이터에 상기 비순위권 플레이어의 점수 데이터가 존재하면, 상기 샘플링 데이터에서 비순위권 플레이어의 점수 데이터의 랭킹을 확인한다(307). 샘플링 데이터에서의 비순위권 플레이어의 점수 데이터 랭킹을 '샘플링 랭킹'이라고 할 수 있다.
나아가, 샘플링 랭킹, 샘플링 데이터 수 및 상기 전체 비순위권 플레이어 수에 부분적으로 기초하여, 상기 전체 비순위권 플레이어에서의 근사 랭킹으로 산출될 수 있다(309).
단계 301로 돌아가, 샘플링 데이터에 비순위권 플레이어의 점수 데이터가 존재하지 않으면, 상기 비순위권 플레이어의 점수 데이터를 추가한다(303). 이를 통해, 랭킹 제공을 원했으나 샘플링 데이터에 속하지 않았던 비순위권 플레이어의 점수 데이터가 샘플링 데이터에 존재할 수 있다.
이로써, 단계 307, 309가 구현될 수 있다. 상기 업데이트된 샘플링 데이터에서의 비순위권 플레이어의 점수 데이터의 랭킹, 즉, 샘플링 랭킹이 산출될 수 있다(307). 샘플링 랭킹은 비순위권 플레이어의 상기 샘플링 데이터에서 위치 개념으로 볼 수도 있다.
추가적으로, 상기 샘플링 데이터 수와 상기 전체 비순위권 플레이어 수의 비교를 통해 상기 샘플링 데이터 내에서의 랭킹을 상기 전체 비순위권 플레이어에서의 근사 랭킹으로 산출할 수 있다(309).
단계 309를 통해 산출된 근사 랭킹이 제공된다(215).(도 2 참조).
이후, 비순위권 플레이어의 점수 데이터가 추가된 샘플링 데이터로부터, 랜덤하게 추출된 점수 데이터가 삭제 및 업데이트 될 수 있다(303).
비순위권 플레이어에게 근사 랭킹을 제공하기 위해 근사 랭킹을 산출하는, 전술한 일례의 방법을 위해, 샘플링 데이터를 적절하게 구성하는 것이 필수적으로 요구된다.
이를 위해, 전체 플레이어 수를 N, 순위권 플레이어 수를 S, 샘플링 개수가 n개라고 할 때, 다음의 샘플링 알고리즘(check_sampling(p))이 제시될 수 있다.
check_sampling(p)
if 순위권에 포함되지 않음,
if 샘플링 데이터 개수가 S보다 적음,
p를 샘플링 데이터에 추가
else if rand(0,1) < n/(N-S),
기존의 샘플링 데이터 중 하나를 랜덤하게 제거.
p 를 샘플링 데이터에 추가
플레이어가 순위권에 포함되지 않으면, 즉, 플레이어가 비순위권 플레이어일 때 상기 샘플링 알고리즘의 동작들이 수행될 수 있다.
플레이어가 순위권에 포함되지 않았고, 이 때의 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수 n개보다 적은 경우, 비순위권 플레이어의 점수 데이터는, 샘플링 데이터에 추가될 수 있다. 추가적으로, 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수보다 적지 않은 경우, 즉, 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수와 같을 경우에도, 상시 업데이트 된 샘플링 데이터를 갖고 있기 위해, 일련의 동작들이 수행될 수 있다. 즉, 기존의 샘플링 데이터 중 하나가 랜덤하게 제거되고, 비순위권 플레이어의 점수 데이터가 샘플링 데이터에 삽입될 수 있다.
예를 들어, 샘플링 데이터가 5개이고 비순위권 플레이어수가 5명이라고 가정하면, 상기 비순위권 플레이어 5명의 점수 데이터(예를 들어, A, B, C, D 및 E)는 모두 샘플링 데이터에 삽입될 수 있다. 이후, 비순위권 플레이어가 한 명 더 늘어났다고 가정하면, 증가한 비순위권 플레이어의 점수 데이터(예를 들어 F)도 샘플링 데이터에 적절하게 반영하기 위하여, 기존 샘플링 데이터에서 임의의 데이터를 선정하여 제거하고 비순위권 플레이어의 점수 데이터(예를 들어 F)를 삽입할 수 있다. 예를 들어, 기존 샘플링 데이터 A, B, C, D 및 E 중 임의로 선택된 B를 삭제하고, 증가한 비순위권 플레이어의 점수 데이터 F를 삽입함으로써 업데이트된 샘플링 데이터(여기서는, A, C, D, E 및 F)가 생성될 수 있다.
추가적으로, 샘플링 데이터의 개수는 전체 플레이어 총수 및/또는 비순위권 플레이어 수에 적어도 부분적으로 기초하여 적절하게 조절될 수 있다.
상기 샘플링 데이터는, 미리 결정한 기간(예컨대, 일별, 주별, 월별 등) 단위로 저장되어, 추후 랭킹 추이를 분석되는데 활용될 수도 있다. 이와 관련하여, 도 5에서 후술한다.
도 4a는 본 발명의 일 실시예에 따라 비순위권 랭킹 데이터에서 추출된 샘플링 데이터 및 간략화된 근사 랭킹 산출 과정을 도시한다.
본 발명의 일 실시예에 따라, 랭킹 서버(110)는 게임을 수행하는 플레이어를 순위권과 비순위권으로 나누어서 랭킹을 산출하여 제공한다. 전술한 바와 같이, 순위권 플레이어에게는 순위권 랭킹을 제공할 수 있다. 비순위권 플레이어에게는 샘플링 데이터 및 근사 랭킹 알고리즘에 의해 생성된 근사 랭킹을 제공할 수 있다.
도 4a를 통해 비순위권 랭킹 데이터에서 추출된 샘플링 데이터 및 간략화된 근사 랭킹 산출 과정을 상술하도록 한다.
랭킹 서버(110)(도 1 참조)의 데이터 베이스부(107)는, 순위권 랭킹 데이터(401) 및 비순위권 랭킹 데이터(403)를 저장할 수 있다. 또한, 비순위권 랭킹 데이터(403)로부터 추출된 점수 데이터들로 구성된 샘플링 데이터(405)를 저장할 수 있다. 전술한 순위권 랭킹 데이터(401) 및 비순위권 랭킹 데이터(403)는 플레이어의 게임 수행이 종료되면 업데이트될 수 있다. 또는, 미리 결정된 주기별로 업데이트 될 수도 있다.
본 발명의 일 실시예에 따른 랭킹 데이터는 적어도 플레이어 데이터 및 점수 데이터를 포함한다. 즉, 랭킹 데이터란 플레이어 데이터 및 점수 데이터를 총칭하는 용어이다.
본 발명의 일 실시예에 따른 샘플링 데이터는, 비순위권 랭킹 데이터 중 미리 결정된 수만큼의 점수 데이터만을 랜덤하게 추출하여 생성될 수 있다. 추가적으로, 샘플링 데이터는 비순위권 랭킹 데이터 중 미리 결정된 수 만큼의 비순위권 랭킹 데이터를 랜덤하게 추출하여 생성될 수도 있다. 그러나, 불필요한 정보를 함께 추출하여 메모리에 부하를 가중시키는 것을 지양하고자, 본 명세서에서는 샘플링 데이터를 점수 데이터만으로 구성하는 것을 위주로 설명한다.
전술한 바와 같이, 플레이어 데이터는, 플레이어 식별 정보, 서버 정보, 나이, 성별, 지역중 적어도 하나를 포함한다. 본 발명의 일 실시예에 따른 점수 데이터는, 랭킹을 결정하는 요인(예컨대 점수, 승률, 승수, 패수, 게임 수행 기간, 게임 수행 횟수, 가산점, 부정 행위 정보 등)에 부분적으로 기초하여 생성된 랭킹 결정 기준이 되는 정보이다. 즉, 점수 데이터는, 상기 랭킹을 결정하는 요인(예컨대 점수, 승률, 승수, 패수, 게임 수행 기간, 게임 수행 횟수, 가산점, 부정 행위 정보 등) 및 미리 결정된 로직에 부분적으로 기초하여 산출될 수 있다. 또는, 랭킹을 결정하는 요인 그 자체가 점수 데이터가 될 수 있다. 예컨대, '점수' 그 자체가 점수 데이터가 될 수 있다. 또는 '승률' 그 자체가 점수 데이터가 될 수 있다.
샘플링 데이터(405)는, 상기 비순위권 랭킹 데이터(403)에서 랜덤 선정된 플레이어의 점수 데이터를 추출하여 생성될 수 있다. 즉, 샘플링 데이터는 비순위권 랭킹 데이터에서 랜덤하게 추출된 플레이어의 점수 데이터만으로 구성될 수 있다.
상기 샘플링 데이터(405)란, 전술한 바와 같이, 상기 비순위권 랭킹 데이터(403)에서 n% 에 해당하는, 또는 n개에 해당하는 점수 데이터를 비복원 랜덤 추출하여, 상기 추출된 점수 데이터의 집합으로 구성된 데이터일 수 있다.
샘플링 데이터를 추출하는 일례의 방법으로, 비복원 추출법이 사용될 수 있다. 비복원 추출법(Sampling without replacement)이란, 이미 추출된 것을 제외하면서 그 나머지 것들 중 랜덤하게 선택하는 것을 뜻한다.
보다 자세하게는, 도 3에 전술한 샘플링 알고리즘의 형식으로 샘플링 데이터를 구성할 수 있다. 즉, 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수 S개보다 적은 경우, 비순위권 플레이어의 점수 데이터는, 샘플링 데이터에 추가될 수 있다. 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수보다 적지 않은 경우, 즉, 샘플링 데이터 개수가 미리 결정된 샘플링 데이터 개수와 같을 경우에도, 상시 업데이트 된 샘플링 데이터를 갖고 있기 위해, (샘플링 데이터 개수/비순위권 플레이어 수)보다 적은 확률로 랜덤하게, 기존의 샘플링 데이터 중 하나가 제거되고, 상기 비순위권 플레이어의 점수 데이터가 샘플링 데이터에 추가될 수 있다.
전술한 샘플링 알고리즘은, 샘플링 데이터를 구성하기 위한 일례의 방법이며, 다른 방법이 이용될 수도 있다.
샘플링 데이터(405)는, 상기 샘플링 데이터에 랭킹을 제공받기 원하는 비순위권 플레이어의 점수데이터가 존재하지 않을때, 상기 비순위권 플레이어의 점수데이터를 추가함으로써 업데이트 될 수 있다. 또는, 비순위권 랭킹 데이터(403)가 업데이트 될 때 샘플링 데이터(405)도 업데이트 될 수 있다. 나아가 미리 결정된 주기별로 업데이트 될 수도 있다.
비순위권 플레이어에게 근사 랭킹을 제공하기 위해, 상기 샘플링 데이터(405)에 기초한 근사 랭킹 알고리즘을 통해 샘플링 랭킹이 결정된다. 근사 랭킹 알고리즘은, 도 2 및 도 3에서 전술한 단계 213에 대응될 수 있다.
샘플링 데이터(405)에 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 존재하지 않으면, 상기 비순위권 플레이어의 점수 데이터는 샘플링 데이터(405)에 추가될 수 있다(도 3의 단계 303). 이를 통해, 상기 비순위권 플레이어의 점수 데이터가 상기 샘플링 데이터(405)에 존재하면, 샘플링 데이터에서 플레이어의 점수 데이터의 랭킹 위치, 즉, 샘플링 랭킹을 확인할 수 있다.
샘플링 데이터(405)는 비순위권 랭킹 데이터(403)에서 랜덤하게 추출된 점수 데이터로 구성되며, 랭킹순으로 정렬된다. 본 발명의 일 실시예에 따른 임의의 비순위권 플레이어의 점수 데이터(409)가 샘플링 데이터(405)에 존재한다. 샘플링 데이터(405)에서 임의의 비순위권 플레이어의 점수 데이터(409)의 랭킹을 산출할 수 있다. 이를 '샘플링 랭킹'이라고 통칭한다.
샘플링 랭킹은 샘플링 데이터에서의 비순위권 플레이어 점수 데이터의 랭킹으로, 선형 근사 개념을 통한 위치 확인을 통해 결정될 수 있다. 결정된 샘플링 랭킹(407 및 409)을, 전체 비순위권 플레이어 수와 비교하고(407 및 411), 전체 순위권 플레이어 수를 더함으로써 근사 랭킹을 산출할 수 있다.
즉, 비순위권 플레이어에게 제공되는 근사 랭킹은 다음의 수학식 1에 대응된다.
Figure 112014109995428-pat00001
수학식 1은 비순위권 플레이어에게 근사 랭킹을 제공하기 위한 일례의 방법이다. 근사 랭킹 k는 순위권 플레이어수 S + {(전체 플레이어수 N- 순위권 플레이어수 S)/샘플링 데이터수 n} * 샘플링 랭킹 R 으로 결정될 수 있다.
예를 들어, 순위권 플레이어수가 100명, 비순위권 플레이어수가 2000명이 존재한다고 가정한다. 비순위권 플레이어 2000명의 점수 데이터 중 임의로 선택된 200개를 랭킹순으로 정렬함으로써 샘플링 데이터가 구성된다. 근사 랭킹 산출을 원하는 제 1 비순위권 플레이어의 점수 데이터가 이미 샘플링 데이터로 존재하는 것이 확인되면, 샘플링 랭킹이 확인될 수 있다. 예를 들어, 상기 제 1 비순위권 플레이어의 점수 데이터가 샘플링 데이터에서 115번째에 있는 것이 확인되면, 상기 제 1 비순위권 플레이어의 샘플링 랭킹은 115위인 것을 알 수 있다. 따라서 제 1 비순위권 플레이어의 근사 랭킹은 100+(2000/200)*115=1250, 즉, 1250위로 결정될 수 있다.
샘플링 데이터에 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 존재하면(도 3의 301), 샘플링 데이터에서의 상기 비순위권 플레이어의 점수 데이터 위치를 확인하고(즉, 샘플링 랭킹 확인)(도 3의 307), 샘플링 데이터수와 비순위권 플레이어수 비교를 통해 상기 비순위권 플레이어의 근사 랭킹이 산출될 수 있다(도 3의 309). 이 때는, 이미 샘플링 데이터에 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 존재하므로, 샘플링 데이터에 상기 비순위권 플레이어의 점수 데이터를 추가로 삽입하는 단계가 생략될 수 있다. 따라서, 샘플링 데이터에 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 있을 경우의 근사 랭킹 산출식은 수학식 1에 대응된다.
본 발명의 일 실시예에 따라, 샘플링 데이터에 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 존재하지 않을 경우의 근사 랭킹 산출식은 수학식 2에 대응될 수 있다.
Figure 112014109995428-pat00002
수학식 2는 비순위권 플레이어에게 근사 랭킹을 제공하기 위한 일례의 방법이다. 근사 랭킹 k는 순위권 플레이어수 S + {(전체 플레이어수 N- 순위권 플레이어수 S)/샘플링 데이터수 n +1} * 샘플링 랭킹 R 으로 결정된다.
샘플링 데이터수 n에 랭킹 산출을 원하는 상기 비순위권 플레이어의 점수 데이터를 추가하여 n+1가 되었음을 확인할 수 있다.
예를 들어, 순위권 플레이어수가 100명, 비순위권 플레이어수가 2000명이 존재한다고 가정한다. 샘플링 데이터는 비순위권 플레이어 2000명의 점수 데이터 중 임의로 선택된 200개를 랭킹순으로 정렬한 것이다.
샘플링 1위의 점수가 200점, 샘플링 2위의 점수가 180점, 샘플링 3위의 점수가 150점이라고 가정한다. 제 2 비순위권 플레이어의 점수가 198점, 제 3 비순위권 플레이어의 점수가 165점인 경우, 상기 비순위권 플레이어들의 근사 랭킹은 다음과 같다.
제 2 비순위권 플레이어는 198점으로 샘플링 1위와 샘플링 2위의 사이에 위치한다. 샘플링 1위는 200점, 샘플링 2위는 180점이므로, 제 2 비순위권 플레이어는 샘플링 1위와 샘플링 2위 사이에 랭킹됨을 알 수 있다. 보다 자세하게, 샘플링 1위와 샘플링 2위를 각 점으로 나타내면, 두 점 사이에 제 2 비순위권 플레이어의 점수 데이터가 위치함을 알 수 있다. 즉, 제 2 비순위권 플레이어는 "샘플링 1위의 위치 + 샘플링 1위로부터 떨어진 제 2 비순위권 플레이어 점수 데이터의 위치"에 존재함을 확인할 수 있다.
예컨대 제 2 비순위권 플레이어의 점수 198은 샘플링 1위의 점수 200점과 샘플링 2위의 점수 180점 사이에 위치하며, 보다 정확하게 제 2 비순위권 플레이어의 점수 198점은 샘플링 1위(200점의 위치) + 198점이 샘플링 1위에서부터 떨어진 정도에 해당하는 곳에 위치한다. 따라서, 198점은 1+ {(200-198)/(200-180)}=1.1, 즉, 샘플링 1.1위에 해당함을 확인할 수 있다. 따라서, 제 2 비순위권 플레이어는, 샘플링 랭킹 1.1위로 결정될 수 있다. 샘플링 랭킹은 샘플링 데이터 내에서의 랭킹이므로, 다시 비순위권 플레이어 수에 비교함으로써 비순위권 랭킹이 산출될 수 있다. 여기서, 비순위권 플레이어수는 2000명, 샘플링 데이터는 200개, 제 2 비순위권 플레이어의 샘플링 랭킹은 1.1이므로 수학식 1에 따라, 근사 랭킹이 결정될 수 있다. 즉, 제 2 비순위권 플레이어의 비순위권 랭킹은 (2000/201)*1.1 = 10.9452이고, 근사 랭킹은 상기 비순위권 랭킹에 순위권 수 100을 합산하여 110.9452위이다. 비순위권 플레이어에게 근사 랭킹을 제공하기 위해 상기 산출된 샘플링 랭킹 및/또는 근사 랭킹은 올림, 반올림 및 내림 중 하나를 선택하여 계산될 수 있다. 본 발명의 일 실시예에 따라 반올림이 선택되면 제 2 비순위권 플레이어의 근사 랭킹은 111위로 결정될 수 있다.
같은 방식으로, 제 3 비순위권 플레이어는 165점으로 샘플링 2위와 샘플링 3위 사이에 위치한다. 보다 자세히, 제 3 비순위권 플레이어는 2+(15/30)=2.5의 위치에 존재함을 확인할 수 있다. 즉, 제 3 비순위권 플레이어는 샘플링 랭킹 2.5위로 결정될 수 있다. 이를 수학식 1에 대입하면 제 3 비순위권 플레이어의 비순위권 랭킹 및 근사 랭킹을 확인할 수 있다. 즉, 제 3 비순위권 플레이어는 (2000/201)*2.5=24.8756로, 제 3 비순위권 플레이어의 비순위권 랭킹은 24.8756위이다. 다시, 순위권 플레이어 수를 더하면 제 3 비순위권 플레이어의 근사 랭킹을 산출할 수 있다. 즉, 제 2 비순위권 플레이어의 근사 랭킹은 125위로 결정될 수 있다.
구분 랭킹 기타
순위권 플레이어 순위권 랭킹 제공
비순위권 플레이어
(샘플링 데이터에 상기 플레이어의 점수 데이터가 존재)
근사 랭킹 제공
k=S+(N-S)/n *R

S: 순위권 수
N-S: 비순위권 수
n: 샘플링 데이터 수
R: 샘플링 랭킹
비순위권 플레이어
(샘플링 데이터에 상기 플레이어의 점수 데이터가 존재하지 않음)
근사 랭킹 제공
k=S+(N-S)/(n+1) *R
표 1은 플레이어의 구분에 따라 제공되는 랭킹 및 랭킹 산출식을 표시한다.
본 발명의 추가적인 실시예에 따라, 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 샘플링 데이터에 존재하지 않는 경우에도 도 3의 단계 311이 단계 303에 앞서 수행됨으로써 수학식 1을 따를 수 있다. 즉, 샘플링 데이터에서 랜덤하게 선정된 점수 데이터를 삭제하고, 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터를 삽입함으로써 샘플링 데이터의 개수를 n개로 유지할 수도 있다.
본 발명이 추가적인 실시예에 따라, 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 샘플링 최상위 점수 데이터보다 높은 경우(예컨대, 비순위권 플레이어의 점수 데이터는 500점, 샘플링 1위 점수 데이터는 400점)가 존재할 수 있다. 반대로, 근사 랭킹 산출을 원하는 비순위권 플레이어의 점수 데이터가 샘플링 데이터에서 가장 낮은 점수 데이터보다 낮은 경우(예컨대, 비순위권 플레이어의 점수 데이터는 30점, 샘플링 최하위 점수 데이터는 50점)가 존재할 수도 있다. 이러한 경우에도 선형 근사를 이용한 보정계수가 정해질 수 있다.
예를 들어, 순위권 플레이어수가 100명, 비순위권 플레이어수가 2000명이고 200명의 점수 데이터로 생성된 샘플링 데이터가 존재한다고 가정한다. 이에 더해, 순위권 최하위 점수가 350점, 샘플링 최상위 점수가 320점이고 제 4 비순위권 플레이어의 점수가 330점, 제 5 비순위권 플레이어의 점수가 340점인 경우가 존재한다고 가정한다. 이 때 제 4 비순위권 플레이어의 샘플링 랭킹은 0.4위, 제 5 비순위권 플레이어의 샘플링 랭킹은 0.7위로 보정될 수 있다. 즉, 제 4 비순위권 플레이어의 근사 랭킹은 100+(2000/200)*0.4 = 104위로, 제 5 비순위권 플레이어의 근사 랭킹은 100+(2000/200)*0.7=107위로 결정될 수 있다.
마찬가지로, 순위권 비순위권 플레이어의 점수가 샘플링 최하위보다 높은 경우, 임의의 최하위 점수를 지정해놓고 샘플링 최하위 점수와 임의의 최하위 점수를 이용하여 보정계수가 정해질 수 있다. 추가적으로, 임의의 최하위 점수란 전체 플레이어의 수 및/또는 플레이어들의 게임 점수들을 고려하여 변동될 수 있다. 예컨대, 샘플링 최하위 점수가 50점, 제 6 비순위권 플레이어의 점수가 45점, 제 7 비순위권 플레이어의 점수가 10점인 경우, 제 6 비순위권 플레이어의 샘플링 랭킹은 n+0.1위(여기서는, 200.1위), 제 7 비순위권 플레이어의 샘플링 랭킹은 n+0.9위(여기서는, 200.9위)로 보정될 수 있다. 따라서, 제 6 비순위권 플레이어의 근사 랭킹은 2101위, 제 7 비순위권 플레이어의 근사 랭킹은 2109위로 결정될 수 있다.
전술한 보정 계수는 본 발명의 일 실시예에 따른 예시적 방법이며, 다른 방법들을 통한 보정이 가능할 수도 있다. 예를 들어, 비순위권 플레이어의 점수가 샘플링 1위보다 크다면 r=0.5로, 비순위권 플레이어의 점수가 샘플링 최하위(n위)보다 낮다면 r=n+0.5로 보정될 수도 있다.
도 4b는 본 발명의 일 실시예에 따른 버퍼 랭킹 데이터를 포함하는 순위권 랭킹 데이터 및 비순위권 랭킹 데이터를 도시한다.
순위권 랭킹 데이터의 경우, 버퍼 랭킹 데이터(402)를 더 포함할 수 있다.
본 발명의 일 실시예에 따라, 순위권 랭킹 데이터(401)는 미리 결정된 비율에 해당하는 하위 n개의 순위권 랭킹 데이터를 버퍼 랭킹 데이터(402)로 더 포함할 수 있다.
예시적 방법으로, 전체 플레이어 수 중 미리 결정된 n% 및/또는 n개의 랭킹 데이터로 구성된 순위권 랭킹 데이터는 상기 n% 에 해당하는 랭킹 데이터 및/또는 n개보다 더 많은 수를 순위권 랭킹 데이터로 생성하고 그 초과분을 버퍼 랭킹 데이터(402)로 지정할 수 있다.
상기 버퍼 랭킹 데이터(402)를 통해, 순위권 플레이어 중에서 부정 행위를 통해 게임을 수행하여 게임 서비스 제공자로부터 불량 플레이어(Abuser player)로 결정되거나, 상기 순위권 플레이어가 게임을 탈퇴했을 경우 등 순위권 랭킹 데이터가 삭제될 시를 대비할 수 있다.
불량 플레이어로 결정된 순위권 플레이어의 점수 데이터를 포함한 랭킹 데이터가 순위권 랭킹 데이터에 포함된 경우, 상기 버퍼 랭킹 데이터를 제외한 순위권 랭킹 데이터에서 상기 순위권 플레이어의 점수 데이터는 삭제되고, 업데이트 된다.
상기 게임을 탈퇴한 순위권 플레이어의 점수 데이터를 포함한 랭킹 데이터가 상기 버퍼 랭킹 데이터(402)가 아닌 순위권 랭킹 데이터에 포함된 경우, 상기 버퍼 랭킹 데이터를 제외한 순위권 랭킹 데이터에서 상기 순위권 플레이어의 점수 데이터는 삭제되고, 업데이트 된다.
본 발명의 일 양상에 따라, 상기 불량 플레이어로 결정된 순위권 플레이어의 점수 데이터를 포함한 랭킹 데이터가 상기 버퍼 랭킹 데이터(402)에 포함된 경우, 상기 버퍼 랭킹 데이터에서 상기 순위권 플레이어의 점수 데이터는 삭제되고, 업데이트 된다.
본 발명의 추가적인 양상에 따라, 상기 게임을 탈퇴한 순위권 플레이어의 점수 데이터를 포함한 랭킹 데이터가 상기 버퍼 랭킹 데이터(402)에 포함된 경우, 상기 버퍼 랭킹 데이터에서 상기 순위권 플레이어의 점수 데이터를 포함한 랭킹 데이터는 삭제되고, 업데이트 된다.
추가적으로, 버퍼 랭킹 데이터(402)가 미리 결정된 수(n개) 미만이 되면, 새로 구성하여 버퍼 랭킹 데이터(402)를 포함한 순위권 랭킹 데이터(401)를 업데이트함으로써 미리 결정된 수(n개) 이상의 버퍼 랭킹 데이터(402)를 가질 수 있다.
본 발명의 일 실시예에 따라, 순위권의 수는 전체 플레이어 수에 따라서 달라질 수 있다. 일례의 방법으로, 랭킹서버(110)에 미리 결정된 임의의 비율(n%)에 따라 자동적으로 순위권의 수가 변경될 수 있다. 또다른 예시적 방법으로, 순위권의 수는 랭킹서버(110)를 관리하는 회사 및/또는 게임 업체로부터 지정될 수 있다.
본 발명의 추가적인 양상에 따라, 샘플링 데이터(405)의 개수를 결정하는 상기 n% 및/또는 n개는 전체 플레이어 랭킹 데이터 수(401과 403의 합)에 기초하여 조정될 수 있다. 또는, 비순위권 랭킹 데이터(403) 수에 기초하여 조정될 수 있다. 추가적으로, 상기 샘플링 데이터를 결정하는 상기 n% 및/또는 n개는 랭킹 서버(110) 및/또는 게임 서비스 제공 업체에 의해 비주기적으로 업데이트될 수도 있다.
도 5는 본 발명의 일 실시예에 따라 플레이어에게 랭킹 추이를 제공하기 위해 미리 결정된 기간별로 저장된 순위권 랭킹 데이터 및 샘플링 데이터를 도시한다.
본 발명의 일 실시예에 따라, 랭킹 서버(110)의 수신부(101)(도 1 참조)에서 플레이어의 랭킹 추이 제공 요청이 수신되면, 랭킹 서버(110)(도 1 참조)는 상기 플레이어의 랭킹 추이를 도출할 수 있다. 또는, 본 발명의 일 실시예에 따라, 플레이어는 과거 기록을 조회할 수 있다.
본 발명의 추가적인 실시예에 따라, 랭킹 서버(110)(도 1 참조)는 플레이어 디바이스(100)로부터 랭킹 추이 제공 요청이 수신되지 않더라도, 순위권 플레이어에 대한 랭킹 추이를 도출할 수 있다. 이를 통해 게임 회사가 순위권 유저의 랭킹 추이를 모니터링하여 VIP 마케팅에 활용될 수 있다. 이 때, 순위권 유저의 랭킹 추이 정보는 순위권 유저의 게임 이용 기록에 기초하여 분석된 인사이트 정보와 함께 제공될 수도 있다. 전술한 인사이트 정보는, 순위권 유저의 게임 주 접속 시간대, 접속 시간 및 접속 경로 중 적어도 하나를 포함할 수 있다.
랭킹 추이 및/또는 과거 기록 조회는 플레이어로부터 결정된 기간별로 제공될 수 있다. 또는, 일별, 주별, 월별 등 미리 결정된 기간별로 제공될 수도 있다.
본 발명의 일 실시예에 따라, 미리 결정된 기간별(예를 들어, 일별, 주별, 월별 등)로 상기 플레이어가 순위권에 포함되어 있는지 확인하고, 상기 플레이어가 순위권에 포함되어 있으면 해당 기간의 순위권 랭킹 데이터가 추출된다.
본 발명의 일 실시예에 따라, 상기 플레이어가 순위권에 포함되어 있으면 해당 기간의 샘플링 데이터에서 근사 랭킹 알고리즘을 통해 해당 기간의 상기 플레이어의 근사 랭킹이 생성되고, 상기 생성된 근사 랭킹이 추출된다.
이를 통해, 랭킹서버(110)(도 1 참조)는, 플레이어의 랭킹 추이를 상기 미리 결정한 기간별 상기 플레이어의 순위권 랭킹 데이터 및/또는 근사 랭킹의 집합으로 도출할 수 있다.
도 5의 501은, 월별로 저장된 순위권 랭킹 데이터이다.
도 5의 503은, 월별로 저장된 샘플링 랭킹 데이터이다.
플레이어의 기간별 랭킹 추이를 도출하기 위해, 도 5에 도시된 바와 같이, 미리 결정된 기간별(예를 들어, 일별, 주별, 월별 등)로 순위권 랭킹 데이터 및 샘플링 데이터는 데이터 베이스부(107)에 저장된다.
상기 기간별 순위권 랭킹 데이터 및 샘플링 데이터는 상기 랭킹 서버(110)의 수신부(103)에 플레이어로부터 랭킹 추이 요청이 수신될 때만 로딩된다.
본 발명의 일 실시예에 따라, 상기 랭킹 추이 도출 과정을 표 1 및 표 2를 예로 설명한다.
1월 2월 3월 4월 5월 6월
순위권
랭킹 데이터
순위권
랭킹 데이터
순위권
랭킹 데이터
순위권
랭킹 데이터
순위권
랭킹 데이터
순위권
랭킹 데이터
샘플링
데이터
샘플링
데이터
샘플링
데이터
샘플링
데이터
샘플링
데이터
샘플링
데이터
1월 2월 3월 4월 5월 6월
순위권 순위권 비순위권 비순위권 순위권 비순위권
표 2는 미리 결정된 기간별(여기서는 1월부터 6월까지, 월별 저장)로 저장된 순위권 랭킹 데이터 및 샘플링 데이터이다.
표 3은 미리 결정된 기간별 플레이어의 순위권 포함 여부이다. 빠른 랭킹 추이 도출을 위해, 상기 미리 결정된 기간별 플레이어의 순위권 포함 여부는 미리 판단되어, 플레이어 데이터에 저장될 수 있다. 추가적으로, 상기 미리 결정된 기간별 플레이어의 순위권 포함 여부는 미리 판단되지 않고, 상기 플레이어로부터 랭킹 추이 제공 요청이 수신되면 상기 플레이어가 순위권인지 비순위권인지 확인할 수 있다.
전술한 바와 같이, 플레이어의 순위권 포함 여부는 데이터 베이스부(107)에 저장된 순위권 랭킹 데이터와의 비교를 통해 결정될 수 있다. 일례로, 상기 순위권 랭킹 데이터의 최하위 데이터와의 비교를 통해 결정될 수 있다.
표 2, 표 3 및 도 5에 도시된 바와 같이, 순위권 랭킹 데이터 및 샘플링 데이터는 미리 결정한 기간별로 저장된다. 상기 미리 결정된 기간은 일별, 주별, 월별 등이 될 수 있다.
본 발명의 일 실시예에 따라, 저장된 순위권 랭킹 데이터 및 샘플링 데이터는 미리 결정된 기간별로 초기화될 수도 있다. 또는, 랭킹 서버(110) 및/또는 게임 서비스 제공 업체에 의해 초기화될 수도 있다.
표 3로 돌아가, 임의의 플레이어 A의 미리 결정된 기간별 플레이어 A의 순위권 포함 여부를 확인할 수 있다.
플레이어 A의 경우, 1월은 순위권에 포함되어 있으므로, 1월 순위권 랭킹 데이터가 추출된다. 2월 역시, 순위권에 포함되어 있으므로, 2월 순위권 랭킹 데이터가 추출된다. 3월은 순위권에 포함되어 있지 않으므로, 3월 샘플링 데이터에서 근사 랭킹 알고리즘을 통해 3월 근사 랭킹 데이터가 생성 및 추출된다. 4월도 순위권에 포함되어 있지 않으므로, 4월 샘플링 데이터에서 근사 랭킹 알고리즘을 통해 플레이어 4월 근사 랭킹 데이터가 생성 및 추출된다 플레이어 A는 5월에 순위권에 포함되어 있으므로, 5월 순위권 랭킹 데이터가 추출된다. 플레이어 A는 6월에 순위권에 포함되어 있지 않으므로, 6월 샘플링 데이터에서 근사 랭킹 알고리즘을 통해 플레이어 A의 6월 근사 랭킹 데이터가 추출된다. 상기 추출된 랭킹을 통해 랭킹 서버(110)는 플레이어 A의 1월부터 6월까지의 월별 랭킹 추이를 도출할 수 있다.
본 발명의 추가적인 실시예에 따라, 전술한 랭킹 추이는 그래프의 형태로 시각화되어 제공될 수 있다. 또는, 애니메이션의 형태로 시각화되어 제공될 수 있다. 예를 들어, 랭킹이 가장 높은 시점에 반짝임 등의 효과가 나타나거나, 랭킹이 가장 낮은 시점에 '분발해야해!'등의 문구가 표시될 수도 있다. 또는, 랭킹이 급격히 하락하는 경우, 해당 구간을 강조하여 빠르게 떨어지는 효과가 표시될 수도 있다. 전술한 내용은, 예시적 일례일 뿐이며, 제시한 내용 외 다양한 방식으로 구현될 수 있다. 추가적으로, '박수치는 소리', '야유하는 소리' 등의 소리가 함께 재생될 수도 있다.
본 발명의 추가적인 실시예에 따라, 게임상의 친구와의 비교를 통한 경쟁심을 유발함으로써 플레이어로 하여금 게임의 재미 및 집중도를 향상할 수 있다. 게임상의 친구는, 게임 계정을 등록한 플레이어들 중 플레이어와 유사한 플레이어일 수 있다. 나아가, 게임 회사에서 임의로 생성해놓은 가상 플레이어일 수도 있다.
본 발명의 추가적인 실시예에 따라, 비순위권 플레이어에게 순위권 진입을 위한 점수 및/또는 레벨 정보를 제공할 수 있다. 나아가, 비순위권 플레이어가 해당 점수 및/또는 레벨 취득을 위해 필요한 아이템 정보를 함께 제공할 수도 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다. 용어 "기계-판독가능 매체"는 명령(들) 및/또는 데이터를 저장, 보유, 및/또는 전달할 수 있는 무선 채널 및 다양한 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 발명의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (13)

  1. 랭킹 산출 방법에 있어서,
    플레이어의 점수 데이터에 기초하여, 상기 플레이어가 순위권에 포함되었는지 여부를 판단하는 단계;
    상기 플레이어가 순위권에 포함된 경우, 미리 생성된 순위권 랭킹 데이터를 업데이트하고, 순위권 랭킹 데이터를 제공하는 단계; 및
    상기 플레이어가 순위권에 포함되지 않은 경우, 순위권에 포함되지 않은 모든 플레이어 중에서 미리 결정된 샘플링 데이터 수만큼 랜덤하게 선정된 플레이어의 점수 데이터로 생성되는 샘플링 데이터에 기반하여 근사 랭킹 알고리즘을 통해 상기 플레이어의 근사 랭킹 을 산출하고, 상기 산출된 근사 랭킹 데이터를 제공하는 단계;
    를 포함하는,
    랭킹 산출 방법.
  2. 제 1 항에 있어서,
    상기 플레이어의 랭킹 추이를 도출하는 단계;
    를 더 포함하는,
    랭킹 산출 방법.
  3. 제 2 항에 있어서,
    상기 랭킹 추이 도출 단계는,
    상기 플레이어가 미리 결정된 기간에 순위권에 포함되어 있는지 확인하는 단계;
    를 포함하는,
    랭킹 산출 방법.
  4. 제 2 항에 있어서,
    상기 랭킹 추이 도출 단계는,
    상기 플레이어가 미리 결정된 기간에 순위권에 포함되어 있으면 상기 기간의 순위권 랭킹 데이터를 제공하는 단계; 및
    상기 플레이어가 상기 미리 결정된 기간에 순위권에 포함되어 있지 않으면, 상기 기간 샘플링 데이터에서 근사 랭킹 알고리즘을 통해 상기 플레이어의 상기 기간 상기 플레이어의 근사 랭킹을 산출하고, 산출된 근사 랭킹 데이터를 제공하는 단계;
    를 더 포함하는,
    랭킹 산출 방법.
  5. 제 1 항에 있어서,
    상기 순위권 랭킹 데이터에서 특정 비율에 해당하는 하위 n개의 랭킹 데이터를 버퍼 랭킹 데이터로 구성하는,
    랭킹 산출 방법.
  6. 제 1 항에 있어서,
    상기 랭킹 데이터 및 상기 근사 랭킹 데이터는,
    미리 결정한 기간 단위로 저장되며,
    그리고 서버 정보, 나이, 성별 및 지역 중 적어도 하나에 기초하여 생성되는,
    랭킹 산출 방법.
  7. 제 1 항에 있어서,
    상기 근사 랭킹 알고리즘은,
    상기 샘플링 데이터에서 상기 플레이어의 점수에 해당하는 위치를 확인함으로써 상기 샘플링 데이터에서의 상기 플레이어의 샘플링 랭킹을 산출하는 단계; 및
    상기 산출된 상기 플레이어의 샘플링 랭킹에 기초하여, 샘플링 데이터 수와 순위권에 포함되지 않은 모든 플레이어 수의 비교를 통해 상기 플레이어의 근사 랭킹을 산출하는 단계;
    를 포함하는,
    랭킹 산출 방법.
  8. 제 1 항에 있어서,
    상기 샘플링 데이터는,
    순위권에 포함되지 않은 플레이어의 수가 샘플링 데이터의 개수를 초과하지 않은 경우, 모든 순위권에 포함되지 않은 플레이어의 점수 데이터로 생성되는,
    랭킹 산출 방법.
  9. 제 1 항에 있어서,
    상기 샘플링 데이터는,
    순위권에 포함되지 않은 플레이어의 수가 샘플링 데이터의 개수를 초과하는 경우, 상기 샘플링 데이터에서 랜덤하게 선정된 플레이어의 점수 데이터를 삭제하고, 상기 샘플링 데이터에 포함되지 않았던 순위권에 포함되지 않은 플레이어의 점수 데이터를 삽입함으로써 생성되는,
    랭킹 산출 방법.
  10. 삭제
  11. 제 1 항에 있어서,
    상기 샘플링 데이터는,
    상기 플레이어의 점수 데이터가 상기 샘플링 데이터에 포함되지 않은 경우, 상기 플레이어의 점수 데이터를 상기 샘플링 데이터에 추가함으로써 생성되는,
    랭킹 산출 방법.
  12. 제 1 항에 있어서,
    상기 샘플링 데이터는,
    미리 결정된 기간 별로 저장될 수 있는,
    랭킹 산출 방법.
  13. 플레이어 디바이스와 네트워크로 연결되어 동작하는 랭킹 산출 서버로서,
    플레이어 랭킹 정보에 기초하여 상기 플레이어가 순위권에 포함되었는지 여부를 판단하는 제어부;
    순위권에 포함되지 않은 모든 플레이어 중에서 미리 결정된 샘플링 데이터 수만큼 랜덤하게 선정된 플레이어의 점수 데이터로 생성되는 샘플링 데이터에 기반하여 근사 랭킹 알고리즘을 통해 상기 플레이어의 근사 랭킹 데이터 및 순위권 랭킹 데이터를 생성하는 랭킹 산출부;
    상기 생성된 랭킹 데이터를 송신하는 송신부; 및
    상기 플레이어의 랭킹 데이터 및 샘플링 데이터를 기록하여 저장하는 데이터베이스부;
    를 포함하는,
    실시간 랭킹 서버.
KR1020140159030A 2014-11-14 2014-11-14 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템 KR101640922B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140159030A KR101640922B1 (ko) 2014-11-14 2014-11-14 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140159030A KR101640922B1 (ko) 2014-11-14 2014-11-14 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템

Publications (2)

Publication Number Publication Date
KR20160058340A KR20160058340A (ko) 2016-05-25
KR101640922B1 true KR101640922B1 (ko) 2016-07-19

Family

ID=56114284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140159030A KR101640922B1 (ko) 2014-11-14 2014-11-14 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템

Country Status (1)

Country Link
KR (1) KR101640922B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4309930B2 (ja) * 2007-03-29 2009-08-05 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲームシステム制御方法、ならびに、プログラム
KR101049777B1 (ko) * 2008-01-21 2011-07-19 주식회사 드래곤플라이 실시간 랭킹 제공 시스템 및 방법

Also Published As

Publication number Publication date
KR20160058340A (ko) 2016-05-25

Similar Documents

Publication Publication Date Title
US10736157B2 (en) Multitenancy gaming services platform
US10729979B2 (en) Automated tuning of computer-implemented games
US10315106B2 (en) Friend recommendation system
US20190118097A1 (en) Dynamic requirement variation for online game network asset acquisition
US8834276B2 (en) Rules-based engine for cross-promotion platform
US11321378B2 (en) Display system, display method in the system and display program for using social graph information of users of multiple applications
US9033790B2 (en) Game item auction
US20160121224A1 (en) Method and device for fantasy sports auction recommendations
CN107335220B (zh) 一种消极用户的识别方法、装置及服务器
US10272341B1 (en) Procedural level generation for games
US9320968B1 (en) Online game with matching of different data types
US9956488B2 (en) System and method for video game skill level adjustment
WO2019107396A1 (ja) データ分析装置及びデータ分析プログラム
US9895613B1 (en) Facilitating multigame currencies in multiple online games
KR102244777B1 (ko) 공간이원화를 이용하여 스포츠 게임의 플레이어 캐릭터를 육성하는 방법 및 시스템
CN107533732A (zh) 应用程序推荐装置及应用程序推荐方法
US10532288B2 (en) Video game with improved social networking features
KR102169785B1 (ko) 게임 참여 인원 및 경기 가능 구역이 동적으로 정해지는 근거리 배틀 로얄 게임을 제공하는 방법 및 이를 이용한 서버
KR101640922B1 (ko) 랭킹 산출 방법, 컴퓨터-판독가능 매체 및 시스템
US20150360129A1 (en) Managing a population of players of online games
JP5922720B2 (ja) ゲームシステム、それに用いられる制御方法及びコンピュータプログラム
JP6286163B2 (ja) プログラム及びサーバ
KR101638474B1 (ko) 온라인 게임의 통합 레이팅 관리 장치 및 방법
CN106621333B (zh) 一种网络游戏名片的生成方法及装置
KR20200138893A (ko) 스포츠 게임의 선수의 포지션 및 트레이너에 대한 추천 자동화를 이용한 팀 관리 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 6

R401 Registration of restoration