KR20030033527A - 피어-투-피어 방식의 온라인 게임 방법 - Google Patents

피어-투-피어 방식의 온라인 게임 방법 Download PDF

Info

Publication number
KR20030033527A
KR20030033527A KR1020010065536A KR20010065536A KR20030033527A KR 20030033527 A KR20030033527 A KR 20030033527A KR 1020010065536 A KR1020010065536 A KR 1020010065536A KR 20010065536 A KR20010065536 A KR 20010065536A KR 20030033527 A KR20030033527 A KR 20030033527A
Authority
KR
South Korea
Prior art keywords
game
client
window
data
server
Prior art date
Application number
KR1020010065536A
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 KR1020010065536A priority Critical patent/KR20030033527A/ko
Publication of KR20030033527A publication Critical patent/KR20030033527A/ko

Links

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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Child & Adolescent Psychology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 2 이상의 클라이언트가 상호 연결되어 게임서버의 중계 없이 수행하는 P2P 방식의 온라인 게임 방법에 관한 것이다.
본 발명에 따르면, 복수개의 클라이언트가 서버에 접속하여 접속주소를 등록하는 단계; 제 1 클라이언트가 서버에 접속하여 제 2 클라이언트의 접속주소를 획득하는 단계; 제 1 클라이언트가 획득한 접속주소를 이용하여 제 2 클라이언트에 접속을 요청하는 단계; 접속을 요청받은 제 2 클라이언트가 접속을 수락하는 단계; 제 1 클라이언트와 제 2 클라이언트 간에 접속이 이루어지는 단계; 제 1 클라이언트 및 제 2 클라이언트가 서로 데이터를 교환하고, 교환된 데이터를 기초로 제 1 클라이언트 및 제 2 클라이언트의 컴퓨터 화면상에서 게임이 행해지는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법이 제공된다.
이와 같이 클라이언트 간의 직접적인 데이터 송수신에 의해 게임이 진행되므로, 종래의 게임들과는 달리 게임의 진행속도가 빠르고, 게임중계를 위한 하드웨어 구입비 및 장비 운영비용이 필요하지 않으므로 경제적으로 게임을 구현할 수 있는 효과가 있다.

Description

피어-투-피어 방식의 온라인 게임 방법{PEER TO PEER ONLINE GAME METHOD}
본 발명은 인터넷과 같은 온라인 상에서 이루어지는 게임 방법에 관한 것으로 보다 상세하게는 2 이상의 클라이언트가 게임서버의 중계 없이 상호 연결되어 각 클라이언트의 화면에서 별도의 창을 열지 않고 배경화면상에서 게임을 수행할 수 있는 P2P 방식의 온라인 게임 방법에 관한 것이다.
최근 인터넷이 널리 확산되면서 인터넷을 이용하여 온라인 상으로 게임을 즐기는 네티즌이 폭발적으로 증가하였다. 이러한 온라인 게임은 대부분 서버에 관리자 사이트를 개설하여 인터넷을 사용하는 사용자를 회원으로 확보하고, 게임서버를 통해 사용자들간의 게임을 중계하는 방식으로 이루어지고 있다. 즉, 인터넷 브라우져를 이용하여 게임을 제공하는 사이트에 접속한 상태에서 해당 사이트에서 띄워지는 창내에서 구현되는 게임을 수행하는 방식으로 이러한 사이트에 접속되어 있는 사용자들간의 게임을 중계한다.
최근들어서 인터넷 사용자들이 급증하고 또한 게임 사이트에 접속하여 인터넷 네트워크 게임을 줄기는 사용자도 급격히 증가하고 있다. 따라서 이렇게 많은 인원들이 동시에 접속하여 게임을 수행하기 위하여는 게임을 중계하는 게임서버의 성능 뿐만 아니라 그 용량도 매우 중요하기 때문에 이러한 게임운영 사이트를 운영하기 위해서는 막대한 하드웨어 구입비 및 장비 운영비용 등이 필요하다.
그러나 일반적으로 회원의 증가와 발맞추어 게임서버나 라인 용량이 증가하지 못하고 있으므로 게임의 진행이 점차 늦어지거나 게임 도중 게임서버와의 연결이 끊어지는 등 사용자가 게임을 이용하는데 불편함이 발생하고 있다. 또한, 기존 온라인 게임은 별도의 창을 띄워 진행되는 스크린 게임이므로, 이러한 게임이 수행되는 영역에서는 동시에 다른 작업을 수행할 수 없는 등의 문제점이 있었다.
본 발명의 목적은 상기한 종래의 온라인 게임이 안고 있는 사용자의 증가에 따른 게임서버의 성능 뿐만 아니라 용량의 제한에 의한 문제점을 해결하기 위한 것으로 이루어진 것으로 사용자의 데이터를 관리하는 서버 이외에 별도의 게임서버를 요구하지 않는 P2P 방식의 온라인 게임 방법을 제공하는 것이다.
본 발명의 다른 목적은 온라인 게임의 수행시에도 현재 사용자의 작업중인 다른 업무의 수행에 영향을 미치지 않도록 윈도우의 배경화면상에서 게임이 수행되도록 하는 P2P 방식의 온라인 게임 방법을 제공하는 것이다.
도 1 은 본 발명에 따른 피어-투-피어 (이하, 'P2P' 라함) 방식의 온라인 게임 방법을 수행하기 위한 시스템의 개략적인 구성을 도시한 블록도.
도 2 는 본 발명에 따른 P2P 방식의 온라인 게임 방법의 흐름도.
도 3 은 본 발명에 따른 온라인 게임 화면의 예시도.
도 4 는 본 발명에 따른 게임화면 처리방법을 설명하는 흐름도.
도 5 은 마스크처리에 있어서, 도 5 (a) 에 도시된 종래기술의 작업영역과 도 5 (b) 에 도시된 본 발명에서의 작업 영역을 비교하는 참고도.
도 6 (a) 는 윈도우 모양구조체를 0 으로 초기화하는 단계를 설명하는 도.
도 6 (b) 및 도 6 (c) 는 그림을 마스크처리하는 단계를 설명하는 도.
도 6 (d) 는 초기화된 윈도우 모양구조체 (도 6 (a) 에 도시) 및 마스크 처리된 그림 데이터 (도 6 (b) 및 도 6 (c) 에 도시) 를 합성한 윈도우 모양 데이터를 윈도우로 생성하는 단계를 설명하는 도.
*도면의 주요부분에 대한 부호의 설명*
10 : 서버20, 21 : 클라이언트
30 : 인터넷 망40 : 데이터베이스 서버
본 발명에 따르는 P2P 방식의 온라인 게임 방법은 복수개의 클라이언트가 서버에 접속하여 접속주소를 등록하는 단계; 제 1 클라이언트가 서버에 접속하여 제 2 클라이언트의 접속주소를 획득하는 단계; 제 1 클라이언트가 획득한 제 2 클라이언트의 접속주소를 이용하여 제 2 클라이언트에 접속을 요청하는 단계; 접속을 요청받은 제 2 클라이언트가 접속을 수락하는 단계; 제 1 클라이언트와 제 2 클라이언트 간에 접속이 이루어지는 단계; 제 1 클라이언트 및 상기 제 2 클라이언트가 서로 데이터를 교환하는 단계; 및 교환된 데이터를 기초로 제 1 클라이언트 및 제 2 클라이언트의 컴퓨터 화면상에서 게임이 행해지는 단계를 포함하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법에 관한 것이다.
이하, 본 발명에 따르는 바람직한 실시예에 대해 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 P2P 방식의 온라인 게임 방법을 수행하기 위한 시스템의 개략적인 구성을 도시한 블록도이다.
도 1 을 참조로 하면, 본 발명에 따르는 P2P 방식의 온라인 게임 방법에 사용되는 시스템은 서버 (10), 서버 (10) 에 연결되는 데이터베이스 서버 (40), 및 인터넷 망 (30) 을 통해 서버 (10) 에 접속되는 복수의 클라이언트들 (20, 21) 를 포함한다. 서버 (10) 에는 인터넷망 (30) 을 통하여 접속되는 사용자들이 회원인지 여부를 인증함과 동시에 회원데이터를 관리하는 로그인 프로그램 (11), 게임을 수행하는 게임 프로그램 (12), 및 회원들간의 연결상태 등을 알려주기 위한 메신저 프로그램 (13) 등이 탑재된다.
또한 서버 (10) 는, 사용자데이터가 저장되어 처리되는 사용자관리 DB (41), 캐릭터에 관한 데이터가 저장되어 있는 캐릭터 DB (42), 랭킹 및 대회데이터 등의 데이터가 저장되어 있는 대전정보 DB (43), 및 아이템에 대한 데이터가 저장되어 있는 아이템 DB (44) 등을 포함하고 있는 데이터베이스 서버 (40) 와 접속된다. 서버 (10) 는 인터넷망 (30) 을 통해 다수의 클라이언트 (20, 21) 와 접속되어, 클라이언트 (20, 21) 가 요구하는 데이터를 통신 프로토콜을 사용하여 클라이언트 (20, 21) 에 송신한다.
클라이언트 (20, 21) 는 서버 또는 다른 클라이언트에 접속하기 위하여 네트워크와 연결되는 수단인 네트웍 인터페이스 카드 (Network Interface Card; NIC) 또는 모뎀을 구비하고 있으며, 서버 또는 클라이언트와의 통신 경로를 설정하는 프로그램인 소켓 프로그램, 윈도우즈 운영체제 상에서 수행되는 운영프로그램들, 및 본 발명에 따르는 P2P 방식의 온라인 게임 방법을 위한 게임 프로그램을 탑재하고 있다. 이하에서는, 게임을 위해 다른 클라이언트에 접속을 요청하는 클라이언트를 제 1 클라이언트 (20) 라 하고, 제 1 클라이언트 (20) 과의 접속을 수락하는 클라이언트를 제 2 클라이언트 (21) 라고 한다.
상기와 같은 구성을 가지는 시스템에서 적용되는 본 발명에 따른 게임방법은 초기에 인터넷망에 접속하여 게임을 수행하기 위하여 필요한 사용자 등록 및 각종 프로그램 및 데이터의 다운로드는 일반적인 온라인 게임을 수행하기 위한 방법과 동일하다. 그러나, 본 발명에서는 게임을 수행하기 위한 기초적인 단계가 수행된 후에 실질적인 게임의 수행을 위하여 인터넷 접속을 통하여 서버에 접속하고 대전에 임할 다른 클라이언트를 설정한 후에는 게임를 관리하는 서버와의 접속을 차단하고 클라인언트간에 직접적으로 데이터를 상호 전송하도록 함으로써 게임을 수행하도록 하는 P2P 방식을 이용한 것으로 이러한 과정을 도 2 의 흐름도를 참고로 하여 보다 구체적으로 기술하도록 한다.
도 2 는 본 발명에 따른 P2P 방식의 온라인 게임방법의 흐름도이다.
P2P (Peer to Peer) 란, 네트워크 상에서 복수의 컴퓨터 (클라이언트) 를 연계시키는 애플리케이션의 모델 중의 하나로서, 연계되는 클라이언트가 애플리케이션에 대해 대등한 기능을 가지고 있는 것을 말하며, Server to client 와 상반되는 네트워크 용어이다. 물론, P2P 방식을 이용한 사례로서 상대방의 컴퓨터에 중계서버를 이용하여 접속한 후에 특정 폴더에 저장되어 있는 음악파일 등을 다운받도록 하는 형태의 실시로 사용되고 있으나 이러한 방식은 일방적인 데이터의 전송에만 사용되고 있는 실정이다. 그러나 이하에 설명되는 본 발명에서의 P2P 방식을 온라인 게임에 적용한 것은 접속시에만 중계서버를 이용하고 실질적인 게임을 수행함에 있어서는 중계서버의 간섭을 차단하고 클라이언트들간에 데이터를 주고 받는 형태로 이루어진다는데 특징이 있다.
먼저, 본 발명에 따른 P2P 방식의 온라인 게임을 하고자 하는 자, 즉 클라이언트 (20, 21) 가 본 게임을 처음 실행하기 위해서는, 인터넷망을 통하여 서버 (10) 에 접속하여 회원 가입후, 게임 프로그램을 다운로드 받아 설치하여야 한다. 게임 프로그램은 다운로드 후 자동적으로 설치되고, 바탕화면과 시작버튼에 자동적으로 아이콘이 등록된다. 상기와 같은 과정은 일반적인 접속 및 등록과정이므로 구체적인 설명은 생략한다.
먼저, 제 1 클라이언트 (20)는 설치된 게임 프로그램을 실행하여 서버 (10) 에 접속한다 (S100). 게임 프로그램이 실행되면, 게임진행에 필요한 메뉴 등, 예를 들면 현재 게임을 수행하고자 대기 중에 있는 클라이언트들의 선택이나 진행 중인 대전리스트, 선택 가능한 캐릭터 정보 등을 선택할 수 있는 게임진행창이 제 1 클라이언트 (20) 의 바탕윈도우 상에 나타난다. 상기의 게임진행창에 나타나는 정보들에 대하여는 서버의 인증 후에 정보를 검색할 수 있는 권한이 부여되는 것도있으며 클라이언트 (20) 내의 정보를 서버의 인증없이 보여줄 수 있는 것도 있을 수 있다.
서버 (10) 로의 접속이 이루어진 후에는 아이디와 패스워드를 입력하기 위한 창이 열리며 사용자는 자신의 아이디와 패스워드를 입력하고 서버 (10) 에 로그인한다 (S102). 서버 (10) 는 로그인한 사용자의 접속인증을 위하여 데이터베이스 서버 (40) 에 저장되어 있는 사용자 관리 DB (41) 를 검색하여 해당 사용자가 등록되어 있는 사용자인가의 여부를 결정하기 위한 인증 절차를 수행하고, 등록사용자가 아닌 경우에는 신규가입을 위한 안내문을 메시지 형태로 전송한다.
인증 절차가 정상적으로 이루어진 사용자는 게임진행창의 캐릭터선택메뉴에서 게임에 사용될 캐릭터를 선택한다 (S104). 게임을 처음으로 시작하는 경우에는 게임에 사용될 캐릭터를 선택하여야 하나, 그 다음부터는 이 단계는 생략될 수 있다. 사용자는 예를 들어, 3 종류의 캐릭터를 동시에 보유할 수 있고 보유한 캐릭터 중 하나를 선택해서 접속할 수 있다.
그후, 제 1 클라이언트 (20) 는 게임진행창에 나타나 있는 메뉴를 이용하여 게임을 진행할 사용자/접속자의 현황을 위하여 해당 데이터를 서버 (10) 에 요청하거나 서버 (10) 가 자체적으로 클라이언트가 접속될 때에 자동적으로 인터넷망 (30) 을 통해 데이터베이스 서버 (40) 내에 저장되어 있는 사용자/접속자 데이터를 제 1 클라이언트 (20) 에 전송하도록 할 수 있다 (S106). 물론, 게임의 진행 중에도 클라이언트들의 요청에 따라 서버 (10) 은 접속자 리스트를 새로 전송하여 갱신한다.
제 1 클라이언트 (20) 는 서버 (10) 으로부터 전송받은 사용자/접속자 데이터를 이용하여 접속자 리스트를 검색한 후, 게임을 수행할 클라이언트를 선택한다 (S108). 온라인 게임의 특성 상 동시에 접속되어 있는 사용자/접속자의 수가 많이 존재할 수 있으므로 일일이 게임상대를 찾는다는 것은 많은 시간을 요하는 불편함이 있을 수 있으므로 게임상대에 대한 검색시 소정 조건 (예를 들어, 소정 레벨 이상의 접속자 등) 을 입력하여 검색할 수 있는 기능을 구비하고 있다.
제 1 클라이언트 (20) 에 의하여 게임상대가 선택되면 서버 (10) 를 통해 사용자가 선택한 게임상대 (제 2 클라이언트 (21)) 의 접속주소를 획득한다 (S110). 인터넷을 통하여 접속되는 모든 클라이언트들은 접속된 위치를 표시하는 고유한 IP 주소가 할당되어 있으므로 이 주소를 이용하여 대전을 수행할 제 2 클라이언트 (21) 에 접속한다.
제 2 클라이언트 (21) 와의 접속을 위하여 제 1 클라이언트 (20) 는 획득한 접속주소를 이용하여 제 2 클라이언트 (21) 에 접속수락을 요청하는 패킷을 보냄으로써, 클라이언트 (20, 21) 간의 접속을 요청한다 (S112).
접속요청을 받은 제 2 클라이언트 (21) 의 시스템에서는 화면의 창에 제 1 클라이언트 (20) 로 부터의 접속요청을 원하는 메시지와 함께 수락여부를 묻는 버튼이 표시되고, 제 2 클라이언트 (21) 가 버튼을 클릭하여 접속을 수락하는 경우, 제 1 클라이언트 (20) 와의 통신을 위한 데이터 소켓을 만들고, 접속을 수락하는 패킷을 제 1 클라이언트 (20) 로 보낸다 (S114). 그후, 과정은 S116 로 진행한다. 그러나 접속요청을 받은 게임상대가 접속을 수락하지 않는 경우에는 제 1클라이언트 (20) 에게 상대가 접속을 수락하지 않는다는 것을 표시하는 메지시를 보내고 다시 S108 단계로 복귀한다.
접속요청을 받은 제 2 클라이언트 (21) 가 접속을 수락하면, 클라이언트 (20, 21) 사이에 소켓이 연결됨으로써, 클라이언트 (20, 21) 간에 접속이 이루어진다 (S116). 클라이언트 (20, 21) 는 소켓 프로그램을 구동하여 서로 접속하고, 접속을 유지한다. 클라이언트들간에 접속을 위하여 사용되는 소켓 프로그램은 공지의 프로그램을 사용할 수 있다.
이렇게 클라이언트 (20, 21) 들간에 접속이 이루어진 상태에서는 각 클라이언트 (20, 21) 의 사용자가 선택한 캐릭터를 이용하여 게임이 진행된다 (S118). 이러한 게임의 진행에 대하여 구체적으로 기술하면 다음과 같다.
예를 들어, 도 3 에 도시된 것처럼 게임 진행 중에, 제 1 클라이언트 (20) 의 사용자가 게임 중 캐릭터의 주먹 동작을 지시하기 위해, 컴퓨터 키보드를 조작하면, 제 1 클라이언트 (20) 는 그 조작을 감지하여 데이터로 변환하여 데이터 소켓에 입력하고, 제 2 클라이언트 (21) 로 전송한다. 제 2 클라이언트 (21) 는 전송된 데이터를 시스템 메시지 큐라는 메모리 공간에 임시로 저장한 후, 윈도우 프로시저에 전달된다. 윈도우 프로시저는 전송받은 데이터에 기초하여 메시지 디스플레이 등과 같은 프로그램에 의해 게임화면을 디스플레이한다. 이에 따라, 제 2 클라이언트 (21) 의 사용자는 제 1 클라이언트 (20) 에서의 캐릭터 조작을, 즉 주먹 동작을 모니터를 통해 감지할 수 있다.
즉, 게임진행 중에, 클라이언트 (20, 21) 는 서로 게임진행 상황을 나타내는데이터를 교환하고, 교환된 데이터에 따라 모니터 상에 게임화면을 디스플레이하여 캐릭터들의 상태를 디스플레이한다. 이를 통해 게임 화면 상에서 상대방의 캐릭터의 동작을 알 수 있게 된다. 클라이언트 간에 주고 받는 데이터는, 예를 들면, 상대방이 처음 접속시에는 각 캐릭터의 상태 (에너지, 레벨, 아이템 등) 등에 관한 것이고, 게임 진행 중에는 각 캐릭터의 현재 위치와 에너지, 아이템 사용유무, 공격, 방어, 스킬 등에 관한 것이며, 게임종료시에는 게임 결과 등에 관한 것이다.
바람직하게는, 본 발명에서 게임 진행 중 데이터를 교환하는 단계는 연결지향서비스 (connection - oriented) 방식을 채택할 수 있다. 연결지향 서비스 방식이란 데이터 스트림의 신뢰성 있는 교환 및 정확한 데이타 송수신을 위하여, 데이터를 보내면 그 데이터를 받은 쪽에서 받았다는 확인 데이터를 보내 데이터 교환의 신뢰를 높이는 방식으로서, 한쪽에서 데이타를 보냈는데, 받은쪽에서 응답이 없거나 잘못된 데이터를 받았다는 응답이 오면 제대로 된 응답이 올때까지 데이타를 일정 시간동안 반복해서 다시 보내는 방식을 말한다. 상기와 같은 방식을 채택함으로써 제 1 클라이언트 (20) 에서 보낸 데이터에 대하여 제 2 클라이언트 (21) 에서는 해당 데이터의 수신이 되면 데이터 수신에 대한 응답을 보내고 이러한 과정이 계속적으로 이루어짐으로 인하여 양 클라이언트 들간에 게임이 지속적으로 이루어질 수 있다.
상기와 같은 형태로 클라언트들 (20, 21) 간에 계속적으로 이루어진 상태에서 어느 한쪽의 캐릭터의 파워 (HP) 가 0 이 되는 경우에는 게임이 완료되고, 게임이 완료되면 각 클라이언트 (20, 21) 는 자동으로 게임결과를 서버 (10) 에 전송한다 (S120). 서버 (10) 는 전송된 데이터를 데이터베이스 서버 (40) 로 전송하고, 데이터베이스 서버 (40) 는 전송된 데이터를 대전정보 DB (43) 내에 새로 갱신하여 기록하게 된다. 또한 게임종료시에는 게임결과에 기초하여 승리 포인트를 계산하며, 계산된 승리 포인트는 데이터베이스 서버 (40) 의 대전정보 DB (43) 에 저장한다.
그후, 사용자가 또 다른 게임을 원하지 않는 경우에는 게임을 종료하고 로그 아웃을 하여 접속을 종료한다 (S122). 반대로, 사용자가 다른 게임을 원하는 경우에는 S106 단계로 복귀하여 이전에 언급된 각 단계를 반복적으로 수행한다.
상기한 바와 같이, 본 발명에 따른 P2P 방식의 온라인 게임 방법은 2 이상의 클라이언트가 직접 연결되어 게임서버의 중계없이 게임이 진행되므로 게임의 속도가 빠르고, 단지 클라이언트들간의 접속과 그 결과 등만을 관리하므로 실질적으로 게임서버상에서의 게임을 수행할 필요가 없으므로 게임서버가 필요하지 않으므로 종래의 게임들과는 달리 하드웨어 구입비 및 장비 운영비용이 적게 들고 경제적으로 운용이 가능하다.
또한 본 발명에서는 상기에서 기술한 것처럼 P2P 방식에 의하여 각 사용자들간에 게임을 중계하면서 각 클라이언트의 화면상에서는 개별 클라이언트에서 수행되는 다른 프로그램 들의 수행을 방해하지 않으면서 배경화면 상에서 게임이 수행될 수 있도록 하는 방식을 채택하고 있는데 이러한 방법에 대하여 도 3 내지 도 6 을 참조하여 보다 구체적으로 기술한다.
도 3 은 본 발명에 따른 온라인 게임 방법에서 사용되는 화면의 일 예시도이고, 도 4 는 도 3 에서와 같은 형태의 화면표시를 위한 게임화면 표시방법을 설명하기 위한 흐름도이다. 또한, 도 5 은 마스크처리를 위한 종래기술의 작업영역 (도 5 (a)에 도시) 과 본 발명에서의 작업 영역 (도 5 (b)에 도시) 을 비교하는 참고도이고, 도 6 (a) 내지 도 6 (d) 는 윈도우 모양구조체를 초기화하고, 그림들을 마스크 처리한 후, 이들을 합성한 전체 윈도우 모양데이터를 윈도우로 생성하는 과정을 설명하는 도이다.
도 3 에 도시된 바와 같이, 본 발명에서 P2P 방식에 의하여 게임을 수행하는 경우에는 윈도우내에 별도의 창을 형성하고 이렇게 형성된 창내에서 게임을 수행할 수도 있지만 본 발명에서는 사용자가 수행하고 있는 프로그램에 영향을 미치지 않고서 게임을 수행할 수 있도록 하기 위하여 윈도우의 배경화면을 이용하는 것을 특징으로 하고 있다. 따라서, 게임 캐릭터 및 게임 운영에 필요한 것을 제외한 게임화면, 즉 게임의 배경화면, 을 투명하게 처리하고 또한 각 캐릭터들이 차지하는 영역을 통상적으로 바닥면에 배치하여 사용하고 이 캐틱터의 크기가 일반적으로 화면 높이의 수분일 정도에 해당하므로, 게임 화면이 모니터 전체를 차지하지 않아서 다른 작업의 진행상황을 주시하면서 동시에 게임을 즐길 수 있다. 이러한 게임의 수행을 위한 화면처리를 도면을 참조하여 보다 구체적으로 기술한다.
일반적으로 윈도우 상에서의 프로그램의 실행은 다음과 같이 이루어진다. 먼저 윈도우즈 시스템은 메시지를 저장하는 메모리 공간인 시스템 메시지 큐를 포함하고 있으며, 윈도우즈 시스템은 메모리 공간을 확보하고 중앙처리장치인 CPU 를사용할 권한을 부여하는 기능을 가진 실행파일을 실행하도록 하며, 윈도우 프로시저는 시스템 메시지 큐에 저장되어 있는 메시지를 받아서 윈도우 고유의 처리, 즉 CreateWindow 등을 이용하여 윈도우를 생성하는 역할을 한다. 이와 같이 종래에는, 시스템 메시지 큐에 메시지가 입력되면, 윈도우즈 시스템에 의해 메시지가 바로 윈도우 프로시저로 전달되어 윈도우가 생성되었다.
그러나, 본 발명에서는 윈도우즈 시스템과 윈도우 프로시저사이에서 메시지를 가로채 원하는 모양의 화면데이터로 재구성하여 처리한 후, 메시지를 윈도우프로시저에 전달하는 역할을 하는 서브클래스 프로시저를 더 포함하고 있다. 즉 본 발명에서 게임화면 처리를 수행하는 시스템이 서브클래스 프로시저를 더 포함하도록 하여, 서브클래스 프로시저가 윈도우즈 시스템로부터 받은 메시지를 조작한 후, 윈도우 프로시저에 전달함으로써 윈도우 모양을 변경할 수 있도록 한다. 이러한 기법을 서브클래싱이라고 하는데, 구체적으로 설명하면, 윈도우 프로시저와 별도의 새로운 윈도우 프로시저 (서브클래스 프로시저) 를 만들어 두고, 서브클래스 프로시저의 번지를 기존 윈도우 프로시저의 번지로 설정하여, 모든 메시지가 서브클래스 프로시저로 먼저 전달되도록 한다.
이를 위하여 번지를 변경하기 전의 기존의 윈도우 프로시저 (즉, 윈도우 프로시저) 의 번지는 새로 생성해 두었다가, 서브클래스 프로시저에서 처리하지 않은 메시지 및 서브클래스 프로시저에서 가로채서 처리한 메시지를 모두 윈도우 프로시저로 전달한다. 윈도우 프로시저는 이 메시지를 받아 윈도우 고유의 처리, 즉 CreateWindow 등을 이용하여 윈도우를 생성한다.
이하에서는 도 4 내지 도 6 를 참조하여, 본 발명에서 따른 게임방법을 수행할 때에 적용되는 게임화면 처리방법에 대하여 설명한다.
먼저, 클라이언트 (20, 21) 에서 본 발명을 수행하기 위한 프로그램을 실행한다 (S200). 프로그램의 실행에 따라 운영체재인 윈도우즈 시스템에서는 해당 프로그램의 실행을 위하여 필요한 메모리 공간을 확보하고 중앙처리장치를 사용할 권한을 부여한다. 이로써, 시스템 메시지 큐에 메모리를 할당된다.
프로그램의 실행에 따라 필요한 윈도우를 생성하기 위하여 소정의 윈도우 생성 메시지가 시스템 메시지 큐에 삽입된다 (S202). 이때 생성되는 윈도우 생성 메시지의 형태의 실행될 명령에 따라서 다양한 형태를 가지게 될 수 있다.
윈도우즈 시스템은 이전에 기술된 것처럼 본 발명에 따른 특징적인 화면처리를 위하여 시스템 메시지 큐로 부터 전달된 윈도우 생성 메시지를 시스템 메시지 큐로부터 윈도우 프로시저로 전달하지 않고 먼저 서브클래스 프로시저로 전달한다 (S204).
서브클래스 프로시저는 윈도우 생성 메시지에서 윈도우즈 바탕화면에 형성될 윈도우의 모양 구조체를 추출한다 (S206). 윈도우의 모양 구조체란, 도 6 (a) 에 도시된 바와 같은, 윈도우 프레임을 의미하며 0 과 1 로 이루어지는 부분 중에서 1 로 표시하여 나타낸 데이터를 말한다. 또한, 0 으로 이루어지는 부분은 실제 데이터들이 표시될 창을 나타내고, 현재는 아무 것도 표시되지 않은 상태, 즉 투명한 부분을 나타낸다.
서브클래스 프로시저는 추출된 모양 구조체를 전부 0 으로 초기화하여, 윈도우를 도 6 (a) 에 도시된 것처럼 투명하게 처리한다. 구조체를 0 으로 초기화하는 이유는 윈도우즈의 바탕화면 상에 본 발명에서의 화면 표시를 함에 있어서 종래의 발명에 의하여 생성되는 창들은 전부 프레임을 가지고 있어서 게임의 수행시에는 그 전면에서 수행되는 프로그램의 실행상태를 가리기 때문에 수행되고 있는 게임이 해당 작업의 상태파악을 곤란하게 하기 때문에 이를 제거하고자 하는 것이다.
다음, 서브클래스 프로시저는 윈도우 생성 메시지로부터 게임 화면의 디스플레이에 사용될 그림 부분을 불러들여, 마스크 처리한다 (S210). 마스크 처리에 대하여는 도 6 (b) 및 도 6 (c) 를 참조하여 설명다.
마스크 처리란 윈도우 디스플레이에 사용될 그림 부분을 불러들인 후, 여러 색상의 그림을 검은색 기타 단일색으로 변경한 후, 아무것도 표시되지 않은 부분은 0 으로 처리하고 그림은 1 로 처리하여, 0 과 1 로 된 메모리 구조로 만드는 방식을 말한다. 마스크 처리에 있어서, 도 5 (a) 에 도시된 것처럼, 화면 전체의 픽셀을 순차적으로 읽어 들여 그림이 없는 부분은 0 으로 그림이 있는 부분은 1 로 변환하는 방식을 사용하였다.
그러나, 본 발명에서는 마스크 처리에 있어서, 순차적으로 픽셀을 읽어서 전체 화면에 대하여 그림이 있는 부분이 포함되는 영역을 체크한 다음에 해당 영역만을 추출하여 이 부분을 1 로 변환하는 방식을 채택하였다. 이러한 전체 화면에서 그림만이 포함되어 있는 영역만을 검색한 다음에 이를 변환하는 방식을 채택하여 그림이 있는 부분을 마스크 처리하므로 화면 처리 속도가 매우 빠르다.
이와 같이 도 5 (a) 에 도시된 일반적인 방식과 도 6 (b) 에 도시된 본 발명의 경우, 마스크 처리속도를 비교하면 다음과 같다.
도 5 (a) 에 도시된 종래 기술의 경우는, 화면을 처리할 때 화면의 처음부터 끝까지 픽셀을 읽어 들여야 하므로, 예를 들어 화면 전체의 픽셀 수를 800 * 600 = 480000 라 하고, 픽셀 하나의 처리 시간을 0.00001초라 했을 때 전체 화면의 픽셀을 처리하는데 0.48 초가 걸리게 된다.
그러나, 도 5 (b)에 도시된 본 발명의 경우에는, 그림이 존재하는 영역 , 즉 작업 영역만을 마스크처리하면 되므로, 예를 들어 그림의 크기를 10000 픽셀 (100 * 100) 이라 하고, 픽셀 하나의 처리시간이 종래기술과 동일하다고 하였을때, 작업영역을 처리하는데 걸리는 시간은 0.01초가 된다. 즉, 본 발명에서는 작업영역을 한정함으로써, 처리해야 할 픽셀 수를 감소시켜, 화면처리의 속도를 빠르게 하는데 특징이 있다.
바람직하게는, 본 발명에 따르는 게임화면 처리방법에서, 마스크 처리는 어셈블리어를 이용한 고속리딩 방식을 사용한다. 고속리딩 방식이란, 마스크 처리에 있어서 시스템언어로서 어셈블리어를 이용하는 방식으로서, 중앙처리장치(CPU) 안에 내장된 램을 이용하여 처리할 수 있는 것을 말한다. CPU 안에 내장된 램을 이용하여 처리하면, 윈도우메모리를 이용할 때 보다 더 빨리 처리할 수 있으므로, 마스크 처리된 부분을 C 언어를 이용하여 코딩할 때보다 마스크 처리가 매우 빠른 속도로 진행된다.
상기에서와 같이 전체 화면에 대하여 마스크 처리가 된 후에, 서브클래스 프로시저는 도 6 (b) 에 도시된 것처럼 마스크 처리에 의해 1 로 된 데이터를 읽어들인다 (S212). 실제로 특정의 모양에 대한 마스크 처리를 할 때는 한번의 처리에 의하여 이루어지는 것이 아니라 복수의 처리과정을 통하여 하나의 합성된 윈도우 모양구조체를 형성할 수 있다. 예를 들어 도 6 (d) 에 도시된 하나의 커다란 삼각형을 형성하기 위해서는 도 6 (b) 와 같은 삼각형과 도 6 (c) 와 같은 사다리꼴을 서로 합성하여 형성할 수도 있다. 즉 서브클래스 프로시저 (70) 는 S212 에서 읽혀진 데이터를 S208 에서 0 으로 초기화된 윈도우 모양구조체와 합성한다 (S214). 이로써, 도 6(d) 에 도시된 바와 같은, 합성된 윈도우 모양 데이터가 생성된다.
그후, 서브클래스 프로시저는 합성된 윈도우 모양 데이터를 다른 윈도우 데이터 (즉, S206 단계에서 윈도우 생성 메시지로부터 모양 구조체가 추출되고 남은 데이터) 와 함께 윈도우 데이터 메모리에 저장한다 (S216). 서브클래스 프로시저는 저장된 윈도우 데이터를 윈도우 프로시저로 전달한다 (S218). 윈도우 프로시저는 전달받은 윈도우 데이터를 기초로 통상적인 방법에 따라 윈도우즈의 바탕화면상에 윈도우를 생성한다 (S220). 이와 같이 바탕화면상에 형성되는 본 발명에 따른 윈도우들은 게임화면상에서 표시되는 그림만을 표시할 수 있다.
새로운 윈도우 생성 메시지가 시스템 메시지 큐에 삽입되는 경우에는 S204 로 복귀하고, 아니면 윈도우 처리 단계를 종료한다 (S222).
상기에서와 같이 본 발명에 따라 이루어지는 게임화면에 대한 처리는 , 윈도우 프로시저에 의하여 생성되는 윈도우는, 도 3 에 도시된 바와 같이, 게임진행에 필요한 부분을 제외하면 투명하게 디스플레이되므로, 다른 업무의 진행상황을 주시하면서도 게임을 즐길 수 있고 여가시간을 이용한 게임의 활용도가 타 게임에 비해 현저하게 높다.
또한, 바람직하게는, 본 발명에 따르는 게임화면의 처리방법으로서 벡터 방식을 채용하고 있다. 벡터 방식이란 그림에 대한 데이터를 점과 선으로만 저장하여 확대 축소시 캐릭터 이미지의 깨짐 현상이 발생하지 않는 방식으로서, 대표적인 이용사례로는 플래쉬나 일러스트레이터와 같은 프로그램 들에서 사용되고 있다. 벡터 방식을 적용하면, 사용자의 모니터 해상도가 각기 다르더라도 해상도를 동일하게 처리할 수 있다. 벡터방식을 적용하지 않으면 낮은 해상도의 사용자보다 높은 해상도의 사용자가 보는 화면이 더 넓기 때문에, 상대적으로 높은 해상도의 사용자는 캐릭터가 작게 보이고 낮은 해상도의 사용자가 볼 수 없는 범위의 화면을 보게 되므로, 공정한 게임 진행이 될 수 없다. 또한 낮은 해상도의 사용자는 화면 픽셀이 커서 캐릭터가 거칠고 화질이 떨어져 보이게 되는 문제점이 생긴다.
또한 게임 캐릭터는 기본적으로 화면 상의 가장 아래에 위치하게 되지만, 이에 한정되는 것은 아니다. 윈도우 가장 아래에는 작업표시줄이 있는데, 사용자들에 따라 작업표시줄은 숨기거나 높이를 조절할 수 있다. 그에 따라 캐릭터의 위치가 높아질 수도 있고 낮아질 수도 있기 때문에, 본 발명에 따르는 게임화면 처리 방법에서는 작업표시줄의 높이를 0으로 잡고 이를 기준으로 게임이 진행되게 한다. 따라서, 사용자들간의 작업표시줄 설정이 서로 다르더라도 동일한 조건에서 게임이 진행될 수 있게 된다.
상술한 실시예의 설명은 당업자가 본 발명을 실시하거나 사용할 수 있도록하기 위해 제공되었다. 본 발명이 도면을 참조하여 실시예에 대하여 설명되었지만, 본 발명의 사상 및 범위를 벗어남이 없이 다양한 변화가 행해질 수 있다.
본 발명은 P2P 방식의 온라인 게임 방법으로서, 사용자의 데이터를 관리하는 서버 이외에 별도로 네트웍 상에서의 게임의 수행을 위한 게임서버가 필요하지 않으므로, 종래의 게임들과는 달리 하드웨어 구입비 및 장비 운영비용이 적게 들고 경제적이다. 또한 게임서버의 중계에 의해서 클라이언트 간에 게임이 이루어지는 것이 아니라, 클라이언트 간의 직접적인 데이터 송수신에 의해 게임이 진행되므로, 게임의 진행속도가 빠르다.
또한 다른 업무 진행상황을 주시하면서 게임을 즐길 수 있고 여가시간을 이용한 게임의 활용도가 타 게임에 비해 현저하게 높다. 또한, 캐릭터만을 바탕화면에 띄우기 위한 게임 화면처리의 속도가 빨라서 게임진행이 빠르다. 즉, 본 발명은 기존의 P2P 서비스의 응용을 게임에 확장시켜, 새로운 차원의 온라인 게임 방법을 제공하는 것이 가능하다.

Claims (8)

  1. 인터넷망을 통해 연결된 복수개의 클라이언트 및 서버를 포함하는 시스템을 이용하는 온라인 게임 방법에 있어서,
    상기 복수개의 클라이언트가 상기 서버에 접속하여 접속주소를 등록하는 단계;
    제 1 클라이언트가 상기 서버에 접속하여 제 2 클라이언트의 접속주소를 획득하는 단계;
    상기 제 1 클라이언트가 획득한 상기 제 2 클라이언트의 상기 접속주소를 이용하여 상기 제 2 클라이언트에 접속을 요청하는 단계;
    접속을 요청받은 상기 제 2 클라이언트가 접속을 수락하는 단계;
    상기 제 1 클라이언트와 상기 제 2 클라이언트 간에 접속이 이루어지는 단계;
    상기 제 1 클라이언트 및 상기 제 2 클라이언트가 서로 데이터를 교환하는 단계;
    교환된 상기 데이터를 기초로 상기 제 1 클라이언트 및 상기 제 2 클라이언트의 컴퓨터 화면상에서 게임이 행해지는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  2. 제 1 항에 있어서,
    데이터를 교환하는 상기 단계는, 패킷의 송수신에 의해 데이터를 교환하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  3. 제 1 항에 있어서,
    데이터를 교환하는 상기 단계는 연결지향서비스 (connection - oriented) 방식을 채택하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  4. 시스템 메시지 큐로부터 서브클래스 프로시저로 윈도우 생성 메시지를 전달하는 단계;
    상기 윈도우 생성 메시지에서 윈도우의 모양 구조체를 추출하여, 0 으로 초기화하는 단계;
    상기 윈도우 생성 메시지로부터 그림을 불러들여 마스크 처리하는 단계;
    마스크 처리된 그림 데이터 및 0 으로 초기화된 상기 모양 구조체를 합성하는 단계;
    합성된 윈도우 모양 데이터를 다른 윈도우 데이터와 함께 윈도우 데이터 메모리에 저장하고, 윈도우 프로시저로 전달하는 단계;
    윈도우 프로시저가 전달받은 윈도우 데이터에 기초하여 윈도우를 생성하는 단계에 의해 게임화면처리를 행하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  5. 제 4 항에 있어서, 상기 서브클래스 프로시저로 새로운 윈도우 생성 메시지가 전달되는 경우에는 상기 단계를 반복하여 게임화면처리를 행하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  6. 제 4 항에 있어서,
    상기 마스크 처리 단계는 어셈블리어를 이용한 고속리딩방식을 사용하여 게임화면처리를 행하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  7. 제 4 항에 있어서,
    상기 윈도우를 생성하는 단계는 벡터 방식을 채택하여 게임화면처리를 행하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
  8. 제 4 항에 있어서, 생성된 윈도우가 바탕 화면의 가장 아래에 위치하도록 게임화면처리를 행하는 것을 특징으로 하는 P2P 방식의 온라인 게임 방법.
KR1020010065536A 2001-10-23 2001-10-23 피어-투-피어 방식의 온라인 게임 방법 KR20030033527A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010065536A KR20030033527A (ko) 2001-10-23 2001-10-23 피어-투-피어 방식의 온라인 게임 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010065536A KR20030033527A (ko) 2001-10-23 2001-10-23 피어-투-피어 방식의 온라인 게임 방법

Publications (1)

Publication Number Publication Date
KR20030033527A true KR20030033527A (ko) 2003-05-01

Family

ID=29566067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010065536A KR20030033527A (ko) 2001-10-23 2001-10-23 피어-투-피어 방식의 온라인 게임 방법

Country Status (1)

Country Link
KR (1) KR20030033527A (ko)

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
KR970066928A (ko) * 1996-03-25 1997-10-13 케니쓰 올슨 다운로드된 프로그램들간의 안전한 피어-투-피어 통신을 위한 시스템 및 방법
KR20010074086A (ko) * 2001-02-13 2001-08-04 박준상 P2p 서비스 시스템 및 방법
KR20030006183A (ko) * 2001-07-12 2003-01-23 아이써프 주식회사 서버-클라이언트/피어-투-피어 방식을 병용하는 네트워크게임시스템

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
KR970066928A (ko) * 1996-03-25 1997-10-13 케니쓰 올슨 다운로드된 프로그램들간의 안전한 피어-투-피어 통신을 위한 시스템 및 방법
KR20010074086A (ko) * 2001-02-13 2001-08-04 박준상 P2p 서비스 시스템 및 방법
KR20030006183A (ko) * 2001-07-12 2003-01-23 아이써프 주식회사 서버-클라이언트/피어-투-피어 방식을 병용하는 네트워크게임시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
온라인 레이싱게임[한겨레 2001-02-12] *

Similar Documents

Publication Publication Date Title
US5925103A (en) Internet access device
US6928469B1 (en) Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
EP1206954B1 (en) Game machine, server system, information service method and recording medium
US7246155B2 (en) User name and profile information management
US7058690B2 (en) Method for registering user information to exchange message on network
KR100638071B1 (ko) 다중-사용자 애플리케이션 프로그램 인터페이스
US5862220A (en) Method and apparatus for using network address information to improve the performance of network transactions
KR100534816B1 (ko) 대화식하이퍼미디윰을작성하기위한방법및장치
EP1536612A1 (en) Method and apparatus for sharing applications using a peer-to-peer protocol
CN111643907A (zh) 一种游戏登录方法、装置、存储介质和电子设备
US20020156844A1 (en) Status notifying method in communication system, status notifying server and communication system
JPH1157215A (ja) ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲームクライアント装置、対局者選定プログラムを記録した媒体及び対局者情報取得プログラムを記録した媒体
US6785705B1 (en) Method and apparatus for proxy chaining
JP2016047266A (ja) 通信ゲームシステム
US20020061780A1 (en) Information terminal, information providing server, online game method and recording medium
US20020022478A1 (en) Server apparatus
KR20020007093A (ko) 인터넷을 이용한 자동 승패인식 기능을 갖는 일반게임중계 시스템 및 그의 중계방법
US8998719B1 (en) Network-enabled game controller
KR20010067829A (ko) 인터넷을 이용한 웹기반의 다자간 전략 시뮬레이션 게임제공 시스템 및 방법
US7654902B2 (en) User-name switching method on network game
KR20030033527A (ko) 피어-투-피어 방식의 온라인 게임 방법
KR100726181B1 (ko) 이종 메신저간의 메시지 전송 서비스 제공 방법 및 그프로그램이 기록된 기록 매체
KR20050051985A (ko) 아바타 시스템 및 아바타 생성 방법
KR100442084B1 (ko) 캐릭터 제공 시스템 및 그 방법
JP2006059267A (ja) アプリケーション実行システムおよびアプリケーション実行方法

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application