KR100766777B1 - 게임 네트워크 제공 시스템, 방법 및 기록매체 - Google Patents

게임 네트워크 제공 시스템, 방법 및 기록매체 Download PDF

Info

Publication number
KR100766777B1
KR100766777B1 KR1020050070717A KR20050070717A KR100766777B1 KR 100766777 B1 KR100766777 B1 KR 100766777B1 KR 1020050070717 A KR1020050070717 A KR 1020050070717A KR 20050070717 A KR20050070717 A KR 20050070717A KR 100766777 B1 KR100766777 B1 KR 100766777B1
Authority
KR
South Korea
Prior art keywords
game
client
peer
network
address
Prior art date
Application number
KR1020050070717A
Other languages
English (en)
Other versions
KR20070015991A (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 KR1020050070717A priority Critical patent/KR100766777B1/ko
Publication of KR20070015991A publication Critical patent/KR20070015991A/ko
Application granted granted Critical
Publication of KR100766777B1 publication Critical patent/KR100766777B1/ko

Links

Images

Abstract

본 발명은 고속 전송 및 응답이 필요한 온라인 게임에서의 효과적인 네트워크 구성을 위한 장치 및 그 방법에 관한 것이다.
본 발명은 동일한 게임에 참여하는 클라이언트 시스템이 가상 IP를 사용하는지를 판단하여, 가상 IP를 사용하지 않는 경우에 각각의 클라이언트 시스템의 성능정보를 수신하여, 상기 클라이언트 성능 정보를 기초로 피어 투 피어, 슈퍼 피어 방식 중 하나로 게임 네트워크를 구성한다. 만약, 클라이언트 시스템이 가상 IP를 사용하는 경우에는 릴레이 서버를 할당하여 서버-클라이언트 방식의 게임 네트워크를 구성한다.
피어 투 피어, 슈퍼 피어, 릴레이 서버, 가상 IP

Description

게임 네트워크 제공 시스템, 방법 및 기록매체{System for providing game network and method thereof,storage medium}
도 1은 클라이언트-서버 구조를 도시한 개략도이다.
도 2는 피어 투 피어 구조를 도시한 개략도이다.
도 3은 본 발명의 실시예에 따른 게임 서버 시스템을 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 네트워크 설정부의 구성을 도시한 블록도이다.
도 5는 본 발명의 실시예에 따른 슈퍼 피어 구조를 도시한 개략도이다.
도 6은 본 발명의 실시예에 따른 게임 네트워크 구성 방법을 도시한 흐름도이다.
도 7은 본 발명의 실시예에 따른 슈퍼 피어 네트워크 구성 방법에 있어서, 신호 흐름을 도시한 도면이다.
본 발명은 온라인 게임에 있어서, 클라이언트 사이에서 출력되는 게임 플레이 데이터를 보정하는 시스템 및 방법에 관한 것이다.
더욱 상세하게는, 온라인 게임에 있어서, 클라이언트 시스템 사이에서 발생하는 지연에 의하여 발생하는 게임 플레이 데이터의 끊김이나, 워프(warp), 저크(jerk)등의 문제를 해결하여, 유연한 게임 플레이 데이터를 출력하는 시스템 및 방법에 관한 것이다.
온라인 게임은 다수의 사용자가 유무선 통신이나 인터넷을 통해 서버나 다른 컴퓨터에 접속하여 즐기는 게임이다. 네트워크로 연결된 컴퓨터는 지연과 대역폭이라는 한계적 특성이 수반되며, 이러한 네트워킹 기술은 원하는 게임을 적절한 품질로 제공하는 것을 목적으로 하고 있다.
온라인 게임의 네트워크 기술(또는 서버 기술)은, 게임의 특성에 따라, 또는 장치의 환경에 따라 피어 투 피어(Peer to Peer) 또는 클라이언트-서버 구조로 구분된다. 최적의 네트워크 성능을 유지하기 위해서는 플레이어의 수, 플레이어가 참여하는 방법등에 따라 적절한 구조를 선택해야 한다.
도 1은 클라이언트-서버 구조를 도시한 개략도이다.
클라이언트-서버 구조는 적어도 한대 이상의 서버(100)에 복수의 클라이언트(201, 202, 203)가 접속하여 게임을 진행한다. 클라이언트는 플레이어의 입력을 받아 서버로 전송하고 클라이언트로부터 오는 입력을 받아 입력에 해당하는 처리를 한 후 그 결과를 모든 클라이언트에 제공한다.
이러한 클라이언트-서버 구조는 다수의 클라이언트수가 접속을 제공하고, 게 임공간의 영역분할, 진행 동기화, 게임 로직 갱신등이 용이하지만, 하나의 서버에 클라이언트가 너무 많이 접속 하는 경우에는 많은 부하로 인해 처리가 늦어지는 문제점이 존재한다.
또한, 여기서, 클라이언트(201, 202, 203)사이에는 실제적으로 데이터가 송수신되지 않고, 서버(100)가 데이터를 각각의 클라이언트에게 릴레이하는 구성을 취하기 때문에 플레이어의 즉각적인 컨트롤에 의해 게임의 승패가 좌우되는 액션형 게임에는 지연을 발생시키는 문제점이 존재한다.
도 2는 피어 투 피어 구조를 도시한 개략도이다.
피어 투 피어 구조는 모든 컴퓨터가 동일한 권한을 가지는 평등 구조로 클라이언트는 모든 입력 정보를 호스트를 포함한 모든 컴퓨터 전송한다. 플레이어는 네트워크 상에서 상대방을 찾아 두 플레이어가 연결되며 다른 컴퓨터의 도움없이 게임을 진행한다.
이때, 게임 플레이어들은 게임을 제공하는 게임서버내의 채널 서버에서 같은 채널에서 게임방을 형성하고, 게임방이 형성되면, 피어 투 피어의 네트워크를 구성하게 된다. 이러한 피어 투 피어의 구조는 모든 컴퓨터가 호스트의 기능을 수행하며, 다른 클라이언트에 직접적인 게임 데이터 전송이 가능하여, 원활한 게임 운영이 가능한 장점이 있다. 그러나, 이러한 피어 투 피어 방식에서는 참가자수의 제한이 있으며, 클라이언트중 하나라도 원하는 성능에 미치지 못하면 전체 게임의 랙이 발생하는 문제점이 존재한다.
또한, 클라이언트의 IP 주소가 가상 IP의 경우에는 피어 투 피어 방식의 게 임 네트워크 구성이 불가능하므로 게임 서비스 업체 입장에서는 게임 채널에 참여하는 플레이어에 대해 인스턴트 형식의 게임방 제공이 불가능한 문제점이 존재한다.
따라서, 고속 데이터 전송 및 응답이 필요한 액션 온라인 게임경우에는, 사용자의 시스템 환경을 고려하여 최적의 게임상태를 제공하는 네트워크 구성 방법이 필요하다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위하여, 사용자 시스템의 성능에 따라 동적인 네트워크 구성하는 시스템 및 방법을 제공한다.
더욱 상세하게는, 본 발명은 사용자의 클라이언트 시스템 환경을 검색하여, 릴레이 서버 시스템, 슈퍼 피어 구조, 피어 투 피어 구조를 동적으로 제공하는 시스템 및 방법을 제공한다.
전술한 본 과제를 해결하기 위하여, 본 발명의 특징에 따른 게임 네트워크 구성 방법은, a) 동일한 게임에 참여한 클라이언트 시스템들이 가상 IP 어드레스를 사용하는지를 검색하는 단계; b) 검색 결과, 가상 IP 어드레스를 사용하지 않는 경우에는 각각의 클라이언트 시스템에 관한 성능 정보를 수신하는 단계; c) 상기 수신된 클라이언트 시스템의 성능정보에 기초하여, 상기 게임 네트워크를 피어 투 피어 방식 또는 슈퍼 피어 방식중 하나로 결정하는 단계를 포함한다.
여기서, 상기 c) 단계는, 상기 성능 정보를 수치화한 성능 지수로 산출하여, 게임에 참여한 모든 클라이언트가 미리 정해진 임계치 이상인 경우에는 피어 투 피어 방식으로 결정한다.
또한, 상기 c) 단계는, 상기 성능 정보를 수치화한 성능 지수로 산출하여, 게임에 참여한 클라이언트중 가장 높은 성능 지수를 가진 클라이언트 시스템을 슈퍼 피어로 결정하여, 다른 클라이언트의 게임 플레이 정보를 중개 및 관리하는 역할을 부여한다.
본 발명의 특징에 따른 게임 네트워크 제공 시스템은, 상기 클라이언트 시스템과 통신을 수행하는 인터페이스 서버; 게임에 참여하는 클라이언트 시스템이 대기하는 채널을 제공하는 채널 서버; 게임 프로그램 및 게임 관련 정보를 저장하는 게임 데이터베이스 서버 및 클라이언트 시스템의 가상 IP 사용 여부와 클라이언트 시스템의 성능 정보에 기초하여, 서버-클라이언트 방식, 피어 투 피어 방식, 슈퍼 피어 방식을 동적으로 결정하는 네트워크 설정부를 포함한다.
여기서, 상기 네트워크 설정부는, 동일 게임에 참여한 클라이언트 시스템의 성능을 측정하는 클라이언트 성능 측정모듈; 상기 클라이언트 성능 측정 모듈에서 측정된 클라이언트 성능 정보에 가장 우수한 클라이언트를 슈퍼 피어로서 결정하는 슈퍼 피어 결정부; 및 상기 슈퍼 피어로 결정된 클라이언트의 식별정보를 상기 클라이언트 시스템들에게 통보하는 슈퍼 피어 통보부를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여 기에서 설명하는 실시예에 한정되지 않는다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
이제 본 발명의 실시예에 따른 네트워크 구성 방법 및 시스템에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 3는 본 발명의 실시예에 따른 게임 서버 시스템을 도시한 블록도이다.
본 발명의 게임 서버 시스템은, 인터페이스 서버(110), 게임 데이터베이스 서버(120), 평가 서버(130), 채널 서버(140), 인증 서버(150), 네트워크 설정부(300) 및 릴레이 서버(170)를 포함한다.
인터페이스 서버(110)는 클라이언트 시스템(100)과 접속을 수행한다. 상기 인터페이스 서버(110)를 통해 IP 기반으로 접속한 클라이언트(200)는 인증 서버(150)에서 사용자 인증을 하여, 클라이언트 사용자의 식별을 수행한다.
또한, 상기 인터페이스 서버(110)를 통해 이후 설명할 슈퍼 피어 클라이언트는 게임 서버 시스템과 통신을 수행한다.
게임 데이터베이스 서버(120)는, 게임에 관련된 정보를 저장하다. 게임에 관한 정보는 클라이언트 시스템(200)에 설치할 게임 프로그램과 패치파일을 포함한다. 또한, 게임 데이터베이스 서버는 게임서버에서 운영할 게임에 관한 데이터 및 클라이언트 사용자에 의해 생성된 게임 데이터를 보관한다. 본 발명의 실시예에서와 같이 고속의 액션 게임의 경우에는 가급적 관련 게임 관련 오브젝트는 클라이언 트 시스템에 모두 다운로드 해주고 게임 운영중에 발생하는 패킷 정보만을 서로 교환함으로써 신속한 게임 운영을 제공하는 것이 바람직하다.
채널서버(140)는, 클라이언트 사용자가 선택할 수 있는 복수의 게임 채널을 제공하거나, 플레이어의 등급 또는 레벨에 따라 복수의 채널을 제공하게 된다. 동일한 채널에 입장한 플레이어는 게임방이라는 플레이어의 그룹을 생성할 수 있으며, 상기 게임방내에 입장한 복수의 플레이어는 향후 본 발명의 실시예에 따라서 네트워크를 구성하게 된다.
평가 서버(130)는, 게임에서 발생한 기록 데이터와 랭킹 데이터등을 수집하여 관리한다. 본 발명의 실시예에서는, 다수의 플레이어들을 위한 네트워크가 형성된 후, 하나의 게임이 종료하면 관련데이터를 평가 서버(130)가 수집하고, 수집된 데이터는 향후 채널서버(140) 또는 게임 DB 서버(120)에서 활용하게 된다.
네트워크 설정부(300)는 본 발명의 실시예에 따라서, 접속한 클라이언트 시스템의 환경을 고려하여, 릴레이 서버 구조, 슈퍼 피어 구조, 피어 투 피어 구조로 게임 네트워크를 구성한다. 네트워크 설정부가 전술한 게임 네트워크를 구성하는 구체적인 방법은 후술한다.
릴레이 서버(170)는, 네트워크 설정부(300)에 의해 릴레이 서버 구조로 네트워크가 설정된 경우에는, 각 게임방에 대해 하나의 릴레이 서버가 할당되어진다. 본 발명의 실시예에서는 게임 운영에 있어서 발생하는 패킷은 상기 릴레이 서버(170)를 통하여 클라이언트 시스템에 분배된다.
도 4는 본 발명의 실시예에 따른 네트워크 설정부의 구성을 도시한 블록도이 다.
네트워크 설정부(300)는, 가상 IP 검출모듈(310), 클라이언트 성능 측정 모듈(320), 슈퍼 피어 결정부(330), 슈퍼 피어 통보부(340), 릴레이 서버 할당 모듈(350), 피어 정보 전송부(360)를 포함한다.
가상 IP 검출 모듈은 채널서버에서 동일한 게임방에 입장한 클라이언트중에서 가상 IP를 사용하는 클라이언트를 검출하게 된다. 가상 IP는 공인 IP 주소가 아닌 IP 공유기등에 의해 형성된 IP 어드레스를 의미한다. 상기 가상 IP는 IP 어드레스를 통하여 해당 클라이언트에 접속을 수행할 수 없기 때문에, 슈퍼 피어 구조 또는 피어 투 피어 구조의 네트워크를 형성할 수 없다. 가상 IP 검출 모듈은 게임 서버 시스템(100)에 접속한 클라이언트에 접속을 시도하여, 접속응답을 받지 못한 클라이언트를 검출하면, 가상 IP 어드레스 사용을 용이하게 검출할 수 있다.
릴레이 서버 할당 모듈(350)는, 가상 IP를 사용하는 클라이언트가 존재하는 경우, 게임 플레이에서 발생하는 패킷을 릴레이할 릴레이 서버를 할당하게 된다. 릴레이 서버가 할당되면, 게임 네트워크는 전술한 서버-클라이언트 구조로 형성된다.
클라이언트 성능 측정 모듈(320)은, 가상 IP를 사용하지 않는 클라이언트의 성능을 측정한다. 성능 측정의 구체적인 방법은 클라이언트에 에이전트 프로그램이나 액티브 X 형식의 프로그램을 설치하여 CPU 정보, RAM 용량, 그래픽 카드, 가상 메모리, 지연(핑)등의 정보를 수집한다. 여기서, 클라이언트의 성능에 관한 정보는 다이렉트 X의 dxdiag 명령등에 의해 발생하는 로그 파일을 이용하여 생성될 수도 있다.
클라이언트 성능 측정 모듈(320)은, 측정된 클라이언트 성능의 정보를 수치화 또는 등급화하여 클라이언트 성능에 관한 일관된 평가 기준을 생성할 수 있다.
슈퍼 피어 결정부(330)는, 클라이언트 성능 측정 모듈(320)에서 측정된 클라이언트 성능 정보에 기초하여 슈퍼 피어 구조의 슈퍼 피어에 해당하는 클라이언트 장치를 결정한다. 슈퍼 피어는 클라이언트 시스템에서 호스트 또는 서버의 역할을 하는 클라이언트로서 전술한 과정을 통해 측정된 클라이언트의 성능 지표가 가장 높은 클라이언트로 결정된다. 이미 설명한 바와 같이, 여기서 슈퍼 피어 구조를 사용하는 클라이어트들은 가상 IP를 사용하지 않는 클라이언트들이다.
슈퍼 피어 통보부(340)는, 결정된 슈퍼 피어에 대한 정보를 게임방에 입장한 클라이언트에 전송한다. 여기서 슈퍼 피어로 결정된 IP 어드레스를 전송하는데, 클라이언트는 전송된 IP 어드레스가 자신의 IP 어드레스와 일치하면 자신을 슈퍼 피어로 설정하게 되고, 자신의 IP 어드레스와 다른 경우에는 게임 플레이중 발생하는 패킷을 모두 통보된 IP 어드레스로 전송하게 된다.
한편, 클라이언트 성능 측정 모듈(320)에서, 모든 클라이언트가 호스트로서 동작할 정도의 성능을 가지고 있는 것으로 판단되면, 피어 정보 전송부(360)는, 게임방에 입장한 클라이언트들을 피어 투 피어의 형태의 네트워크로 형성하고, 피어들에 관한 정보를 전송하게 된다.
클라이언트 성능 측정 모듈(320)에서 측정된 클라이언트 시스템의 성능이 슈퍼 피어로서 갖춰야할 절대적 기준치에서 부족한 경우에는 릴레이 서버 할당 모듈 (350)이 릴레이 서버를 할당하여 서버-클라이언트 구조의 네트워크를 형성할 수도 있다.
도 5는 본 발명의 실시예에 따른 슈퍼 피어 구조를 도시한 개략도이다.
슈퍼 피어 구조는 클라이언트 시스템중 가장 성능이 좋은 클라이언트(200A)를 슈퍼 피어로서 선정하여, 슈퍼 피어가 게임 플레이중 발생하는 패킷을 다른 클라이언트에게 중개해준다. 또한, 슈퍼 피어는 게임의 시작, 종료, 스코어 등을 관리하여, 게임 서버 시스템(100)에 통보하게 된다.
전술한 바와 같이, 슈퍼 피어로서 선정된 클라이언트의 IP 어드레스(IP A)는 모든 클라이언트 시스템에 브로드 캐스팅되고, 슈퍼 피어가 아닌 클라이언트들은 게임 플레이중 발생한 패킷을 IP A를 목적지로 하여 전송한다.
실시간의 이벤트가 발생하는 액션 게임의 경우에는 모든 클라이언트들의 동기가 발생하도록 게임 플레이 패킷을 공유하여야 하기 때문에, 슈퍼 피어는 수신된 게임 플레이 패킷을 자신을 비롯한 소스가 아닌 다른 클라이언트들에게 모두 전송한다.
또한, 슈퍼 피어는 피어중의 하나로서 자신이 발생시킨 패킷 역시 다른 클라이언트에 전송한다.
즉, 슈퍼 피어는 네트워크를 구성하는 다른 피어에 관한 IP 주소를 모두 가지고 있으며, 다른 피어들은 단지 자신이 발생시킨 게임 플레이 패킷을 모두 슈퍼 피어의 IP 어드레스(IP A)로 전송하기만 하면 된다.
슈퍼 피어는 전송된 게임 플레이 패킷에 대해서, 전송주체가 아닌 모든 클라 이언트에 전송한다. 또한, 슈퍼 피어 자신 역시 게임 클라이언트 중의 하나이므로 슈퍼 피어 자신이 발생시킨 게임 플레이 패킷을 모든 게임 클라이언트에 전송한다.
따라서, 슈퍼 피어에 해당하는 클라이언트는 게임 패킷을 중개하게 되고, 다른 클라이언트들은 단지 자신이 발생시킨 게임 플레이 패킷을 슈퍼 피어로 전송하거나, 슈퍼 피어로부터 전송되어온 게임 플레이 패킷을 자신의 클라이언트 프로그램에 적용하기만 하면된다.
한편, 클라이언트 시스템이 호스트로서 기능하는 슈퍼 피어 구조를 구현하기 위해서, 본 발명의 실시예에서 사용되는 클라이언트에 설치된 게임 프로그램은 게임에 사용되는 오브젝트, 맵, 게임 알고리즘 모두를 저장하고 있으며, 게임 플레이시에는 오브젝트의 이동 좌표등의 적은 용량의 오브젝트 제어 정보만을 교환하여 신속한 게임을 운영하게 된다.
전술한 슈퍼 피어 구조는 앞서 설명한 서버-클라이언트 구조에 비해 부하와 필요 대역폭이 적기 때문에 처리 속도가 빠르므로, 고속 응답을 요구하는 액션게임등에서도 효과적으로 사용될 수 있다.
도 6은 본 발명의 실시예에 따른 게임 네트워크 구성 방법을 도시한 흐름도이다.
우선 사용자가 게임 서버에 접속하면, 게임 서버는 저장해둔 사용자 정보를 이용하여 사용자를 인증하고 인증된 사용자에 관련된 게임 정보를 불러온다(S110).
상기 게임 정보에 포함된, 레벨, 등급 정보 등에 따라서, 또는 클라이언트 시스템의 요청에 따라 게임 채널이 선택되면, 접속을 수행한 사용자의 클라이언트 는 선택된 채널 서버에 접속하여 대기하게 된다(S120). 동일한 채널 서버에 접속한 사용자들에 의해 하나의 게임을 수행할 플레이어들이 입장할 수 있는 게임방이 형성된다.
한편, 플레이어들이 모두 모이고 게임 시작 준비가 완료되면, 게임 서버 시스템의 네트워크 설정부는 슈퍼 피어 방식 또는 피어 투 피어 방식의 지원이 가능하지 여부를 체크하기 위하여, 동일 게임의 플레이어중 가상 IP를 사용하는 클라이언트가 없는지 확인한다(S130, S140). 여기서, 가상 IP를 체크하는 이유는 가상 IP를 사용하는 클라이언트는 다른 클라이언트가 직접 접속할 수 없기 때문이다.
만약 플레이어의 클라이언트중에서 가상 IP를 사용하는 클라이언트가 있는 경우에는 네트워크 설정부는 릴레이 서버를 할당하여, 릴레이 서버를 이용한 네트워크를 형성한다(S200). 릴레이 서버는 어떤 클라이언트가 게임 플레이중 발생시키는 패킷을 다른 클라이언트에게 전달하는 기능을 수행하게 된다.
만약, 가상 IP를 사용하는 클라이언트가 없는 경우에는 네트워크 설정부는, 플레이어의 클라이언트의 성능을 측정하고, 이를 성능지수화하여 산출한다(S150). 클라이언트의 성능은 CPU 정보, RAM 용량, 그래픽 카드, 가상 메모리, 지연(핑)등을 그 대상으로 하여, 측정할 수 있으며, 각각의 항목에 대한 성능을 등급화하여 성능지수를 산출할 수 있다. 여기서 각 항목은 게임의 성격에 따라, CPU 성능, 지연등에 가중치를 부여하여 성능지수를 산출할 수 있다.
단계(S160)에서는, 모든 클라이언트 시스템의 상기 성능 지수가 임계치를 넘는지를 판단한다. 상기 임계치는 각각의 클라이언트 시스템이 호스트로 동작할 수 있는지, 즉 피어 투 피어 네트워크 구성이 가능한지 성능 지수를 측정한다.
여기서, 모든 클라이언트가 소정 임계치를 넘는 성능을 가지는 경우에는, 네트워크 설정부는 피어 투 피어 게임 네트워크를 형성한다(S161).
만약, 피어 투 피어 구조의 네트워킹이 불가능한 경우에는, 게임방에 입장한 클라이언트중에서 가장 성능이 좋은 클라이언트 시스템을 선정한다(S170).
상기 임계치를 넘는 클라이언트중에서 가장 높은 성능 지수를 갖는 클라이언트는 슈퍼 피어로서 선정된다(S171). 슈퍼 피어로서 선정된 클라이언트 시스템은 전술한 릴레이 서버처럼, 다른 클라이언트의 게임 플레이 패킷을 중개해주고, 게임 진행을 관리하게 된다.
한편, 가장 높은 성능 지수를 갖는 클라이언트가 미리 정해진 슈퍼 피어로서의 능력을 갖추지 못한 것으로 판단되면, 네트워크 설정부는 릴레이 서버를 할당하여 네트워크를 구성할 수도 있다.
도 7은 본 발명의 실시예에 따른 슈퍼 피어 네트워크 구성 방법에 있어서, 신호 흐름을 도시한 도면이다.
게임 서버 시스템은 클라이언트 시스템이 가상 IP 어드레스를 사용하는지를 확인하기 위하여 클라이언트 IP 어드레스로 접속 시도를 수행한다(S300). 여기서 , 가상 IP는 IP 공유기등에 의해 생성된 사설 IP 등을 포함하며, 이러한 가상 IP 어드레스는 다른 클라이언트가 접속을 수행할 수 없어, 피어 투 피어 구조나 슈퍼 피어 구조를 구현할 수 없다.
단계(S300)에서, 접속 시도에 대한 응답이 없는 경우에는 게임 서버 시스템 은 릴레이 서버를 이용한 서버-클라이언트 구조로 네트워크 구성 작업을 이행한다.
한편, 접속 시도 신호를 수신한 클라이언트 시스템은 접속 시도에 대한 응답을 수행하고, 게임 서버 시스템은 접속 시도에 대한 응답을 접수하면 실질적인 클라이언트와의 접속을 수행하는 것은 아니며, 단지 가상 IP 사용자가 아니란 것만을 확인한다(S310, S320).
가상 IP 사용자가 아닌 것으로 확인되면, 클라이언트 시스템 즉 컴퓨터의 성능 정보를 요청한다(S330). 상기 요청은 클라이언트 사용자의 승인을 통해 다시 게임 서버 시스템에 제공된다(S340). 컴퓨터의 성능은 운영체제 하드웨어 관리자나 다이렉트 X 의 로그 기록에 의해 제공될 수 있으며, 게임 서버 시스템이 제공한 Active X 프로그램을 사용자가 설치함에 의해 생성 및 전송될 수 있다.
상기 클라이언트 컴퓨터의 성능 정보가 접수되면, 게임 서버 시스템은 각 항목별로 컴퓨터 성능을 수치화한 클라이언트 성능 지수를 산출한다(S360). 상기 성능 지수는 CPU 처리 속도, RAM, 가상 메모리, 그래픽 처리 성능, 지연 처리 성능등의 대한 항목을 등급화하여 수치화한 후 이를 종합하는 방법으로 산출될 수 있다. 여기서 각 항목은 게임의 성격에 따라서 추가, 누락될 수 있으며, 가중치를 더 부여할 수 있다.
여기서, 상기 성능 지수를 이용하여 피어 투 피어, 슈퍼 피어 방식을 선택할 수 있다. 각각의 네트워킹 구조를 선택하는 성능 지수의 임계치는 다르게 적용될 수 있다. 다만, 피어 투 피어의 경우에는 모든 클라이언트의 성능 지수가 미리 정해진 임계치를 넘어야 한다.
여기서, 슈퍼 피어 구조로 네트워크를 구성하는 것으로 결정된 경우에는 가장 높은 성능 지수를 가진 클라이언트 시스템을 슈퍼 피어로서 선택한다(S360).
게임 서버 시스템의 네트워크 설정부는 슈퍼 피어 클라이언트가 선택되면, 슈퍼 피어의 네트워크 구성을 통보하면서 슈퍼 피어에 대응하는 클라이언트 IP 주소를 모든 클라이언트에 전송한다(S370).
한편, 슈퍼 피어 네트워크에 속하는 클라이언트는 전송되어온 IP 주소를 자신의 IP 주소와 비교하여, 동일한 경우 자신이 슈퍼 피어로서 인식하고, 자신의 IP 주소와 상이한 경우에는 전송되어온 IP 주소를 슈퍼 피어로서 게임 플레이 패킷을 전송하게 된다(S390, S400).
슈퍼 피어로서 선택된 클라이언트는 게임방에 속한 클라이언트들의 게임 플레이의 시작, 종료, 및 게임 플레이 패킷을 중개하게 된다. 또한, 게임 종료 시에 플레이중 발생한 데이터를 게임 서버 시스템에 전송하거나, 게임 서버 시스템으로부터 게임 관련 정보를 수신하게 된다.
한편, 클라이언트 시스템의 동작은 게임을 수행하는 게임 클라이언트 프로그램에 네트워킹 모듈에 의해 동작하게 된다. 고속의 액션 게임을 제공하기 위하여, 게임내 등장하는 맵, 캐릭터, NPC, 건물등의 오브젝트는 클라이언트가 모두 저장하고 있는 것이 바람직하며, 플레이중 클라이언트간에는 데이터는 상기 오브젝트의 이동 및 제어 명령만이 교환되는 것이 바람직하다.
도 7에 도시된 클라이언트 시스템의 동작은 그 기능을 구현하는 프로그램이 컴퓨터가 읽기 가능한 기록 매체에 저장되어, 상기 게임 서버 시스템과 연동하여 동작하게 된다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
전술한 본 발명의 구성에 의하여, 본 발명은 사용자의 클라이언트 시스템 환경을 검색하여, 릴레이 서버 시스템, 슈퍼 피어 구조, 피어 투 피어 구조를 동적으로 제공하는 시스템 및 방법을 제공한다.
또한, 본 발명의 구성에 의하면, 고속의 데이터 교환이 필요한 액션 게임에 있어서, 피어 투 피어, 슈퍼 피어, 릴레이 서버- 클라이언트 구조를 게임 처리 속도가 빠른 우선순위로 제공할 수 있는 효과를 구비한다.
특히, 본 발명의 구성에 의하면, 하나의 클라이언트만이 호스트의 성능을 구비하는 경우에는 슈퍼 피어로서 지정하여, 효율적인 게임 서비스를 제공할 수 있다.

Claims (16)

  1. 클라이언트 시스템과 통신을 수행하며 게임에 참여하는 복수의 클라이언트 시스템에 동적인 게임 네트워크를 제공하는 게임 네트워크 제공 시스템이, 게임 네트워크를 구성하는 방법에 있어서,
    a) 상기 게임 네트워크 제공 시스템이, 동일한 게임에 참여한 클라이언트 시스템들이 가상 IP 어드레스를 사용하는지를 검색하는 단계;
    b) 상기 게임 네트워크 제공 시스템이, 검색 결과 가상 IP 어드레스를 사용하지 않는 경우에는 각각의 클라이언트 시스템에 관한 성능 정보를 수신하는 단계;
    c) 상기 게임 네트워크 제공 시스템이, 상기 수신된 클라이언트 시스템의 성능정보에 기초하여, 상기 게임 네트워크를 피어 투 피어 방식 또는 슈퍼 피어 방식중 하나로 결정하는 단계
    를 포함하는 게임 네트워크 구성 방법.
  2. 제 1 항에 있어서,
    상기 c) 단계는, 상기 게임 네트워크 제공 시스템이, 상기 성능 정보를 수치화한 성능 지수로 산출하여, 게임에 참여한 모든 클라이언트가 미리 정해진 임계치 이상인 경우에는 피어 투 피어 방식으로 결정하는 게임 네트워크 구성 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 c) 단계는, 상기 게임 네트워크 제공 시스템이, 상기 성능 정보를 수치화한 성능 지수로 산출하여, 게임에 참여한 클라이언트중 가장 높은 성능 지수를 가진 클라이언트 시스템을 슈퍼 피어로 결정하여, 다른 클라이언트의 게임 플레이 정보를 중개 및 관리하는 역할을 부여하는 게임 네트워크 구성 방법.
  4. 제 1 항에 있어서,
    상기 a) 단계는, 상기 게임 네트워크 제공 시스템이, 동일한 게임에 참여한 클라이언트 시스템에 접속 시도를 수행하고, 상기 접속 시도가 불가능한 클라이언트 시스템이 가상 IP 어드레스를 사용하는 것으로 판단하는 게임 네트워크 구성 방법.
  5. 제 4 항에 있어서,
    d) 상기 게임 네트워크 제공 시스템이, 게임에 참여한 클라이언트중 가상 IP 어드레스가 존재하는 경우에는, 게임 플레이 정보를 상기 클라이언트들에게 중개하는 릴레이 서버를 할당하는 단계를 더 포함하는 게임 네트워크 구성 방법.
  6. 제 3 항에 있어서,
    e) 상기 게임 네트워크 제공 시스템이, 상기 슈퍼 피어로 결정된 클라이언트의 IP 주소를 모든 클라이언트로 전송하여, 클라이언트가 슈퍼 피어 결정 여부의 확인을 제공하는 단계를 더 포함하는 게임 네트워크 구성 방법.
  7. 제 6 항에 있어서,
    게임에 참여한 클라이언트중에서, 상기 슈퍼 피어가 아닌 클라이언트 시스템 은 게임 플레이 정보를 상기 슈퍼 피어에 대응하는 IP 주소로 전송하는 게임 네트워크 구성 방법.
  8. 게임에 참여하는 복수의 클라이언트 시스템에 동적인 게임 네트워크를 제공하는 시스템에 있어서,
    상기 클라이언트 시스템과 통신을 수행하는 인터페이스 서버;
    게임에 참여하는 클라이언트 시스템이 대기하는 채널을 제공하는 채널 서버;
    게임 프로그램 및 게임 관련 정보를 저장하는 게임 데이터베이스 서버 및
    클라이언트 시스템의 가상 IP 사용 여부와 클라이언트 시스템의 성능 정보에 기초하여, 서버-클라이언트 방식, 피어 투 피어 방식, 슈퍼 피어 방식을 동적으로 결정하는 네트워크 설정부를 포함하는 게임 네트워크 제공 시스템.
  9. 제 8 항에 있어서,
    게임 플레이 데이터를 중개하는 릴레이 서버를 더 포함하고,
    상기 네트워크 설정부는,
    동일 게임에 참여한 클라이언트 시스템중 가상 IP를 사용하는지를 검색하는 가상 IP 검출 모듈;
    상기 가상 IP를 사용하는 클라이언트 시스템이 존재하는 경우에는, 상기 릴레이 서버를 할당하여, 릴레이 서버-클라이언트 방식의 네트워크를 형성하는 릴레이 서버 할당 모듈을 포함하는 게임 네트워크 제공 시스템.
  10. 제 9 항에 있어서,
    상기 가상 IP 검출 모듈은 상기 클라이언트에 접속 시도를 수행하여, 접속 가능여부에 따라 가상 IP 어드레스 사용 여부를 판단하는 게임 네트워크 제공 시스템.
  11. 제 8 항에 있어서,
    상기 네트워크 설정부는,
    동일 게임에 참여한 클라이언트 시스템의 성능을 측정하는 클라이언트 성능 측정모듈;
    상기 클라이언트 성능 측정 모듈에서 측정된 클라이언트 성능 정보중에서 가장 우수한 클라이언트를 슈퍼 피어로서 결정하는 슈퍼 피어 결정부; 및
    상기 슈퍼 피어로 결정된 클라이언트의 식별정보를 상기 클라이언트 시스템들에게 통보하는 슈퍼 피어 통보부를 포함하는 게임 네트워크 제공 시스템.
  12. 제 11 항에 있어서,
    상기 네트워크 설정부는,
    상기 클라이언트 성능 측정부가 측정한 모든 클라이언트 성능 정보가 미리 정해진 임계치보다 높은 경우, 피어 투 피어 네트워크를 구성하기 위하여, 상기 클라이언트 시스템에게 각각의 피어 정보를 전송하는 피어 정보 전송부를 더 포함하 는 게임 네트워크 제공 시스템.
  13. 제 11 항 또는 제 12 항에 있어서,
    상기 클라이언트 성능 정보는 CPU 정보, RAM, 가상 메모리 용량, 그래픽 처리 성능 정보, 지연처리 성능 정보중 적어도 하나를 포함하고,
    상기 클라이언트 성능 측정 모듈은, 성능에 관한 각각의 항목을 등급에 따라 수치화한 성능 지수로서 산출하는 게임 네트워크 제공 시스템.
  14. 동적인 게임 네트워크를 구성하는 프로그램이 기록된 컴퓨터가 읽기 가능한 기록 매체에 있어서,
    게임 서버 시스템의 요청에 따라, 클라이언트 시스템의 성능 정보를 제공하는 기능;
    상기 성능정보에 응답하여 상기 게임 서버 시스템이 전송한 제 1 IP 어드레스를 수신하는 기능;
    상기 전송된 제 1 IP 어드레스를 자신의 IP 어드레스와 비교하는 기능;
    상기 전송된 제 1 IP 어드레스와 일치하는 경우 자신을 슈퍼 피어로서 설정하여, 게임 플레이 데이터를 중개 및 관리하는 기능; 및
    상기 전송된 제 1 IP 어드레스와 일치하지 않는 경우, 상기 전송된 IP 어드레스로 게임 플레이 데이터를 전송하는 기능을 포함하는 프로그램이 기록된 컴퓨터가 읽기 가능한 기록 매체.
  15. 제 14 항에 있어서,
    상기 슈퍼 피어로 설정된 경우, 게임 네트워크에 속한 제 2 클라이언트로부터 수신된 게임 플레이 데이터를 다른 모든 클라이언트로 전송하는 기능;
    상기 슈퍼 피어로 설정되지 않은 경우, 클라이언트에서 발생된 게임 플레이 데이터를 상기 제 1 IP 어드레스로 전송하는 기능을 더 포함하는 프로그램이 기록된 컴퓨터가 읽기 가능한 기록 매체.
  16. 제 14 항 또는 제 15 항에 있어서,
    게임 플레이에 필요한 오브젝트, 맵, 게임 알고리즘을 모두 저장한 상태에서 상기 오브젝트를 제어하는 패킷을 다른 클라이언트와 교환하는 프로그램이 기록된 컴퓨터가 읽기 가능한 기록 매체.
KR1020050070717A 2005-08-02 2005-08-02 게임 네트워크 제공 시스템, 방법 및 기록매체 KR100766777B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050070717A KR100766777B1 (ko) 2005-08-02 2005-08-02 게임 네트워크 제공 시스템, 방법 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050070717A KR100766777B1 (ko) 2005-08-02 2005-08-02 게임 네트워크 제공 시스템, 방법 및 기록매체

Publications (2)

Publication Number Publication Date
KR20070015991A KR20070015991A (ko) 2007-02-07
KR100766777B1 true KR100766777B1 (ko) 2007-10-17

Family

ID=41632579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050070717A KR100766777B1 (ko) 2005-08-02 2005-08-02 게임 네트워크 제공 시스템, 방법 및 기록매체

Country Status (1)

Country Link
KR (1) KR100766777B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229162B1 (ko) * 2011-02-14 2013-02-01 주식회사 케이티 온라인 게임 제어 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030006183A (ko) * 2001-07-12 2003-01-23 아이써프 주식회사 서버-클라이언트/피어-투-피어 방식을 병용하는 네트워크게임시스템
KR20040054817A (ko) * 2002-05-13 2004-06-25 소니 컴퓨터 엔터테인먼트 아메리카 인코포레이티드 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030006183A (ko) * 2001-07-12 2003-01-23 아이써프 주식회사 서버-클라이언트/피어-투-피어 방식을 병용하는 네트워크게임시스템
KR20040054817A (ko) * 2002-05-13 2004-06-25 소니 컴퓨터 엔터테인먼트 아메리카 인코포레이티드 네트워크 주소가 변환되는 피어 투 피어 네트워크 통신

Also Published As

Publication number Publication date
KR20070015991A (ko) 2007-02-07

Similar Documents

Publication Publication Date Title
CN106656800B (zh) 一种路径选取方法及系统、网络加速节点及网络加速系统
US9450855B2 (en) Message routing mechanism for communication networks
US5894556A (en) Network match maker matching requesters based on communication attribute between the requesters
KR101005856B1 (ko) 전송 계층에서 트래픽을 분류하는 방법 및 장치
JP2020502684A (ja) リソース要求処理方法及び装置
CN113018871A (zh) 业务处理方法、装置及存储介质
Amiri et al. An SDN controller for delay and jitter reduction in cloud gaming
Wang et al. On design and performance of cloud-based distributed interactive applications
KR20120092880A (ko) 온라인 게임 제어 방법 및 시스템
JP2023508061A (ja) アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器
Schmieg et al. pSense-Maintaining a dynamic localized peer-to-peer structure for position based multicast in games
CN110652730A (zh) 对战匹配方法、装置及电子设备
KR100766777B1 (ko) 게임 네트워크 제공 시스템, 방법 및 기록매체
Barri et al. Distributing game instances in a hybrid client-server/P2P system to support MMORPG playability
US20070106774A1 (en) Computer system controlling bandwidth according to priority state
CN109981794B (zh) 基于区块链节点网络的处理方法、装置及电子设备
JP3897255B2 (ja) 情報通信方法、プログラム及びシステム
Yu et al. CBT: A proximity-aware peer clustering system in large-scale BitTorrent-like peer-to-peer networks
Webb et al. Secure referee selection for fair and responsive peer-to-peer gaming
CN104394952A (zh) 通信目的地判定装置、游戏系统、通信目的地判定方法、通信目的地判定程序
Milajerdi et al. A composite-metric based path selection technique for the Tor anonymity network
JP6383336B2 (ja) サーバ管理装置およびサーバ管理方法
KR20070016294A (ko) 클라이언트 시스템 사이의 게임 플레이 데이터 보정 시스템및 그 방법
KR20110000975A (ko) 다중 사용자의 온라인 대전 게임을 위한 분산 서버 시스템 및 그 관리 방법
Ta et al. Network-aware server placement for highly interactive distributed virtual environments

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20120928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13