KR100422096B1 - 온라인 게임의 데이터 처리시스템 및 그 처리방법 - Google Patents

온라인 게임의 데이터 처리시스템 및 그 처리방법 Download PDF

Info

Publication number
KR100422096B1
KR100422096B1 KR10-2000-0066530A KR20000066530A KR100422096B1 KR 100422096 B1 KR100422096 B1 KR 100422096B1 KR 20000066530 A KR20000066530 A KR 20000066530A KR 100422096 B1 KR100422096 B1 KR 100422096B1
Authority
KR
South Korea
Prior art keywords
game
data
subscriber
subscriber terminal
subscriber station
Prior art date
Application number
KR10-2000-0066530A
Other languages
English (en)
Other versions
KR20020036372A (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 KR10-2000-0066530A priority Critical patent/KR100422096B1/ko
Publication of KR20020036372A publication Critical patent/KR20020036372A/ko
Application granted granted Critical
Publication of KR100422096B1 publication Critical patent/KR100422096B1/ko

Links

Abstract

본 발명은 온라인 게임의 데이터 처리시스템 및 그 처리방법에 관한 것으로, 특정 방에 접속한 다수의 가입자단말기가 각각 게임서버역할을 수행할 수 있도록 하여 속도에 따른 문제점을 해결함과 동시에 게임서버가 각 가입자단말로부터 게임결과 데이터를 각각 전송받아 비교함으로써 게임결과 데이터에 대한 비교검증이 가능하도록 한 온라인 게임의 데이터 처리시스템 및 그 처리방법을 제공함에 그 목적이 있다.
본 발명은 데이터통신망을 매개로 실시간으로 온라인 게임을 실행할 수 있도록 된 온라인 게임시스템에 있어서, 그 내부에 다수의 게임데이터를 내장하고, 특정 가입자단말기로부터 게임참여요구에 대한 신호가 인가되면 해당 방의 IP 어드레스를 전송하며, 각 가입자단말기로부터 게임관련 데이터를 전송받아 처리하는 게임서버와; 상기 게임서버로부터 해당 게임에 대한 IP 어드레스를 부여받아 그 IP 어드레스를 상호 송수신하여 그 진위를 체크하며, 게임실행시 각종 게임데이터를 상호 송수신하며, 송수신된 게임 데이터를 각자 처리하고, 게임종료시 게임결과를 각각 상기 게임서버에 개별적으로 전송하는 적어도 하나이상의 가입자단말기로 구성된 것을 특징으로 한다.
본 발명을 적용하면, 각 가입자단말기간의 UDP 메시지를 상호 송수신 할 수 있도록 함으로써 각 가입자단말기가 각각 게임서버의 역할을 수행하므로 가입자단말기 자체의 속도차가 발생되더라도 공평한 게임이 이루어질 수 있으며, 특정 가입자가 게임을 종료하여도 지속적으로 게임을 수행할 수 있게 된다.
또한, 게임서버는 게임결과데이터를 게임에 참여한 모든 가입자단말기로부터 전송받으므로 특정 가입자단말기가 게임결과를 조작할 수 없게 되는 효과가 있다.

Description

온라인 게임의 데이터 처리시스템 및 그 처리방법{PROCESSING SYSTEM AND METHOD FOR PROCESSING ON-LINE GAME DATA}
본 발명은 온라인 게임의 데이터 처리시스템 및 그 처리방법에 관한 것으로, 보다 상세하게 적어도 하나이상의 가입자 단말간의 온라인 게임시 각각의 가입자 단말이 게임서버의 역할을 수행하여 각종 게임데이터를 처리할 수 있도록 한 온라인 게임의 데이터 처리시스템 및 그 처리방법에 관한 것이다.
주지된 바와 같이, 기존의 온라인 게임은 대부분 UDP(User Datagram Protocol) 방식을 사용하여 각종 데이터를 처리하게 되는 바, 상기 UDP는 TCP와 동일하게 IP상에서 수행되는 전송계층(Transport Layer) 프로토콜로서 비 열결성 데이터그램 서비스를 제공하는 것이다. 비연결성이란 즉, 신뢰성을 제공할 수 없는 데이터의 제공이므로 데이터그램의 도착여부를 보장할 수 없음은 물론 도착되는 패킷의 순서가 정확치 않을 수도 있다.
또한, 상기 UDP를 사용하기 위해서는 응용 프로그램 상에서 대상 프로그램의IP 주소와 포트번호를 제공해야 하는 바, 이때 포트는 보내는 메시지에 대한 위치가 되고, 다중 메시지 대기 열로서 동작하는 데 이는 한번에 여러 메시지를 받을 수 있음을 의미한다. 각 포트는 고유한 번호로 구별되므로 상기 UDP 포트중 TCP와 동일한 포트를 사용하더라도 TCP 포트와 구별된다.
이하, 기존의 UDP를 이용한 게임데이터 처리시스템에 대하여 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 종래의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 구성을 개략적으로 도시한 모식도이며, 도 2는 도 1의 UDP를 이용한 게임데이터 처리시스템의 구성을 도시한 블록구성도이다.
이를 참조하면, 상기한 UDP를 이용한 게임데이터의 처리시스템은 먼저 다수의 게임 처리 알고리즘 및 가입자 연계 및 그 게임결과를 처리하기 위한 알고리즘이 내장된 게임서버(30)가 구성되며, 동 게임 프로그램이 각 가입자의 내부에 저장된 다수의 가입자 단말기(10a-1∼10n-n)로 구성된다.
도 2의 가입자 단말기(10a)는 전체 가입자 단말기중 제 1군에 해당되는 가입자 단말기(10a-1∼10a-n)만을 한정하여 기술한다.
먼저, 상기 게임서버(30)는 그 내부에 상기 데이터통신망(20)을 매개하여 특정 데이터를 수신할 수 있게 된 공통게이트웨이 인터페이스(32, CGI: Common GateWay Interface)와, 각 단말기의 게임결과데이터를 저장하는 제 1∼제 N 게임결과 DB(34a∼34n)가 구비되며, 게임 알고리즘을 저장하는 게임DB(35)와, 가입자 신상데이터를 저장하는 가입자신상DB(36)와, 다수의 가입자단말기(10a)를 각각 연계시켜 게임을 실행할 수 있도록 각종 데이터처리를 행하는 제어모듈(30)로 구성된다.
상기 제어부(30)은 상기 가입자단말기(10a)로부터 방생성 요구신호 및 특정 게임요구신호를 인가받아 동게임의 진행을 요구하는 각 가입자를 동일한 방에 결합(Join)시키며, 특정 가입자단말기(예컨대, 10a-1)를 게임진행서버로 역할부여하여 전체 게임을 리드할 수 있도록 하며, 그 게임결과데이터를 상기 가입자단말기(10a-1)로부터 송신받아 처리한다.
또한, 상기 가입자단말기(10a)는 그 내부에 상기 데이터통신망(20)에 대한 통신접속을 위한 제 1∼제 N 가입자 통신모듈(100a∼100n)과, 게임 데이터의 처리를 위한 게임처리알고리즘(102a∼102n)과, 각종 게임 데이터를 저장시키기 위한 제 1∼제 N 가입자 DB(104a∼104n)과, 상기 가입자단말기(10a)의 내부에서 게임진행을 위한 각종 신호처리를 행하는 제 1∼제 N 가입자 제어모듈(106a∼106n)으로 구성된다.
도 3은 종래의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 데이터처리상태를 도시한 상태도이다.
먼저, 상기 데이터통신망(20)을 매개하여 상기 게임서버(30)에 특정 가입자단말기(예컨대, 제 1군 제 1가입자단말기: 10a-1)로부터 특정 온라인 게임의 선택신호 예컨대, 특정 게임에 대한 방생성 요구신호(①)가 인가되면 그 가입자(10a-1) 이전에 동일한 게임에 대한 대기자가 있는지를 판단한다. 만약 대기자가 없을 경우에는 상기 게임서버(30)는 게임선택을 요구한 상기 가입자단말기(10a-1)를 위한 방을 생성시키고(②), 상기 가입자단말기(10a-1)에 그 방의 게임서버 역할을 부여함과 동시에 다른 가입자가 억세스할 때까지 대기시킨다.
이때, 다른 가입자(예컨대, 제 2 가입자단말기: 10a-2)로부터 방정보 요청신호(③)가 인가되면 상기 게임서버(30)는 상기 데이터통신망(20)을 매개하여 다수의 방정보를 리턴시킨다.(④) 또한, 상기 제 2 가입자단말기(10a-2)로부터 방입장 요청신호(⑤)가 발생되면 상기 게임서버(30)는 해당 가입자 단말기(10a-2)로 해당 방의 IP 주소를 리턴시킨다.(⑥)
따라서, 상기 제 2 가입자단말기(10a-2)는 실제로 방의 내부에서 게임서버 역할을 수행하는 상기 제 1 가입자단말기(10a-1)로 부여받은 IP 어드레스를 전송하면서 입장요청신호(⑦)를 발생하면 상기 제 1 가입자단말기(10a-1)는 입장을 수락하게 된다.(⑧) 방의 입장이 수락된 상태에서는 상기 제 1 가입자단말기(10a-1)가 방의 게임서버역할을 수행하면서 상기 제 2 가입자단말기(10a-2)와의 사이에서 발생된 게임데이터를 처리하게 된다.
한편, 또 다른 단말기인 상기 제 3 가입자단말기(10a-3)의 경우도 동게임의 실행을 소망하는 경우에 상기 제 2 가입자단말기(10a-2)와 동일한 절차를 행하여야 한다.
그러나, 상기한 바와 같이 특정 가입자단말기(예컨대, 제 1가입자단말기: 10a-1)가 방의 게임진행서버역할을 수행하는 경우에는 상기 게임서버(30)와 다른 가입자단말기(예컨대, 제 2,3 가입자단말기: 10a-2, 10a-3)간의 연결이 끊어지게 되므로 상기 게임서버(30)의 부하가 적게 걸리는 장점이 있는 반면, 방의 게임진행서버역할을 부여받은 상기 제 1 가입자단말기(10a-1)는 게임진행시 다른 가입자단말기(10a-2, 10a-3)보다 속도면에서 월등히 유리하게 된다.
또한, 속도가 느린 가입자단말기의 경우 속도가 빠른 가입자단말기에 비해 게임진행 자체에서 매우 불리하게 된다.
더불어, 상기 게임서버(30)의 경우 상기 제 1 가입자단말기(10a-1)만 접속되어 데이터를 송수신하므로 상기 제 1 가입자단말기(10a-1)로부터 조작된 게임결과 데이터가 송신된 경우에는 그 데이터의 진위확인이 불가능하다는 문제가 있다.
한편, 무엇보다 치명적으로 방의 게임 진행서버역할을 수행하는 상기 제 1 가입자단말기(10a-1)가 게임을 종료하게 되면 다른 가입자단말기(10a-2, 10a-3)는 그 의사와 무관하게 게임이 종료되며, 다른 가입자단말기(10a-2, 10a-3)중 어느 한 단말기가 방의 새로운 게임서버역할을 수행하게 되므로 게임의 종료 또한 게임서버역할을 수행하는 특정 가입자단말기(10a-1)의 위주로 이루어져 다른 가입자가 매우 불리하다는 문제점이 있다.
본 발명은 상기한 종래 기술의 사정을 감안하여 이루어진 것으로, 특정 방에 접속한 다수의 가입자단말기가 각각 게임서버역할을 수행할 수 있도록 하여 속도에 따른 문제점을 해결함과 동시에 게임서버가 각 가입자단말로부터 게임결과 데이터를 각각 전송받아 비교함으로써 게임결과 데이터에 대한 비교검증이 가능하도록 한 온라인 게임의 데이터 처리시스템 및 그 처리방법을 제공함에 그 목적이 있다.
도 1은 종래의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 구성을 개략적으로 도시한 모식도,
도 2는 도 1의 UDP를 이용한 게임데이터 처리시스템의 구성을 도시한 블록구성도,
도 3은 종래의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 데이터처리상태를 도시한 상태도,
도 4는 본 발명의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 데이터처리상태를 도시한 상태도,
도 5는 본 발명에 따른 온라인 게임의 데이터 처리시스템에서 게임서버의 신호흐름을 도시한 플로우챠트,
도 6은 본 발명의 실시예에 따른 게임서버의 쓰레드를 나타내는 플로우챠트,
도 7은 본 발명의 실시예에 따른 가입자단말기의 신호처리를 나타내는 플로우챠트,
도 8은 본 발명의 실시예에 따른 UDP 싱크 처리루틴을 나타내는 플로우챠트
도 9는 본 발명의 실시예에 따른 각 가입자단말기간의 상호 메시지처리를 나탸내는 플로우챠트
*도면의 주요부분에 대한 부호의 설명*
10a∼10n:가입자단말기, 20:데이터통신망,
30:게임서버, 32:CGI,
34;게임결과DB, 35:게임DB,
36:가입자신상DB, 38:제어모듈.
상기한 목적을 달성하기 위해, 본 발명의 바람직한 실시예에 따르면 데이터통신망을 매개로 실시간으로 온라인 게임을 실행할 수 있도록 된 온라인 게임시스템에 있어서, 그 내부에 다수의 게임데이터를 내장하고, 특정 가입자단말기로부터 게임참여요구에 대한 신호가 인가되면 해당 방의 IP 어드레스를 전송하며, 각 가입자단말기로부터 게임관련 데이터를 전송받아 처리하는 게임서버와; 상기 게임서버로부터 해당 게임에 대한 IP 어드레스를 부여받아 그 IP 어드레스를 상호 송수신하여 그 진위를 체크하며, 게임실행시 각종 게임데이터를 상호 송수신하며, 송수신된 게임 데이터를 각자 처리하고, 게임종료시 게임결과를 각각 상기 게임서버에 개별적으로 전송하는 적어도 하나이상의 가입자단말기로 구성된 것을 특징으로 하는 온라인 게임의 데이터 처리시스템이 제공된다.
바람직하게, 상기 게임데이터는 게임진행시 각 게임의 프레임 갱신데이터 및 각 가입자단말기에서 처리되는 게임처리데이터, 게임종료시 상기 게임서버로 전송하기 위한 게임결과데이터인 것을 특징으로 한다.
한편, 본 발명에 따르면 온라인 게임을 실행하는 다수의 가입자단말과 게임서버로 이루어진 온라인 게임시스템의 데이터처리방법에 있어서, 게임서버의 데이터초기화 및 접속요구 가입자단말에 대한 게임준비과정과; 게임서버의 스레드(Thread)과정과; 각 가입자단말기의 다른 가입자단말기와 상기 게임서버에 대한 신호처리과정과; 각 가입자단말기의 UDP 동기화 처리과정과; 각 가입자단말기간의 상호 메시지처리과정으로 이루어져 각 가입자단말기간의 게임데이터 송수신으로 게임이 진행될 수 있도록 한 것을 특징으로 하는 온라인 게임의 데이터 처리방법이 제공된다.
바람직하게, 상기 게임서버의 게임준비과정은 그 내부의 TCP/IP 서버를 초기화시키는 단계와; 그 내부의 게임 데이터베이스를 초기화시키는 단계와; 특정 가입자단말기로부터 온라인 게임을 위한 접속요구신호가 발생되면 상기 게임서버는 회원인지 여부를 체크하는 단계와; 회원이 아니면 그 가입자단말기측으로 회원가입 요구신호를 발생시키는 단계와; 다수 가입자단말기간의 온라인 게임실행을 위한 소켓 및 쓰레드(Thread)를 생성시키는 단계로 이루어진 것을 특징으로 하는 온라인 게임의 데이터 처리방법이 제공된다.
보다 바람직하게, 게임서버의 스레드(Thread)과정은 게임 관련되는 메시지가 상기 가입자단말기로부터 수신되면 상기 게임서버는 해당 메시지의 암호화 패킷처리를 행하는 단계와; 상기 가입자 단말기로부터 게임종료신호가 통보될 때 해당 가입자 단말기에 대한 게임종료를 실행시키는 단계와; 특정 가입자 단말기로부터 게임 종료신호가 인가되지 않으면 소켓 에러의 발생여부를 체크하고, 소켓에러가 발생된 경우에는 해당 가입자의 게임을 종료시키는 단계와; 접속요구 가입자 단말기가 존재하는 지의 여부를 판단하는 단계와; 접속요구를 행하는 다른 가입자 단말기가 존재하는 경우에는 방 생성 및 게임 참여(Join)관련 처리를 실행하는 단계와; 접속을 요구하는 가입자 단말기가 존재하지 않으면 게임을 개시하는 단계와; 게임이 개시되면 게임시작에 따른 각종 데이터의 처리 및 데이터베이스의 설정을 행하는 단계와; 특정 가입자 단말기로부터 게임종료신호가 발생되는 지를 체크하는 단계와; 게임종료요구시 게임종료처리 및 해당 가입자단말기의 게임결과데이터를 데이터베이스에 저장하고, 각종 데이터베이스의 재설정을 행하는 단계로 이루어진 것을 특징으로 한다.
또한, 각 가입자단말기의 다른 가입자단말기와 상기 게임서버에 대한 신호처리과정은 상기 가입자단말기가 TCP/IP 소켓생성을 행하는 단계와; 상기 가입자단말기가 UDP 프로토콜 서버를 생성시키고, 리시브 스레드(Receive Thread)를 생성하는 단계와; 상기 가입자단말기가 게임참여(Join)의 성공여부를 체크하는 단계와; 게임 참여(Join)가 성공적으로 이루어진 다음에도 다른 가입자단말기가 없는 경우에는 대기상태를 유지하는 단계와; 다른 가입자의 게임 참여가 이루어져 게임이 개시되는 단계와; 가입자단말기의 상호 메시지 교환으로 그물망 UDP가 개시되는 단계와; 각 가입자단말기는 다른 특정 가입자 단말기로부터 게임 종료신호가 인가되는 지를 체크하는 단계와; 각 가입자단말기 상호간의 게임데이터의 동기를 위한 UDP 싱크 처리가 실행되는 단계와; 각 가입자단말기에서는 게임관련 데이터처리를 각각 실행하고, 그 처리된 게임관련 데이터를 다른 가입자단말기로 분산하여 송신하는 단계와; 게임 데이터가 다른 가입자단말기로부터 송신되면 각 가입자단말기는 해당 데이터의 처리를 완료함과 동시에 화면을 갱신시키는 단계와; 화면 갱신데이터를 각 가입자단말기 상호간으로 분산하여 송신하는 단계로 이루어진 것을 특징으로 한다.
바람직하게, 각 가입자단말기의 UDP 동기화 처리과정은 송신된 데이터가 짝수 프레임인지를 판단하는 단계와; 홀수 프레임일 경우에는 다른 가입자단말기측으로 메시지를 분산하여 송신하는 단계와; 짝수 프레임일 경우에는 첫 번째 루틴인지를 체크하는 단계와; 첫 번째 루틴이 아닐 경우, 다른 가입자단말기로부터 메시지를 수신하여 처리하며, 다른 가입자단말기로부터 전송된 메시지의 수신이 되지 않는 경우에는 리콜(Recall)신호를 발생시키는 단계와; 다른 가입자단말기로부터 송신받은 데이터를 규합하여, 새로운 데이터의 송신준비를 실행하는 단계와; 송신준비가 완료되면 다른 가입자단말기로 메시지를 분산하여 송신함으로써 게임 데이터의 동기화 하는 단계로 이루어진 것을 특징으로 한다.
한편, 각 가입자단말기간의 상호 메시지처리과정은 각 가입자단말기가 모든 데이터가 수신되었는 지의 여부를 체크하는 단계와; 특정 가입자단말기가 모든 데이터의 수신이 이루어지지 않았으면 데이터를 수신받지 못한 특정 가입자단말기측으로 리콜(Recall) 요청을 행하는 단계와; 그 리콜요청시간이 기설정 시간을 초과하는 지를 체크하는 타임아웃 여부를 체크하는 단계와; 특정 가입자단말기가 타임아웃으로 간주되면 다른 가입자단말기는 해당 가입자단말기에 대한 삭제 요청신호를 각각의 가입자단말기에 요청하는 단계로 이루어진 것을 특징으로 하는 온라인 게임의 데이터 처리방법이 제공된다.
이하, 본 발명에 대해 도면을 참조하여 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 UDP를 이용한 게임데이터 처리시스템의 데이터처리상태를 도시한 상태도이다.
이를 참조하면, 본 상태도에서 방의 생성에 대한 부분은 도 3에 도시된 바와 동일한 처리가 행해짐을 우선 밝힌다.
즉, 상기 데이터통신망(20)을 매개하여 상기 게임서버(30)에 특정 가입자단말기(예컨대, 제 1가입자단말기: 10a-1)로부터 특정 온라인 게임의 선택신호 예컨대, 특정 게임에 대한 방생성 요구신호가 인가되면 그 가입자(10a-1) 이전에 동일한 게임에 대한 대기자가 있는지를 판단한다. 만약 대기자가 없을 경우에는 상기 게임서버(30)는 게임선택을 요구한 상기 가입자단말기(10a-1)를 위한 방을 생성시키고, 다른 가입자가 억세스할 때까지 대기시킨다.
이때, 다른 가입자(예컨대, 제 2 가입자단말기: 10a-2)로부터 방정보 요청신호가 인가되면 상기 게임서버(30)는 상기 데이터통신망(20)을 매개하여 다수의 방정보를 리턴시킨다. 그리고, 상기 제 2 가입자단말기(10a-2)로부터 방입장 요청신호가 발생되면 상기 게임서버(30)는 해당 가입자 단말기(10a-2)로 해당 방의 IP 주소를 리턴시킨다.
한편, 또 다른 단말기인 상기 제 3 가입자단말기(10a-3)의 경우도 동 게임의 실행을 소망하는 경우에 상기 제 2 가입자단말기(10a-2)와 동일한 절차를 행하여야 한다.
이때, 상기 제 1 가입자 단말기(10a-1) 및 제 2, 3 가입자단말기(10a-2, 10a-3)는 게임을 진행할 때 각기 상호연계된 상태에서 단독적인 게임서버의 역할을 수행하게 되는 바, 이를 위해서는 각기 서로 다른 단말기에 대하여 게임데이터를 교환하는 과정이 요구되며, 게임결과에 대해서도 상기 게임서버(30)에 대하여 각 단말기(10a-1, 10a-2, 10a-3)가 단독적으로 게임결과를 전송하게 된다.
본 발명에서는 상기한 방식으로 운용되는 온라인 게임의 데이터 처리시스템이 적용되므로 상기 제 1, 2, 3 가입자단말기(10a-1, 10a-2, 10a-3)중 어느 한 단말기가 게임종료를 시도하여도 다른 단말기들은 지속적으로 게임을 진행할 수 있게된다.
상기한 구성의 본 발명의 일실시예에 따른 온라인 게임의 데이터 처리시스템의 기능과 작용을 첨부된 도면을 참조하여 상세하게 설명한다.
도 5는 본 발명에 따른 온라인 게임의 데이터 처리시스템에서 게임서버의 신호흐름을 도시한 플로우챠트이다.
먼저, 상기 게임서버(30)는 그 내부의 TCP/IP 서버를 초기화시킨다.(제 1단계: ST-1) 이는 다양한 메시지가 상기 UDP 포트를 통하여 인터페이스 될 수 있도록 UDP 포트지정 및 메시지 송수신 가능한 상태로 만들기 위함이다.
그리고, 생성될 특정방에 대한 데이터베이스를 초기화시킨다.(제 2단계: ST-2) 물론, 이는 특정한 게임에 다수의 가입자가 접속되어 게임을 진행할 때 발생되는 각종 데이터를 저장하기 위한 것이다.
이때, 특정 가입자단말기(10a)로부터 온라인 게임을 위한 접속요구신호가 발생되면(제 3단계: ST-3), 상기 게임서버(30)는 그 내부의 제어모듈(38)과 가입자신상DB(36)를 바탕으로 접속요구 가입자가 회원인지를 체크하게 된다.(제 4단계: ST-4) 만약 회원이 아니면 상기 게임서버(30)는 그 가입자단말기(10a)측으로 회원가입 요구신호를 발생시킨다.(제 6단계: ST-6)
특정 온라인 게임의 접속을 요구하는 가입자가 회원일 경우에는 소켓 및 쓰레드(Thread)가 생성된다. (제 5단계: ST-5) 이때, 소켓은 통신 인터페이스를 위한 파일 억세스(access)기법을 나타내는 것이고, 쓰레드(Thread)는 다수 가입자의 통신을 위한 프로그램을 운영하는 정보를 이른다.
도 6은 본 발명의 실시예에 따른 게임서버의 쓰레드를 나타내는 플로우챠트이다.
먼저, 게임진행에 관련되는 메시지가 상기 가입자단말기(10a)로부터 수신되면(제 10단계: ST-10), 상기 게임서버(30)는 해당 메시지의 암호화 패킷처리를 행한다.(제 11단계: ST-11)
이하, 메시지 처리과정이 실행된다.(A)
상기 가입자 단말기(10a)로부터 게임종료신호가 통보되면(제 12단계: ST-12), 해당 가입자 단말기에 대한 게임종료를 실행시킨다. 만약, 특정 가입자 단말기(10a)로부터 게임 종료신호가 인가되지 않으면 소켓 에러의 발생여부를 체크하고(제 13단계: ST-13), 소켓에러가 발생된 경우에는 해당 가입자의 게임을 종료시킨다.
또한, 접속요구 가입자 단말기가 존재하는 지의 여부를 판단한다.(제 14단계: ST-14) 만약, 이때 접속요구를 행하는 다른 가입자 단말기가 존재하는 경우에는 방생성 및 조인(Join)관련 처리루틴을 실행된다.(제 15단계: ST-15)
게임 참여(Join) 관련 처리루틴은 현재 게임자 수를 체크하여(제 20단계: ST-20) 게임자수가 1명이상일 경우에는 해당 방에 참여(Join)시키고(제 22단계: ST-22), 게임자수가 0명일 경우에는 새로운 방을 생성시킨다.(제 21단계: ST-21)
또, 접속을 요구하는 가입자 단말기가 존재하지 않으면 게임이 개시된다.(제 16단계: ST-16) 이때, 게임이 개시되면 게임시작에 따른 각종 데이터의 처리 및 설정을 행하도록 한다.(제 17단계: ST-17)
한편, 특정 가입자 단말기(예컨대 10a중 어느하나)로부터 게임종료신호가 발생되면(제 18단계: ST-18), 게임종료처리 및 해당 가입자단말기의 게임결과데이터를 데이터베이스에 저장하고, 각종 데이터베이스의 재설정이 이루어진다.(제 19단계: ST-19)
도 7은 본 발명의 실시예에 따른 가입자단말기의 신호처리를 나타내는 플로우챠트이다.
먼저, 상기 가입자단말기(10a)는 게임데이터의 송수신을 위해 TCP/IP 소켓생성을 행한다.(제 30단계: ST-30)
그리고, 상기 가입자단말기(10a)는 UDP 프로토콜 서버를 생성시키고, (제 31단계: ST-31) 다수의 가입자단말기와의 게임 데이터의 송수신을 위한 리시브 스레드( Receive Thread)를 생성한다.(제 32단계: ST-32)
그리고, 상기 가입자단말기(10a)는 게임참여(Join)의 성공여부를 체크한다.(제 33단계: ST-33)
게임 참여(Join)가 성공적으로 이루어진 다음에도 다른 가입자단말기가 없는 경우에는 다른 가입자가 동 게임에 참여할 때까지 대기상태를 유지한다.(제 34단계: ST-34)
다른 가입자의 게임 참여가 이루어지면 비로소 게임이 개시된다.(제 35단계: ST-35)
각 가입자 단말기(10a) 상호 IP 어드레스 송수신으로 해당 IP의 진위를 체크하고, 진위의 체크가 이루어지면 그물망 UDP가 개시된다.(제 36단계: ST-36)
또한, 각 가입자단말기(10a)는 특정 가입자 단말기로부터 게임 종료신호가 인가되는 지를 체크한다.(제 37단계: ST-37)
그리고, 각 가입자단말기(10a) 상호간의 게임데이터의 동기를 위한 UDP 싱크 처리루틴이 실행된다.(제 38단계: ST-38)
각 가입자단말기(10a)에서는 게임관련 데이터처리를 각각 실행하고(제 39단계: ST-39), 그 처리된 게임관련 데이터를 다른 가입자단말기로 분산하여 송신한다.(제 40단계: ST-40)
게임 데이터가 다른 가입자단말기로부터 송신되면 각 가입자단말기(10a)는 해당 데이터의 처리를 완료함과 동시에 화면을 갱신시킨다.(제 41단계: ST-41)
다시, 화면 갱신데이터를 각 가입자단말기(10a) 상호간으로 분산하여 송신한다.(제 42단계: ST-42) 화면 갱신데이터는 프레임데이터를 이른다.
도 8은 본 발명의 실시예에 따른 UDP 싱크 처리루틴을 나타내는 플로우챠트이다.
먼저, 짝수 프레임인지를 판단한다.(제 50단계: ST-50)
홀수 프레임일 경우에는 다른 가입자단말기측으로 메시지를 분산하여 송신한다.(제 56단계: ST-56) 이는 복수개의 프레임중 특정 프레임만을 수신처리함으로써 메시지 수신시 요구되는 시간을 최소화하기 위함이다.
짝수 프레임일 경우에는 첫 번째 루틴인지를 체크한다.(제 51단계: ST-51)
첫 번째 루틴이 아닐 경우, 다른 가입자단말기로부터 메시지를 수신하여 처리한다.(제 52단계: ST-52) 이때, 다른 가입자단말기로부터 전송된 메시지의 수신이 되지 않는 경우에는 리콜(Recall)신호를 발생시킨다.
그리고, 다른 가입자단말기로부터 송신받은 데이터를 규합하여(제 53단계: ST-53), 새로운 데이터의 송신준비를 실행한다.(제 54단계: ST-54)
송신준비가 완료되면 다른 가입자단말기로 메시지를 분산하여 송신함으로써 게임 데이터의 동기될 수 있도록 한다.(제 55단계: ST-55) 또한, 메시지를 다른 가입자단말기에 분산하여 송신함으로써 UDP 데이터의 유실을 최소화시킨다.
도 9는 본 발명의 실시예에 따른 각 가입자단말기간의 상호 메시지처리를 나탸내는 플로우챠트이다.
먼저, 각 가입자단말기(10a)는 모든 데이터가 수신되었는 지의 여부를 체크한다.(제 60단계: ST-60)
특정 가입자단말기(10a-2)가 모든 데이터의 수신이 이루어지지 않았으면 데이터를 수신받지 못한 특정 가입자단말기(예컨대, 10a-1)측으로 리콜(Recall) 요청을 행한다.(제 61단계: ST-61)
그리고, 그 리콜요청시간이 기설정 시간을 초과하는 지를 체크하는 타임아웃 여부를 체크한다.(제 62단계: ST-62)
즉, 리콜(Recall)은 소정 설정시간(약 0.25초)이상 지연시 자동으로 리콜될 수 있도록 설정한 바, 일정 횟수이상되면 1초에 한번씩 리콜요청을 행하고, 1분이상 경과시 타임아웃(Time Out)으로 간주한다.
특정 가입자단말기(예컨대 10a-1)를 타임아웃으로 간주하는 다른 가입자단말기(예컨대, 10a-2)는 해당 가입자단말기(10a-1)에 대한 삭제 요청신호를 각각의 가입자단말기(10a-1과 10a-2를 제외한 단말기)에 요청한다.(제 63단계: ST-63)
한편, 본 발명의 실시예에 따른 온라인 게임의 데이터 처리시스템 및 그 처리방법은 단지 상기한 실시예에 한정되는 것이 아니라 그 기술적 요지를 이탈하지 않는 범위내에서 다양한 변경이 가능하다.
상기한 바와 같이, 본 발명에 따른 온라인 게임의 데이터 처리시스템 및 그 처리방법은 각 가입자단말기간의 UDP 메시지를 상호 송수신 할 수 있도록 함으로써 각 가입자단말기가 각각 게임서버의 역할을 수행하므로 가입자단말기 자체의 속도차가 발생되더라도 공평한 게임이 이루어질 수 있으며, 특정 가입자가 게임을 종료하여도 지속적으로 게임을 수행할 수 있게 된다. 또한, 게임서버는 게임결과데이터를 게임에 참여한 모든 가입자단말기로부터 전송받으므로 특정 가입자단말기가 게임결과를 조작할 수 없게 되는 효과가 있다.

Claims (8)

  1. 삭제
  2. 삭제
  3. 그 내부에 다수의 게임데이터를 내장하고, 특정가입자 단말기로부터 게임참여요구에 대한 신호가 인가되면 해당 방의 IP 어드레스를 전송함과 아울러 게임관련 데이터를 전송받아 처리하는 게임서버와, 상기 게임서버와 데이터 통신망을 통해 연결되어 상기 게임서버로부터 해당 게임에 대한 IP 어드레스를 부여받아 게임에 참여하는 다수의 가입자단말기로 구성되어 실시간으로 온라인 게임을 실행하는 온라인 게임의 데이터처리방법에 있어서,
    온라인 게임을 접속요구를 한 상기 가입자단말기가 상기 게임서버에 의해 TCP/IP 소켓생성을 행하는 단계와;
    상기 가입자단말기가 UDP 프로토콜 서버를 생성시키고, 리시브 스레드(Receive Thread)를 생성하는 단계와;
    상기 가입자단말기가 게임참여(Join)의 성공여부를 체크하는 단계와;
    게임 참여(Join)가 성공적으로 이루어진 다음에도 다른 가입자단말기가 없는 경우에는 대기상태를 유지하는 단계와;
    다른 가입자의 게임 참여가 이루어져 게임이 개시되는 단계와;
    가입자단말기의 상호 IP 어드레스 송수신으로 해당 IP의 진위를 체크하고, 진위의 체크가 이루어지면 각 가입자단말기간에 UDP 망이 개시되는 단계와;
    각 가입자단말기는 다른 특정 가입자 단말기로부터 게임 종료신호가 인가되는 지를 체크하는 단계와;
    각 가입자단말기 상호간의 게임데이터의 동기를 위한 UDP 동기화 처리가 실행되는 단계와;
    각 가입자단말기에서는 게임관련 데이터처리를 각각 실행하고, 그 처리된 게임관련 데이터를 다른 가입자단말기로 분산하여 송신하는 단계와;
    게임 데이터가 다른 가입자단말기로부터 송신되면 각 가입자단말기는 해당 데이터의 처리를 완료함과 동시에 화면을 갱신시키는 단계와;
    화면 갱신데이터를 각 가입자단말기 상호간으로 분산하여 송신하는 단계로 이루어진 것을 특징으로 하는 온라인 게임의 데이터 처리방법.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제 3항에 있어서, 각 가입자단말기의 UDP 동기화 처리과정은 송신된 데이터가 짝수 프레임인지를 판단하는 단계와;
    홀수 프레임일 경우에는 다른 가입자단말기측으로 메시지를 분산하여 송신하는 단계와;
    짝수 프레임일 경우에는 첫 번째 루틴인지를 체크하는 단계와;
    첫 번째 루틴이 아닐 경우, 다른 가입자단말기로부터 메시지를 수신하여 처리하며, 다른 가입자단말기로부터 전송된 메시지의 수신이 되지 않는 경우에는 리콜(Recall)신호를 발생시키는 단계와;
    다른 가입자단말기로부터 송신받은 데이터를 규합하여, 새로운 데이터의 송신준비를 실행하는 단계와;
    송신준비가 완료되면 다른 가입자단말기로 메시지를 분산하여 송신함으로써 게임 데이터의 동기화 하는 단계로 이루어진 것을 특징으로 하는 온라인 게임의 데이터 처리방법.
  8. 제 3항에 있어서, 각 가입자단말기간의 상호 메시지처리과정은 각 가입자단말기가 모든 데이터가 수신되었는 지의 여부를 체크하는 단계와;
    특정 가입자단말기가 모든 데이터의 수신이 이루어지지 않았으면 데이터를 수신받지 못한 특정 가입자단말기측으로 리콜(Recall) 요청을 행하는 단계와;
    그 리콜요청시간이 기설정 시간을 초과하는 지를 체크하는 타임아웃 여부를 체크하는 단계와;
    특정 가입자단말기가 타임아웃으로 간주되면 다른 가입자단말기는 해당 가입자단말기에 대한 삭제 요청신호를 각각의 가입자단말기에 요청하는 단계로 이루어진 것을 특징으로 하는 온라인 게임의 데이터 처리방법.
KR10-2000-0066530A 2000-11-09 2000-11-09 온라인 게임의 데이터 처리시스템 및 그 처리방법 KR100422096B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0066530A KR100422096B1 (ko) 2000-11-09 2000-11-09 온라인 게임의 데이터 처리시스템 및 그 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0066530A KR100422096B1 (ko) 2000-11-09 2000-11-09 온라인 게임의 데이터 처리시스템 및 그 처리방법

Publications (2)

Publication Number Publication Date
KR20020036372A KR20020036372A (ko) 2002-05-16
KR100422096B1 true KR100422096B1 (ko) 2004-03-10

Family

ID=19698160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0066530A KR100422096B1 (ko) 2000-11-09 2000-11-09 온라인 게임의 데이터 처리시스템 및 그 처리방법

Country Status (1)

Country Link
KR (1) KR100422096B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093035A (ko) 2018-01-31 2019-08-08 (주)프리것버드 P2p 네트워크를 활용한 온라인 게임결과 검증 방법 및 이를 운용하는 게임 서버

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030025349A (ko) * 2001-09-20 2003-03-29 주식회사 아이엠티웍스 개별 ip를 부여받아 유료컨텐츠를 이용하는 방법 및시스템과 그 프로그램 소스를 저장한 기록매체
KR101106873B1 (ko) * 2010-09-02 2012-01-25 주식회사 엔씨소프트 온라인 게임 클라이언트간 피어 투 피어 통신방법
CN107423015B (zh) * 2017-07-24 2018-07-20 腾讯科技(深圳)有限公司 游戏内容的同步显示方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995031061A1 (en) * 1994-05-05 1995-11-16 Catapult Entertainment, Inc. Network architecture for real-time video games
US6038602A (en) * 1996-06-14 2000-03-14 International Business Machines Corporation Connection method for a network system and a server computer
KR20000059274A (ko) * 2000-07-31 2000-10-05 김천수 이지 보이스
KR20000063715A (ko) * 2000-07-31 2000-11-06 김천수 웹 스태쉬

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995031061A1 (en) * 1994-05-05 1995-11-16 Catapult Entertainment, Inc. Network architecture for real-time video games
US6038602A (en) * 1996-06-14 2000-03-14 International Business Machines Corporation Connection method for a network system and a server computer
KR20000059274A (ko) * 2000-07-31 2000-10-05 김천수 이지 보이스
KR20000063715A (ko) * 2000-07-31 2000-11-06 김천수 웹 스태쉬

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093035A (ko) 2018-01-31 2019-08-08 (주)프리것버드 P2p 네트워크를 활용한 온라인 게임결과 검증 방법 및 이를 운용하는 게임 서버

Also Published As

Publication number Publication date
KR20020036372A (ko) 2002-05-16

Similar Documents

Publication Publication Date Title
EP1206954B1 (en) Game machine, server system, information service method and recording medium
EP1251653B1 (en) A method and apparatus for using network address information for network transactions
EP0302646B1 (en) Device for establishing and controlling virtual networks
EP1125617A2 (en) Video game launching server, and network-based video gaming system and method using the same
EP1207650B1 (en) Method and apparatus for opening electronic conference
US6761636B2 (en) Real time data exchange system
RU2439836C2 (ru) Сервер и способ для осуществления компьютерных коммуникаций для автоматического выполнения и управления сравнением
US5630757A (en) Real-time multi-user game communication system using existing cable television infrastructure
EP1388999B1 (en) Entertainment system
US5586257A (en) Network architecture to support multiple site real-time video games
CN108833178B (zh) 一种区块链和中心服务器相结合的物联网设备控制方法
US20040116186A1 (en) Distance based distributed online game server system
US20020137562A1 (en) Method and system for operating a bingo game on the internet
US7796539B2 (en) System, computer program product and method in a node for optimizing the topology of a virtual ring based upon a TCP/IP network
GB2372903A (en) Methods for registering and notifying wireless devices
CN111385664B (zh) 直播间的互动数据处理方法、装置、存储介质及服务器
KR20020038229A (ko) 실시간 음성/화상 채팅 서비스를 제공하는 온라인 게임시스템 및 그 운영 방법
KR100422096B1 (ko) 온라인 게임의 데이터 처리시스템 및 그 처리방법
KR20000060795A (ko) 인터넷을 이용한 다자간 게임 서비스 시스템 및 방법
JP2002035424A (ja) インターネットを利用した自動ゲームマッチング及び勝敗認識機能を有するネットワークゲーム大会運営システム及びそれの運営方法
EP1909436A1 (en) System and method of integrating a node into a virtual ring
US20030231642A1 (en) Data upgrade method for a switching device in two-layer network environment
JP2001170360A (ja) 対戦ゲーム観戦システム
EP1836802B1 (en) A method and apparatus for communicating messages in a communications network
WO2022007394A1 (zh) 游戏数据的处理方法、装置、存储介质和电子装置

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
LAPS Lapse due to unpaid annual fee