KR20080056257A - Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment - Google Patents

Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment Download PDF

Info

Publication number
KR20080056257A
KR20080056257A KR1020087010264A KR20087010264A KR20080056257A KR 20080056257 A KR20080056257 A KR 20080056257A KR 1020087010264 A KR1020087010264 A KR 1020087010264A KR 20087010264 A KR20087010264 A KR 20087010264A KR 20080056257 A KR20080056257 A KR 20080056257A
Authority
KR
South Korea
Prior art keywords
game
user
data
computer
chat
Prior art date
Application number
KR1020087010264A
Other languages
Korean (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 잭 미디어 엘엘시
Publication of KR20080056257A publication Critical patent/KR20080056257A/en

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/12
    • 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
    • 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/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • 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/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/08Raffle games that can be played by a fairly large number of people
    • A63F3/081Raffle games that can be played by a fairly large number of people electric
    • A63F2003/082Raffle games that can be played by a fairly large number of people electric with remote participants
    • A63F2003/086Raffle games that can be played by a fairly large number of people electric with remote participants played via telephone, e.g. using a modem
    • 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/20Features 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 the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • A63F2300/208Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards for storing personal settings or data of the player
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/532Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5513Details of game data or player data management involving billing
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/572Communication between players during game play of non game information, e.g. e-mail, chat, file transfer, streaming of audio and streaming of video

Abstract

A computer implemented method, a data processing system, and computer program product are provided for monitoring user game-playing behavior and reporting game play data (314) in a gaming environment. A software agent (301) is provided for monitoring gaming characteristics of the user (300) responsive to a launch of a game by a user (300). The software agent (301) also identifies a game state (718) based on the gaming characteristics. The software agent (301) collects game play data (314) of the user (300) if the game state (718) is changed (408), and reports the game play data (314) for processing.

Description

게임환경에서 사용자의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치{METHOD AND APPARATUS FOR MONITORING USER GAME-PLAYING BEHAVIOR AND REPORTING GAME PLAY DATA IN A GAMING ENVIRONMENT}METHOD AND APPARATUS FOR MONITORING USER GAME-PLAYING BEHAVIOR AND REPORTING GAME PLAY DATA IN A GAMING ENVIRONMENT}

본 발명은 게임환경, 구체적으로는 게임환경에서의 게임플레이, 더 구체적으로는 게임환경에서 게임플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 것에 관한 것이다. The present invention relates to monitoring gameplay behavior and reporting gameplay data in game environments, specifically gameplay in game environments, and more specifically in game environments.

인터넷의 발달로, 전세계의 게이머들이 장소나 시간의 제약 없이 온라인을 통해 양방향으로 게임을 할 수 있게 되었다. 온라인 공동게임에서, 게이머들은 게임에 관한 정보는 물론 게임에 관한 다른 관심사, 예컨대, 사용성이나 원하는 특징과 같은 관심사도 공유할 수 있다. 게임을 제작하는 게임사의 입장에서는 게이머들의 관심사가 마케팅, 게임개발 및 게임제작에 관한 유용한 정보원이 된다. 게이머들의 관심사는 게임사가 판매추세를 확인하는데 도움을 주는 통계도 된다. 이런 통계자료의 예로는 지리, 요금, 가격대비 판매율을 근거로한 판매도표가 있다.With the development of the Internet, gamers around the world have been able to play online in both directions, regardless of location or time. In online collaborative games, gamers can share information about the game as well as other interests in the game, such as usability or desired features. For game companies that produce games, their interests are useful sources of information about marketing, game development, and game production. Gamers' interest is also a statistic that helps game companies to identify sales trends. Examples of such statistics are sales charts based on geography, prices, and price-to-sales ratios.

GamerMetrics와 같은 공동게임 소프트웨어는 게임사를 위해 게이머의 관심사를 분석한다. GamerMetrics는 ING Entertainment사의 제품으로, 게임 구입사이클을 통해 게이머의 활동을 취급하며, 게임을 구입하도록 결심하는 인자들을 수집한다. 그러나, 게임을 구입한 뒤에는 전혀 분석이 이루어지지 않는데, 이는 판매 시점까지의 게이머 활동만 모니터하기 때문이다. 판매 후에도 데이터를 제공하는 온라인 공동게임 소프트웨어가 있기는 해도, 게임이 세일중이거나 게임을 할 때 요금이 부과되기 때문에 이 데이터는 상당히 편향되어 있다. 또, 현재의 공동게임 소프트웨어로는 실제 게임활동을 확인하지 못한다. 예를 들면, 매월 가입비를 내야 하는 사용자의 경우 게임서버에 2일간 로그인해도 활동시간은 겨우 2시간인 경우가 태반이다.Co-game software such as GamerMetrics analyzes the interests of gamers for game companies. GamerMetrics is a product of ING Entertainment Inc. that handles gamers' activities through the game buying cycle and collects the factors that they decide to buy the game. However, after purchasing the game, no analysis is done because it only monitors gamer activity up to the point of sale. Although there is online co-game software that provides data after sale, the data is quite biased because the game is on sale or charged when playing. In addition, current co-game software does not confirm actual game activity. For example, a user who has to pay a monthly subscription fee is the placenta, even if he logs in to the game server for two days, the activity time is only two hours.

게임사 입장에서 제작할 게임의 종류를 결정하는데 판매전 데이터가 중요하지만, 판매추세를 더 모니터하는데 있어서는 판매후 데이터도 마찬가지로 중요하다. 판매후 데이터가 있으면 게이머의 행동을 분석할 수 있고, 게이머가 게임을 구입한 뒤 무엇을 하는지 분석할 수 있다. 판매후 데이터로 알 수 있는 것은, 얼마나 많은 시간 게임을 하는지, 판매후 얼마 동안(몇일, 몇주, 몇달 등)이나 게임을 하는지, 누가 게임을 하는지, 어디서 게임하는지 등등이다.Pre-sale data is important for game companies to determine the kind of games to be produced, but post-sale data is equally important for further monitoring the sales trend. After-sales data can be used to analyze the behavior of the gamer and what the gamer does after buying the game. The after-sale data tells you how many hours of games you play, how long you spend playing games (days, weeks, months, etc.), who plays games, where you play, and so on.

또, 판매후 데이터는 게임의 인기도와 수명을 분석하는데 도움이 된다. 이런 판매후 정보는 속편을 개발할지, 타 경쟁사와 시중에서 협력할지, 어떤 종류의 청중에 초점을 맞출지, 게임타이틀을 더 개발할지, 미래의 게임개발을 위해 상세한 인구통계자료를 만들지, 향후의 개발시기, 미래의 게임개발을 위한 예산과 마케팅 제약 등을 결정하는데 도움이 된다. 현재 이런 판매후 데이터를 제공하는 솔루션은 전혀 없으며, 게이머가 오프라인에 있는 동안 게임플레이 데이터를 모니터하는 솔루션도 전혀 없다. GamerMetrics와 같은 솔루션은 온라인 게임을 하는 동안에만 분 석을 한다. 또, 편향적이지 않은 싱글플레이 게임플레이 데이터를 제공하는 솔루션도 없는데, 이는 모든 솔루션이 2명 이상의 게이머가 게임을 하는 동안의 게임플레이 데이터를 제공하기 때문이다. Post-sale data also helps to analyze the popularity and longevity of the game. Whether this post-sales information will develop sequels, work with other competitors on the market, what kind of audience to focus on, develop more game titles, generate detailed demographics for future game development, This will help determine when to develop, budget and marketing constraints for future game development. No solution currently provides this post-sale data, and no solution monitors gameplay data while gamers are offline. Solutions like GamerMetrics analyze only while playing online games. There is also no solution that provides non-biased single-player gameplay data, since all solutions provide gameplay data while two or more gamers play the game.

또, IGN의 GamerMetrics와 Gamespy같은 서비스의 가입은 이 서비스가 유료이기 때문에 제한적이다. 게이머들은 싱글플레이나 멀티플레이 환경에 상관없이 서비스에 가입할 수 있다. 문제는 게이머의 활동에서 수집한 데이터가 여전히 IGN이 운용하는 네트웍서버에서 기인한다는 것이다. Also, subscriptions to services like IGN's GamerMetrics and Gamespy are limited because the service is paid. Gamers can subscribe to the service whether in a single player or multiplayer environment. The problem is that the data collected from gamers' activities still comes from network servers operated by IGN.

본 발명의 특징은 게임환경에서 사용자 게임플레이 행동을 모니터하고 게임플레이 데이터를 보고하기 위한 컴퓨터 구현방법, 데이터 처리장치 및 컴퓨터 프로그램 매체를 제공하는데 있다. 게임을 시작하는 사용자의 게임특성들이 모니터되고, 이런 게임특성을 기초로 게임상태가 확인된다. 게임상태에 변화가 있으면 사용자의 게임플레이 데이터가 수집되고, 이 데이터는 처리된다. It is a feature of the present invention to provide a computer implemented method, a data processing apparatus and a computer program medium for monitoring user gameplay behavior and reporting gameplay data in a gaming environment. The game characteristics of the user who starts the game are monitored and the game status is confirmed based on these game characteristics. If there is a change in the game state, the gameplay data of the user is collected and this data is processed.

이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 특징을 보여주는 데이터 처리장치의 네트웍;1 is a network of data processing apparatus showing features of the present invention;

도 2는 본 발명에 따른 데이터 처리장치의 블록도2 is a block diagram of a data processing apparatus according to the present invention;

도 3은 본 발명의 구성요소들 사이의 연결관계를 보여주는 블록도;3 is a block diagram showing the connection between components of the present invention;

도 4는 본 발명에 따라 게임플레이 데이터를 수집하고 크레딧을 쌓는 과정의 순서도;4 is a flowchart of a process of collecting game play data and accumulating credits according to the present invention;

도 5는 본 발명에 따라 사용자 게임플레이 데이터를 처리하는 과정의 순서도;5 is a flow chart of a process of processing user gameplay data in accordance with the present invention;

도 6은 사용자의 계좌 크레딧 소비를 관리하는 순서도;6 is a flow chart of managing user account credit consumption;

도 7은 게이머, 소프트웨어 에이전트, 데이터베이스 서버, 웹서버, 채팅서버의 실행과정의 블록도;7 is a block diagram of an execution process of a gamer, a software agent, a database server, a web server, and a chat server;

도 8A~B는 게이머, 소프트웨어 에이전트, 서버, 채팅서버의 활동들을 보여주는 블록도;8A-B are block diagrams illustrating the activities of gamers, software agents, servers, and chat servers;

도 9는 게임상태를 판단하는 순서도;9 is a flowchart for determining a game state;

도 10A~C는 사용자 게임플레이 데이터 확인, 저장, 전송할 때 관련된 활동들과 데이터를 설명하는 블록도10A-C are block diagrams illustrating activities and data related to viewing, storing, and transmitting user gameplay data.

도 11A~B는 본 발명을 구현하는데 사용되는 클래스의 블록도;11A-B are block diagrams of classes used to implement the present invention;

도 12A~B는 본 발명의 채팅기능을 설명하는 순서도;12A-B are flowcharts illustrating a chat function of the present invention;

도 13A는 본 발명에 따라 서버의 관점에서 사용자의 게임플레이 데이터를 수집하는 순서도;13A is a flow chart of collecting gameplay data of a user from the perspective of a server in accordance with the present invention;

도 13B는 도 3의 소프트웨어 에이전트(301) 관점에서 사용자 게임플레이 데이터를 수집하는 순서도.FIG. 13B is a flow chart of collecting user gameplay data from the software agent 301 perspective of FIG. 3.

도 1~2는 본 발명의 일례를 구현하기 위한 데이터 처리환경의 블록도로서, 단지 예를 든 것일 뿐임을 알아야 한다. 1 to 2 are block diagrams of a data processing environment for implementing an example of the present invention, and are merely examples.

도 1은 본 발명의 특징을 보여주는 데이터 처리장치의 네트웍을 보여준다. 네트웍 데이터 처리장치(100)는 본 발명의 일례를 구현하는 컴퓨터 네트웍으로, 이곳에 포함된 네트웍(102)은 시스템에 연결된 여러 기기와 컴퓨터 사이의 통신링크를 제공하는 매체이다. 네트웍(102)은 유무선 통신링크나 광섬유케이블을 모두 포함한다.1 shows a network of data processing apparatus showing features of the present invention. The network data processing apparatus 100 is a computer network embodying an example of the present invention. The network 102 included therein is a medium for providing a communication link between various devices connected to a system and a computer. The network 102 includes both wired and wireless communication links or optical fiber cables.

서버(104,106)는 저장장치(108)와 함께 네트웍(102)에 연결되고, 클라이언트(110,112,114) 역시 네트웍에 연결된다. 클라이언트(110,112,114)는 PC나 네트웍 컴퓨터를 포함한다. 서버(104)는 부트파일, 연산시스템 영상, 애플리케이션과 같은 데이터를 클라이언트(110,112,114)에 제공한다. 클라이언트(110,112,114)는 여기서는 서버(104)의 클라이언트이고, 서버(104)는 클라이언트에서 사용자가 플레이하는 게임을 유치하는 게이머 서버이다. 물론, 다른 서버, 클라이언트, 기기들이 네트웍데이터 처리장치(100)에 더 포함될 수도 있다.Servers 104 and 106 are connected to network 102 together with storage 108 and clients 110, 112 and 114 are also connected to the network. Clients 110, 112, and 114 include PCs or network computers. The server 104 provides data to the clients 110, 112, and 114 such as a boot file, a computing system image, and an application. Clients 110, 112, and 114 are here clients of server 104, and server 104 is a gamer server that attracts games played by users on the clients. Of course, other servers, clients, devices may be further included in the network data processing apparatus 100.

본 실시예의 처리시스템(100)은 전세계적인 네트웍(102)을 갖는 인터넷으로서, TCP/IP(Transmission Control Protocol/Internet Protocol)을 사용한다. 인터넷의 핵심은 메이저 노드나 호스트컴퓨터 사이의 고속 통신선으로, 호스트컴퓨터는 데이터와 메시지를 라우팅하는 상업용, 정부기관용, 교육용의 수천대의 컴퓨터시스템으로 구성된다. 몰론, 이 처리시스템(100)을 여러 종류의 네트웍, 예컨대 인터넷, LAN, WAN 등등으로 구성할 수도 있다. 도 1의 예는 단지 일례일 뿐이고, 본 발명을 제한하는 것은 아니다.The processing system 100 of the present embodiment uses Transmission Control Protocol / Internet Protocol (TCP / IP) as the Internet having a worldwide network 102. At the heart of the Internet is a high-speed communications line between major nodes or host computers, which are comprised of thousands of computer systems for commercial, government, and educational purposes that route data and messages. Of course, this processing system 100 may be configured with various types of networks, such as the Internet, LAN, WAN, and the like. The example of FIG. 1 is merely an example and does not limit the present invention.

도 2는 데이터 처리장치(200)의 블록도로서, 이 데이터 처리장치는 도 1의 서버(104)나 클라이언트(110)와 같은 컴퓨터이고 본 발명을 구현하기 위한 프로세 스를 실현하는 컴퓨터 사용 코드나 명령어들이 로딩되어 있다.FIG. 2 is a block diagram of a data processing apparatus 200, which is a computer, such as a server 104 or a client 110 of FIG. 1, and computer usable code for realizing the process for implementing the present invention. I have commands loaded.

이 데이터 처리장치(200)는 NB/MCH(202; north bridge and memory controller hub)와 SB/ICH(204; south bridge and input/output controller hub)를 포함한 허브 아키텍처를 채택한다. 처리장치(206), 메인메모리(208), 그래픽 프로세서(210)가 NB/MCH(202)에 연결되지만, 그래픽 프로세서(210)는 AGP(accelerated graphics port)를통해 NB/MCH(202)에 연결되기도 한다. This data processing device 200 employs a hub architecture that includes a north bridge and memory controller hub (NB / MCH) 202 and a south bridge and input / output controller hub (SB / ICH) 204. The processing unit 206, main memory 208, and graphics processor 210 are connected to the NB / MCH 202, but the graphics processor 210 is connected to the NB / MCH 202 via an accelerated graphics port (AGP). Sometimes.

LAN 어댑터(212)는 SB/ICH(204)에 연결되고, 오디오 어댑터(216), 키보드/마우스 어댑터(220), 모뎀(222), ROM(224), HDD(226), CD-ROM 드라이브(230), USB 포트와 기타 통신포트(240), PCI/PCIe 기기(234)는 버스(238,240)를 통해 SB/ICH(204)에 연결된다. PCI/PCIe 기기에는 노트북 컴퓨터용의 이더넷 어댑터, AIC(add-in card) 또는 PC 카드가 포함된다. PCI는 카드버스 컨트롤러를 이용하지만, PCIe는 그렇지 않다. ROM(224)으로는 플래시 BIOS(binary input/output system)가 있을 수 있다.The LAN adapter 212 is connected to the SB / ICH 204 and includes an audio adapter 216, a keyboard / mouse adapter 220, a modem 222, a ROM 224, an HDD 226, a CD-ROM drive ( 230, USB and other communication ports 240, PCI / PCIe devices 234 are connected to the SB / ICH 204 via buses 238, 240. PCI / PCIe devices include Ethernet adapters, add-in cards (AICs) or PC cards for notebook computers. PCI uses a cardbus controller, but PCIe does not. The ROM 224 may include a flash binary input / output system (BIOS).

HDD(226)와 CD-ROM 드라이브(230)는 버스(240)를 통해 SB/ICH(204)에 연결된다. HDD(226)와 CD-ROM 드라이브(230)는 예컨대 IDE(integrated drive electronics)나 SATA(serial advanced technology attachment) 인터페이스를 사용할 수 있다. SIO(super I/O) 기기(236)도 SB/ICH(204)에 연결될 수 있다.The HDD 226 and the CD-ROM drive 230 are connected to the SB / ICH 204 via the bus 240. The HDD 226 and the CD-ROM drive 230 may use, for example, integrated drive electronics (IDE) or serial advanced technology attachment (SATA) interfaces. Super I / O (SIO) device 236 may also be coupled to SB / ICH 204.

처리장치(206)에서 돌아가는 운용시스템은 시스템내 각종 요소들을 조절한다. 운용시스템으로는 시중에서 구입할 수 있는 MS 윈도우 XP를 사용할 수 있다. Java 프로그래밍 시스템과 같은 객체지향 시스템을 운용시스템과 같이 사용하면, 데이터 처리장치(200)에서 실행되는 Java 프로그램이나 애플리케이션으로부터 운용시스템을 호출할 수 있다. Java는 미국 선마이크로 시스템사의 상표명이다.The operating system running on the processing unit 206 regulates various elements in the system. The operating system can use commercially available MS Windows XP. When an object-oriented system such as a Java programming system is used together with an operating system, the operating system can be called from a Java program or application executed in the data processing apparatus 200. Java is a trademark of Sun Microsystems, Inc.

데이터 처리장치(200)는 서버로서 IBM의 eServer pSeries 컴퓨터시스템을 예로 들 수 있고, 이는 AIX(Advanced Interactive Executive) 운용시스템이나 LINUX 운용시스템을 채택한다. eServer, pSeries, AIX 모두 미국의 International Business Machines 사의 상표이고 LINUX는 미국의 Linus Torvalds사의 상표이다. 데이터 처리장치(200)는 처리장치(206)에 프로세서가 여러개 들어있는 SMP(symmetric multiprocessor) 시스템이 일반적이지만, 싱글 프로세서 시스템을 채택할 수도 있다.The data processing apparatus 200 may be an IBM eServer pSeries computer system as a server, which adopts an AIX (Advanced Interactive Executive) operating system or a LINUX operating system. eServer, pSeries, and AIX are all trademarks of International Business Machines Inc. in the United States and LINUX is a trademark of Linus Torvalds Inc. in the United States. The data processing apparatus 200 is generally a symmetric multiprocessor (SMP) system in which a plurality of processors are included in the processing apparatus 206, but a single processor system may be adopted.

운용시스템과 객체지향 프로그래밍 시스템과 애플리케이션이나 프로그램을 위한 명령어들은 저장장치인 HDD(226)에 저장되었다가 처리장치(206)에 의해 메인메모리(208)에 실행 대기될 수 있다. 본 발명의 프로세스는 컴퓨터용 프로그램코드를 이용해 처리장치(206)에서 실행되는데, 프로그램코드는 메인메모리(208), ROM(224)와 같은 메모리나 주변기기(226,230)에 저장될 수 있다.Instructions for the operating system and the object-oriented programming system and the application or program may be stored in the storage unit HDD 226 and then waited for execution in the main memory 208 by the processing unit 206. The process of the present invention is executed in the processing device 206 using computer program code, which may be stored in a memory, such as main memory 208, ROM 224, or in peripherals 226, 230.

당업자라면 알 수 있겠지만, 도 1~2의 하드웨어는 상황에 따라 바뀔 수 있다. 플래시메모리, 비휘발성 메모리, 광디스크 드라이브와 같은 다른 하드웨어나 주변기기를 도 1~2의 하드웨어에 대체하여 또는 함께 사용할 수 있다. 또, 본 발명의 과정을 멀티프로세서 데이터 처리장치에 응용할 수도 있다.As will be appreciated by those skilled in the art, the hardware of FIGS. 1-2 may vary depending on the situation. Other hardware or peripherals, such as flash memory, nonvolatile memory, optical disk drives, may be used in place of or in combination with the hardware of FIGS. It is also possible to apply the process of the present invention to a multiprocessor data processing apparatus.

경우에 따라, 데이터 처리장치(200)가 PDA(personal digital assistant)일 수도 있는데, 이 경우 운용시스템 파일이나 유저생성 데이터를 저장하는데 비휘발 성 메모리를 사용할 수 있다. In some cases, the data processing apparatus 200 may be a personal digital assistant (PDA). In this case, a nonvolatile memory may be used to store an operating system file or user generated data.

도 2의 경우 버스(238,240)를 이용하는데, 구성요소나 기기들 사이에 데이터를 전송할 수 있는 통신기기면 어떤 종류도 이용할 수 있다. 이런 통신기기는 도 2의 모뎀(222)이나 네트웍 어댑터(212)와 같이 데이터 송수신에 사용하는 기기를 포함한다. 메모리는 도 2의 NB/MCH(202)에서 볼 수 있는 메인메모리(208), ROM(224) 또는 캐시를 사용할 수 있다. 본 발명은 도 1~2를 참조하여 위에서 설명한 구조에 한정되지 않는다. 예를 들어, 데이터 처리장치(200)가 PDA 형태의 태블릿 컴퓨터, 랩탑컴퓨터, 전화기일 수도 있다. In the case of FIG. 2, buses 238 and 240 may be used. Any type of communication device capable of transmitting data between components or devices may be used. Such a communication device includes a device used for data transmission and reception, such as the modem 222 or the network adapter 212 of FIG. The memory may use main memory 208, ROM 224, or cache as seen in NB / MCH 202 of FIG. 2. The present invention is not limited to the structure described above with reference to FIGS. For example, the data processing apparatus 200 may be a PDA-type tablet computer, laptop computer, or telephone.

본 발명의 특징은 사용자의 게임플레이 행동을 모니터했다가 게임플레이 데이터를 보고하는데 있다. 게임플레이 데이터를 사용자로부터 생성하기 위해, 본 발명은 게임시스템에 다운로드해 설치할 수 있는 소프트웨어 에이전트를 제시한다. 게임시스템은 도 2의 데이터 처리장치(200)와 같은 컴퓨터시스템이나, 코드의 다운로드나 설치를 지원하는 다른 게임 엔터테인먼트 시스템을 포함한다. 게임 엔터테인먼트 시스템에는 소니의 플레이스테이션2, 마이크로소프트사의 XBox가 있다. 소프트웨어 에이전트는 게임 특징을 정확히 모니터하여 사용자가 적극적으로 게임을 즐기고 사용자의 상황이 바뀌면 사용자의 게임플레이 데이터를 수집하는지 여부를 판단한다. 소프트웨어 에이전트가 모니터하는 게임특징의 예를 보면, 마우스 사용, 조이스틱 사용, 키보드 사용, CPU 활용, 유저액티브 윈도우와 유저메모리 사용, 유저 네트웍 연결 등이 있다.It is a feature of the present invention to monitor gameplay behavior of a user and then report gameplay data. In order to generate gameplay data from a user, the present invention provides a software agent that can be downloaded and installed on a game system. The game system includes a computer system such as the data processing apparatus 200 of FIG. 2 or another game entertainment system that supports downloading or installing code. Game entertainment systems include Sony's PlayStation 2 and Microsoft's XBox. The software agent accurately monitors game features to determine whether the user actively plays the game and collects the user's gameplay data when the user's situation changes. Examples of game features monitored by software agents include mouse usage, joystick usage, keyboard usage, CPU utilization, user active windows and user memory usage, and user network connectivity.

게임플레이 데이터는 사용자가 게임을 하는 방식을 보여주는 데이터이다. 사 용자는 게임을 시작하기 전에 소프트웨어 에이전트를 작동시켜 게임플레이 데이터를 수집한다. 소프트웨어 에이전트가 판단하기에 게임특성에 맞게 사용자가 적극적으로 게임을 플레이한다고 결정하거나 게임상황에 변화가 일어났다고 판단하면, 사용자 게임플레이 데이터를 수집하고 게임플레이 행동을 계속 모니터한다. 한편, 소프트웨어 에이전트가 사용자가 게임을 시작할 때 자동으로 작동될 수도 있다. 사용자 게임플레이 데이터는 플레이시간, 게임을 플레이한 날짜, 게임 타이틀, 기타 성능 통계자료를 포함한다. 다른 일반적인 게임 소프트웨어와는 달리, 본 발명의 소프트웨어 에이전트는 온라인과 오프라인 양쪽으로 게임플레이 데이터를 수집한다. Gameplay data is data that shows how a user plays a game. The user starts the software agent to collect gameplay data before starting the game. If the software agent determines that the user actively plays the game according to the game characteristics or determines that the game situation has changed, the user collects the user gameplay data and continuously monitors the gameplay behavior. On the other hand, the software agent may be automatically activated when the user starts the game. User gameplay data includes play time, date the game was played, game title, and other performance statistics. Unlike other general game software, the software agent of the present invention collects gameplay data both online and offline.

사용자 게임플레이 데이터는 소프트웨어가 작동되는 동안 수집된다. 사용자는 인터넷에 접속하여 원격으로 게임을 하거나 인터넷접속 없이 PC에서 직접 게임을 플레이할 수 있다. 소프트웨어 에이전트는 게임플레이 데이터를 온라인으로 원격 수집하거나 오프라인으로 수집한다. 사용자 게임플레이 데이터는 양방향 팁이나 힌트를 위한 동적 서비스는 물론 사용자들 사이의 통신을 위한 동적 유저인터페이스를 생성하는데 사용되기도 한다. 동적서비스의 예로는 경쟁리그, 토너먼트 게임, 통계경쟁게임이 있는데, 물론 이에 한정되지도 않는다.User gameplay data is collected while the software is running. Users can connect to the Internet to play games remotely or play games directly on a PC without an Internet connection. The software agent collects gameplay data remotely online or offline. User gameplay data can be used to create dynamic user interfaces for communication between users as well as dynamic services for interactive tips and hints. Examples of dynamic services include, but are not limited to, competition leagues, tournament games, and statistical competition games.

소프트웨어 에이전트가 온라인이나 오프라인으로 사용자의 게임플레이 데이터를 수집한 뒤에는 언제라도, 네트웍 연결만 되어있다면 서버와 통신하면서 이 데이터를 저장하고 처리할 수 있다. 네트웍이 항상 연결상태가 아니면, 게임플레이 데이터를 저장했다가 연결이 되었을 때 전송한다. 대부분의 경우 네트웍연결은 인터넷이다. 본 실시예에서는, 소프트웨어 에이전트와 서버가 통신보안 프로토콜을 통해 서로 통신하는데, 예를 들면 보안 SOAP(simple object access protocol)-over-HTTPS(hypertext transfer protocol)가 있다. SOAP는 호스트 사이의 작성어 메시지를 기반으로 설정된 프로토콜이고, HTTPS는 HTTP(hypertext transfer protocol)를 이용해 데이터를 전송하는 보안수단이다. HTTPS는 40비트나 128비트 암호이다. 일례로, 서버와 클라이언트 사이에 전송되는 작성어 메시지에 맞춘 SOAP 상부에 웹서비스를 제공하는데 특징이 있다. 작성어 메시지의 포맷은 전용 WSDL(Web Service Description Language) 파일을 이용해 정의된다. Any time after a software agent has collected your gameplay data online or offline, you can store and process this data while communicating with the server if you have a network connection. If the network is not always connected, it stores gameplay data and sends it when connected. In most cases, the network connection is the Internet. In this embodiment, the software agent and server communicate with each other via a communication security protocol, for example, a secure simple object access protocol (SOAP) -over-hypertext transfer protocol (HTTPS). SOAP is a protocol based on a written message between hosts, and HTTPS is a security means for transmitting data using a hypertext transfer protocol (HTTP). HTTPS is a 40-bit or 128-bit cipher. For example, it features a Web service on top of SOAP that aligns the composed message sent between the server and the client. The format of a compose message is defined using a dedicated Web Service Description Language (WSDL) file.

소프트웨어 에이전트와 서버는 동적데이터와 정적데이터를 서로에게 제공한다. 정적데이터는 에이전트 스킨파일, 게임리스트, 게임법칙, 기타 소프트웨어 에이전트를 구성하는 구성파일을 포함한다. 동적데이터는 스트리밍 통계, 채팅친구 리스트, 친구상태, 지역사용자 상태(활동중, 휴식중 또는 비활동중), 실시간 성능 통계 등을 포함한다. 에이전트 스킨파일은 애플리케이션 윈도우 위로 계층화되어 윈도우의 모양과 느낌을 조정하는 영상파일이다. 네트웍접속이 되지 않은 경우, 네트웍접속이 감지될 때까지 수집된 사용자 게임플레이 데이터를 계속해서 클라이언트 게임플레이 데이터 파일에 국부적으로 축적한다. 네트웍접속이 된 경우에는 클라이언트 게임플레이 데이터가 계속 국부적으로 축적된다. 그러나, 클라이언트 게임데이터는 임계치를 근거로 적극적으로 서버에 보내진다. 예를 들어, 사용자가 온라인에 있고 10개 업데이트를 축적했으면, 이들 업데이트는 서버로 보내지고 클라이언트 게임플레이 데이터파일은 리셋된다. 즉, 클라이언트 게임데이터는 로컬 기기에 저장된 게임데이터나 실시간으로 서버에 보내지는 다른 게임데이터를 포함함 을 알 수 있다. Software agents and servers provide each other with dynamic and static data. Static data includes agent skin files, game lists, game rules, and configuration files that make up other software agents. Dynamic data includes streaming statistics, chat buddy list, buddy status, local user status (active, rested or inactive), real-time performance statistics, and the like. Agent skin files are image files that are layered over the application window to control the look and feel of the window. If there is no network connection, the collected user gameplay data continues to be accumulated locally in the client gameplay data file until network connection is detected. In the case of a network connection, client gameplay data continues to be accumulated locally. However, client game data is actively sent to the server based on the threshold. For example, if the user is online and has accumulated 10 updates, these updates are sent to the server and the client gameplay datafile is reset. That is, it can be seen that the client game data includes game data stored in the local device or other game data sent to the server in real time.

서버는 소프트웨어 에이전트로부터 사용자 게임플레이 데이터를 받아 처리하는데, 구체적으로는 데이터베이스에 업데이트한다. 도시된 실시예에서, 데이터베이스는 여러 사용자를 위해 수집된 모든 게임플레이 데이터를 포함한다. 데이터베이스의 업데이트 데이터를 근거로, 사용자의 개인계좌를 관리한다. 사용자의 개인계좌는 가상의 쇼핑몰에서 상품이나 서비스를 사는데 사용될 크레딧이 입금되어 있다. The server receives the user gameplay data from the software agent and processes it, specifically updating the database. In the illustrated embodiment, the database includes all gameplay data collected for various users. Manage personal accounts of users based on updated data in the database. The user's personal account is credited to be used to buy goods or services in the virtual shopping mall.

사용자 개인계좌의 관리는 사용자 계좌로의 크레딧 입금과 쇼핑몰에서 크레딧의 소비관리를 포함한다. 사용자는 가상 쇼핑몰에서 주문한 상품이나 서비스에 크레딧을 쓸 수 있다. 크레딧 입금은 게임에 쓴 총 시간과 같은 게임플레이 데이터나, 사용자가 게임으로 모은 포인트와 같은 인센티브를 근거로 할 수 있다. 사용시간이나 포인트 외에도, 킬(kill), 레벨, 임무완수, 상태, 승리(win)와 같은 다른 종류의 인센티브를 크레딧 입금에 사용하기도 한다.The management of the user's personal account includes the deposit of credits into the user account and the management of the consumption of credits in the shopping mall. The user may spend credits on goods or services ordered from the virtual shopping mall. Credit deposits can be based on gameplay data, such as the total time spent in the game, or on incentives, such as points collected by the user. In addition to time and points, other types of incentives such as kill, level, mission completion, status, and win are also used to credit credit.

도 3은 본 발명의 구성요소들 사이의 연결관계를 보여주는 블록도이다. 데이터 처리장치(302)나 게임콘솔(310) 안에 소프트웨어 에이전트(301)가 구현되고, 데이터 처리장치(302)는 도 2의 데이터 처리장치(20)처럼 구현된다. 게임콘솔(310)은 플레이스테이션2나 XBox와 같은 게임 엔터테인먼트 시스템으로 구현된다. 3 is a block diagram showing a connection between components of the present invention. The software agent 301 is implemented in the data processing apparatus 302 or the game console 310, and the data processing apparatus 302 is implemented as the data processing apparatus 20 of FIG. 2. Game console 310 is implemented as a game entertainment system, such as PlayStation 2 or XBox.

게임플레이 데이터를 생성하기 위해, 소프트웨어 에이전트(301)는 게임특징을 모니터하면서 사용자(300)가 적극적으로 게임을 하는지 여부를 판단한다. 이런 게임특징에는 마우스 사용, 조이스틱 사용, 키보드 사용, 프로세서 활용, 액티브 윈도우, 메모리 사용, 네트웍 접속 등이 포함된다. 소프트웨어 에이전트(301)는 마우스(306)의 물리적 상태를 정기적으로 문의하여 마우스 사용 여부를 안다. 마찬가지로, 키보드나 조이스틱의 사용 여부도 키보드(308)와 조이스틱(304)의 물리적 상태를 정기적으로 문의하면 알 수 있다. 또, 소프트웨어 에이전트(301)는 PDA(328)나 스파트폰(332)와 같은 하드웨어 기기의 물리적 상태를 정기적으로 문의하여 다른 입력기기의 사용 여부를 알 수 있다.To generate gameplay data, the software agent 301 determines whether the user 300 is actively playing a game while monitoring game features. These game features include mouse use, joystick use, keyboard use, processor utilization, active windows, memory use, and network access. The software agent 301 periodically inquires about the physical state of the mouse 306 to know whether to use the mouse. Similarly, the use of a keyboard or joystick may be known by regularly inquiring about the physical state of the keyboard 308 and joystick 304. In addition, the software agent 301 may periodically inquire about the physical state of a hardware device such as the PDA 328 or the spatphone 332 to determine whether another input device is used.

프로세서 활용, 액티브 윈도우, 메모리 사용, 네트웍 접속과 같은 다른 게임특징들은 사용자(300) 간섭 없이 데이터 처리장치(302)의 운용시스템에서 결정될 수 있다. 운용시스템이 제공하는 인터페이스에 의해 소프트웨어 에이전트(301)가 이런 게임특징들을 추출할 수 있다. 운용시스템으로는 윈도우 XP가 적당하다. 소프트웨어 에이전트(301)가 게임콘솔에서 구현되면, 사용자(300)가 게임컨트롤러(312)를 통해 게임콘솔(310)에 입력할 때 구해지는 게임컨트롤러 사용정보도 게임특징에 포함될 수 있다.Other game features, such as processor utilization, active window, memory usage, network connection, can be determined in the operating system of the data processing device 302 without user 300 interference. The software agent 301 may extract these game features by an interface provided by the operating system. Windows XP is a good operating system. When the software agent 301 is implemented in the game console, game controller usage information obtained when the user 300 inputs the game console 310 through the game controller 312 may also be included in the game feature.

게임 특징들을 기반으로, 소프트웨어 에이전트(301)는 사용자가 적극적으로 게임을 하는지 여부를 판단한다. 본 실시예에서는, 소프트웨어 에이전트(301)가 게임 상태를 지속적으로 모니터하면서 변화에 관련된 데이터를 수집하는데, 예를 들면 게임상태가 휴식에서 활동으로, 활동에서 정지로, 정지에서 휴식으로 등등 변할 때의 클라이언트 데이터를 수집한다. 사용자 게임플레이 데이터는 사용자(300)가 게임을 하는 방식을 반영하는 데이터로서, 플레이중인 게임의 타이틀, 유저네임, 플레이 기간, 기타 다른 통계학적인 성능데이터, 저장된 포인트 등이 있다. 성능통 계는 플레이중인 게임에 관한 모든 관련 측정값을 포함할 수 있다.Based on the game features, the software agent 301 determines whether the user is actively playing the game. In this embodiment, the software agent 301 continuously monitors the game state and collects data related to the change, for example, when the game state changes from rest to activity, from activity to stop, from stop to rest and so on. Collect client data. User gameplay data is data that reflects how the user 300 plays the game, such as the title of the game being played, the username, the duration of the play, other statistical performance data, and stored points. Performance statistics may include all relevant measurements of the game being played.

소프트웨어 에이전트(301)가 수집한 게임플레이 데이터는 전적으로 감시상황에서 샘플되는 사후 데이터라는 점에서 독특하다. 이런 사용자 게임플레이 데이터는 다른 게임 소프트웨어에서 수집하는 데이터보다 유리한데, 이는 판매 시점 이후 얻을 수 있는 정보이기 때문이다. 이 정보를 판매 이후 얻을 수 있다 해도, 편파적인 정보가 대부분이어서 게임플레이에는 고려되지 못한다. 소프트웨어 에이전트(301)가 수집한 사용자 게임플레이 데이터는 판매 후 현재 진행되는 상황을 반영할 뿐만 아니라, 회사에서 향후 추세를 예측하는데에도 도움이 된다. 게임기 판매대수가 작동되는 게임기 대수와는 다를 수 있다. 소프트웨어 에이전트(301)를 이용하면 현재 작동중인 게임기 수를 판단할 수 있으므로, 게임기 기획자나 바이어, 게임 공개자, 개발자, 분석가 등을 포함한 각종 투자자에게 유용한 사후 시장조사자료가 될 수 있다.The gameplay data collected by the software agent 301 is unique in that it is entirely post-data sampled in a surveillance situation. Such user gameplay data is advantageous over data collected by other game software because it is available after the point of sale. Although this information can be obtained after sale, it is mostly biased and cannot be considered in gameplay. The user gameplay data collected by the software agent 301 not only reflects the current situation after the sale, but also helps the company predict future trends. Game console sales may differ from the number of game consoles in operation. Since the software agent 301 can determine the number of game machines currently operating, it can be useful post market research data for various investors including game planners, buyers, game publishers, developers, analysts, and the like.

본 발명에서 특징으로 하는 사후 데이터는 편파적이지 않고 진실한 사후 게임 활동의 특징을 보여준다. 식사를 하는 고객의 욕구와 행동을 결정하는 것과 비슷하게, 레스토랑이나 부페에서 얻은 데이터는 약간은 편파적으로, 정보제공자 편향적이어서, 레스토랑에서 얻은 데이터는 레스토랑이 제공하는 정보에 편중된다. 마찬가지로, 부페에서는 식사할 음식의 선택과 양이 과식에 편중된다. 데이터를 수집하는 더 좋은 방법은 식사를 하는 동안의 개인의 식사 취향을 장기간에 걸쳐 조사하는 것이다. 이렇게 수집된 데이터는 레스토랑이나 부페에서 제공하는 음식의 종류를 기반으로 편중되거나 편파적이지 않을 것이다.The post data characterizing in the present invention demonstrates a characteristic of true post game activity that is not biased. Similar to determining the needs and behaviors of a dining customer, the data obtained from the restaurant or buffet is slightly biased and informant biased, so the data obtained from the restaurant is centered on the information provided by the restaurant. Similarly, in buffets the choice and amount of food to eat is largely overeating. A better way to collect data is to look at your individual's taste for a long time while eating. The data collected will not be biased or biased based on the type of food served at the restaurant or buffet.

수집된 게임플레이 데이터의 특징 이외에도, 소프트웨어 에이전트(301)는 온라인과 오프라인 양쪽으로 데이터를 수집한다는 점에서 현재의 게임 소프트웨어보다 우수하다. 현재의 공동게임 소프트웨어는 대부분 인터넷이나 지역 네트웍을 통해 다른 사용자와 온라인 게임을 하는 동안 데이터를 수집한다. 온라인으로 사용자 사이에서 수집되는 사용자 게임플레이 데이터는 편파적이거나 편중되어서 적극적인 게임 플레이를 반영하지 못한다. 지역 네트웍을 통해 게임을 하고 있는 사용자 사이에서 수집된 게임플레이 데이터는 외부 소스에 의한 모니터링에 쉽게 활용하지 못한다. 또, 현재의 공동게임 소프트웨어는 2인 이상의 사용자가 게임을 하는 동안에만 데이터를 수집하기 때문에 오프라인에서 일어나는 개인별 게임에 대한 데이터는 수집하지 못한다. In addition to the features of the collected gameplay data, the software agent 301 is superior to current game software in that it collects data both online and offline. Most current co-game software collects data while playing online games with other users over the Internet or local networks. User gameplay data collected between users online is biased or biased and does not reflect aggressive gameplay. Gameplay data collected between users playing games over local networks is not easily available for monitoring by external sources. In addition, current co-game software collects data only when two or more users play a game, and thus cannot collect data about individual games that occur offline.

소프트웨어 에이전트(301)는 게임플레이 데이터를 수집하면서 데이터 처리장치(302)나 게임콘솔(310)에서 네트웍접속이 가능한지 판단한다. 네트웍접속이 가능하면, 데이터 처리장치(302)나 게임콘솔(310)의 클라이언트 게임데이터 파일(314)에 모인 수집데이터를 SOAP-over-HTTPS와 같은 통신보안 프로토콜을 사용해 인터넷(316)을 통해 서버(320)에 보내는데, 이때 미리 설정된 임계치와 주기를 기반으로 보내고, 일례로 10분마다 보내도록 할 수 있다. 네트웍접속이 없으면, 네트웍접속이 감지될 때까지 수집된 데이터를 계속해서 데이터파일(314)에 모아둔다. 데이터파일(314)은 사용자(300)가 오프라인이나 온라인으로 게임을 하는 동안 사용자 게임플레이 데이터를 수집한다.The software agent 301 determines whether a network connection is possible from the data processing device 302 or the game console 310 while collecting game play data. If network connection is possible, the collected data collected in the client game data file 314 of the data processing device 302 or the game console 310 is collected through a server through the Internet 316 using a communication security protocol such as SOAP-over-HTTPS. In this case, the transmission is performed based on a threshold and a period set in advance, and may be sent every 10 minutes. If there is no network connection, the collected data continues to be collected in the data file 314 until network connection is detected. The data file 314 collects user gameplay data while the user 300 is playing a game offline or online.

수집된 데이터를 받은 서버(320)는 이를 추출하여 처리하는데, 기존의 데이 터와 같이 데이터베이스(322)에 업데이트하고, 이때 인터넷을 통해 데이터베이스(322)에 데이터를 보낼 수 있다. 데이터베이스(322)는 여러 사용자에게서 수집된 게임플레이 데이터의 이력을 구비한다. 서버(320)에 의해 데이터베이스(322)에 업데이트된 데이터는 다른 비즈니스 기능에 이용될 수 있다.The server 320 receives the collected data and processes the extracted data. The server 320 updates the database 322 like the existing data and sends the data to the database 322 through the Internet. Database 322 has a history of gameplay data collected from several users. Data updated by the server 320 in the database 322 may be used for other business functions.

예를 들어, 업데이트된 데이터에서 얻은 동적 통계자료를 소프트웨어 에이전트(301)에 바로 보내거나 데이터 처리장치(302)인 게임콘솔(310)의 웹페이지에 보낼 수 있다. 이렇게 되면, 사용자(300)는 개인 계좌의 상태에 관한 피드백을 바로 받을 수 있다.For example, the dynamic statistics obtained from the updated data can be sent directly to the software agent 301 or to the web page of the game console 310 which is the data processing device 302. In this case, the user 300 may immediately receive feedback regarding the status of the personal account.

본 발명이 실행할 수 있는 다른 비즈니스 기능은 사용자의 개인계좌의 관리이다. 개인계좌의 크레딧은 사용자가 사용해 상품이나 서비스를 구입하는데 사용된다. 본 발명에 의하면 사용자가 계좌에 크레딧을 입금했다가 가상의 쇼핑몰(324)에서의 크레딧 소비를 관리할 수 있다. Another business function that can be implemented by the present invention is the management of a user's personal account. Personal account credits are used by users to purchase goods or services. According to the present invention, the user deposits credit in the account and manages the credit consumption in the virtual shopping mall 324.

가상 쇼핑몰(324)는 사용자가 구입할 수 있는 다양한 상품이나 서비스를 구비하고 있고, 웹서버(321)에서 구현될 수 있다. 사용자(300)는 데이터 처리장치(302)를 통해 가상 쇼핑몰(324)과 거래하는데, 예컨대 가전제품, 게임소프트웨어, 식품, 상품권, 영화티켓 등을 구입할 수 있다.The virtual shopping mall 324 includes various products or services that a user can purchase and may be implemented in the web server 321. The user 300 deals with the virtual shopping mall 324 through the data processing device 302, for example, may purchase home appliances, game software, food, gift certificates, movie tickets, and the like.

이상 설명한 바와 같이, 사용자는 가상쇼핑몰(324)에서 주문한 상품이나 서비스에 자신의 크레딧을 쓸 수 있다. 사용자가 게임에 투자한 시간과 같은 실시간 게임플레이 데이터나, 게임에서 사용자가 쌓은 포인트와 같은 인센티브를 기반으로 계좌에 크레딧을 모을 수 있다. 또, 소프트웨어 에이전트(301)는 인터넷(316)을 통 해 채팅서버(326)와 통신하여 사용자(300)와 다른 사용자 사이의 채팅기능을 촉진하기도 한다.As described above, the user may write his or her credit on the goods or services ordered from the virtual shopping mall 324. You can collect credits in your account based on real-time gameplay data, such as the time a user spends in the game, or incentives, such as points accumulated by the user in the game. In addition, the software agent 301 may communicate with the chat server 326 via the Internet 316 to facilitate a chat function between the user 300 and another user.

도 4는 본 발명에 따라 게임플레이 데이터를 수집하고 크레딧을 쌓는 과정의 순서도이다. 이 과정은 도 3의 소프트웨어 에이전트(301)에서 이루어진다. 도 4에 의하면, 사용자가 소프트웨어 에이전트를 다운로드하여 데이터 처리장치나 게임콘솔에 설치할 때 과정이 시작한다(402 단계).4 is a flowchart of a process of collecting game play data and accumulating credits according to the present invention. This process is done in the software agent 301 of FIG. According to FIG. 4, the process starts when the user downloads the software agent and installs it on the data processing device or game console (step 402).

이어서, 게임에 앞서 사용자가 소프트웨어 에이전트를 가동한다(404 단계). 소프트웨어 에이전트는 게임 특징들을 모니터한다(406 단계). 게임특징들을 기반으로 게임 상태가 변하는지 여부에 관해 소프트웨어 에이전트가 판단한다(408 단계). 구체적으로, 소프트웨어 에이전트가 판단하는 방법에 대해서는 도 9A~B에서 설명한다. 게임 상태가 변하면, 소프트웨어 에이전트가 게임플레이 데이터를 수집하고(410 단계) 수집데이터를 클라이언트의 게임 데이터파일에 저장한다(412 단계). 소프트웨어 에이전트가 이런 데이터를 수집하는 방법에 대해서는 도 13A~B에서 자세히 설명한다. 게임상태가 변하지 않으면, 406 단계로 돌아가 게임특징을 계속 모니터하고, 408 단계에서 게임상태가 변했는지 다시 판단한다.The user then starts a software agent prior to the game (step 404). The software agent monitors game features (step 406). The software agent determines whether the game state changes based on the game features (step 408). In detail, the method of determining by the software agent will be described with reference to FIGS. 9A to B. If the game state changes, the software agent collects game play data (step 410) and stores the collected data in a game data file of the client (step 412). How the software agent collects this data is described in detail in Figures 13A-B. If the game state does not change, the process returns to step 406 and continues to monitor the game features, and again determines whether the game state has changed in step 408.

소프트웨어 에이전트는 게임플레이 데이터를 수집해 클라이언트 게임 데이터파일에 저장한다. 카운트나 주기를 업데이트하는 임계값이 충족되면(413 단계), 사용자가 현재 온라인 상태인지 판단한다(414 단계). 이 판단은 도 3의 데이터 처리장치(302)나 게임콘솔(310)에서 네트웍접속이 가능한지 여부를 근거로 한다. 사용자가 현재 온라인 상태이면, 소프트웨어 에이전트는 서버와 통신하여 수집데이터를 저장하고 처리한다(416 단계). 오프라인 상태이면 410 단계로 돌아가 계속 데이터를 수집하고 412 단계에서 수집데이터를 저장한다.The software agent collects gameplay data and stores it in a client game data file. If the threshold for updating the count or period is met (step 413), it is determined whether the user is currently online (step 414). This determination is based on whether a network connection is possible from the data processing apparatus 302 or the game console 310 of FIG. If the user is currently online, the software agent communicates with the server to store and process the collected data (step 416). If it is offline, the process returns to step 410 to continue collecting data and to store the collected data in step 412.

축적된 데이터는 사용자 시스템, 즉 데이터 처리장치(302)나 게임콘솔(310)내 클라이언트 게임데이터 파일에 저장된다. 이후, 소프트웨어 에이전트는 사용자의 개인계좌의 업데이트를 요구하고 서버로부터 크레딧의 확인을 받는다(418 단계). 이어서, 계좌 업데이트를 사용자에게 통보한다(420 단계). 420 단계는 선택적이고 이후 과정은 종료한다.The accumulated data is stored in a client game data file in the user system, that is, the data processing device 302 or the game console 310. The software agent then requests an update of the user's personal account and receives confirmation of the credit from the server (step 418). The user is then notified of the account update (step 420). Step 420 is optional and the process ends.

도 5는 본 발명에 따라 사용자 게임플레이 데이터를 처리하는 과정의 순서도로서, 도 3의 서버(320)에서 구현된다. 도 5에 의하면, 소프트웨어 에이전트가 도 4의 416 단계에서 서버와 통신한 뒤 과정이 시작한다. 소프트웨어 에이전트로부터의 통신을 서버가 감지하는데서 과정이 시작한다(502 단계). 이어서, 서버는 수집데이터를 데이터베이스에 업데이트한다(504 단계). 여러 사용자의 게임플레이 데이터 이력도 데이터베이스에 저장된다.5 is a flowchart of a process of processing user gameplay data according to the present invention, which is implemented in the server 320 of FIG. According to FIG. 5, the process begins after the software agent communicates with the server in step 416 of FIG. 4. The process begins with the server detecting the communication from the software agent (step 502). The server then updates the collected data to the database (step 504). The gameplay data history of several users is also stored in the database.

데이터베이스가 수집데이터로 업데이트되면, 이 데이터를 근거로 서버가 사용자 개인계좌에 크레딧을 입금한다(506 단계). 게임에 투자한 총 시간과 같은 실시간 누적 게임플레이 데이터를 기반으로 사용자 개인계좌에 크레딧을 입금할 수도 있고, 사용자가 게임을 위해 모은 포인트와 같은 인센티브를 기반으로 입금할 수도 있다. 이어서, 사용자는 개인계좌의 업데이트를 요청하고, 서버는 계좌 업데이트를 소프트웨어 에이전트나 웹사이트에 보낸다(508 단계). When the database is updated with the collected data, the server deposits credits into the user's personal account based on the data (step 506). You can deposit credits in your personal account based on real-time cumulative gameplay data, such as the total time you have invested in the game, or you can deposit based on incentives, such as points you have collected for the game. The user then requests an update of the personal account, and the server sends the account update to the software agent or website (step 508).

사용자 개인계좌에 크레딧이 입금되면, 사용자는 잔고를 확인하거나 가상쇼 핑몰에서 상품이나 서비스 가격을 지불할 수 있다. 본 발명의 다른 특징은 가상쇼핑몰에서 계좌 크레딧의 사용을 관리하는데 있다. 도 6은 사용자에 의한 계좌 크레딧의 소비를 관리하는 순서도로서, 도 3의 웹서버(321)에서 이루어진다. 도 6에 의하면 가상쇼핑몰에 로그인하는데서 시작한다(602 단계). 이어서, 웹서버는 데이터베이스에 업데이트된 데이터를 추적하고(604 단계), 계좌정보를 사용자에게 보여준다(606 단계). 이 단계에서는 물건구입을 할 크레딧이 있다는 것을 사용자에게 알려주는 광고를 디스플레이한다. 예를 들어, 사용자가 게임에 소비한 시간이 임계치를 넘었기 때문에 사용자에게 크레딧을 지급할 수 있다. When the credit is deposited in the user's personal account, the user can check the balance or pay the price of goods or services in the virtual shopping mall. Another feature of the present invention is to manage the use of account credit in the virtual shopping mall. FIG. 6 is a flowchart of managing consumption of account credit by a user, which is performed by the web server 321 of FIG. 3. According to FIG. 6, the user starts by logging in to the virtual shopping mall (step 602). The web server then tracks the updated data in the database (step 604) and shows the account information to the user (step 606). This step displays an advertisement informing the user that there is credit to purchase the item. For example, a credit can be given to the user because the time the user spent in the game exceeded a threshold.

계좌정보를 디스플레이한 뒤, 웹서버는 사용자가 가상쇼핑몰에서 구입할 수 있는 상품이나 서비스의 선택을 감지하고(608 단계), 이어서 선택한 상품이나 서비스 가격을 지불한다(610 단계). 따라서, 과정은 종료한다.After displaying the account information, the web server detects the selection of goods or services that the user can purchase in the virtual shopping mall (step 608), and then pays the price of the selected goods or services (step 610). Thus, the process ends.

도 7은 게이머, 소프트웨어 에이전트, 데이터베이스 서버, 웹서버, 채팅서버의 실행과정의 블록도이다. 게이머(700)는 조이스틱, 키보드, 마우스를 포함한 입력기(702)를 사용해 게임을 시작하지만, 게임컨트롤러를 포함한 다른 게임기를 사용하기도 한다. 7 is a block diagram of an execution process of a gamer, a software agent, a database server, a web server, and a chat server. Gamer 700 starts a game using input device 702 including a joystick, keyboard, and mouse, but may also use other game machines, including game controllers.

에이전트(708)가 작동되면 게이머(700)가 게임을 시작한다(701). 에이전트(708)는 입력기의 동작을 모니터하여 게임을 하고있는지 판단한다. 이런 특성이 사용자 입력으로 알려진 것이고, 소프트웨어 에이전트에 의한 사용자 입력 판단을 위한 케이스를 엔트로피 확인(710)이라 한다. 엔트로피 확인(710) 이외에, 에이전트(708)는 사용자가 게임을 하고있는지 판단하기 위해 다른 게임 특성들을 추적하 기도 하는데, 구체적으로 활성 프로세스(712), 메모리사용(714), CPU 활용(716) 등이다. 이들 특성들은 게이머(700)가 현재 사용중인 도 3의 데이터 처리장치(302)나 게임콘솔(310)의 운용시스템이 제공하는 인터페이스에서 얻어진다.When the agent 708 is activated, the gamer 700 starts the game (701). Agent 708 monitors the operation of the input device to determine if it is playing a game. This feature is known as user input, and the case for determining user input by the software agent is referred to as entropy confirmation 710. In addition to entropy checking 710, agent 708 also tracks other game characteristics to determine if the user is playing a game, specifically active processes 712, memory usage 714, CPU utilization 716, etc. to be. These characteristics are obtained from an interface provided by the operating system of the data processing device 302 or game console 310 of FIG.

사용자가 활동중인지, 휴식중인지, 비활동인지 판단할 때, 에이전트(708)는 룰셋(ruleset) 파일의 소정 알고리즘과 인공지능을 이용한다. 룰셋파일은 에이전트(708)가 쉽게 인터페이스할 수 있는 범용 플러그인으로 구현될 수 있다. 룰셋은 소프트웨어 에이전트가 모니터하는 속성이나 특성의 임계치를 정의한다. 이런 정의에 의해, 게임사나 리소스는 사용자 행동을 모니터하기 위한 각각의 기준을 정할 수 있다.In determining whether the user is active, at rest, or inactive, the agent 708 uses certain algorithms and artificial intelligence in a ruleset file. The ruleset file may be implemented as a general purpose plug-in that the agent 708 can easily interface with. Rulesets define thresholds for attributes or properties that software agents monitor. By this definition, game companies or resources can establish respective criteria for monitoring user behavior.

룰셋은 GameName, GameID#, threshold_0, threshold_1,...,threshold_N으로 정의될 수 있다. GameName은 모니터하는 게임명이고, GameID#는 모니터하는 게임의 랜덤 게임코드인 "태그"이며, threshold_0, threshold_1,...,threshold_N은 각각 attribute_0, attribute_1,...,attribute_N의 포인트웨이트(point weight)이다. The ruleset may be defined as GameName, GameID #, threshold_0, threshold_1, ..., threshold_N. GameName is the name of the game being monitored, GameID # is the "tag" which is the random game code of the game being monitored, and threshold_0, threshold_1, ..., threshold_N are the point weights of attribute_0, attribute_1, ..., attribute_N respectively. )to be.

룰셋의 일례로 "h12.exe", 4, 40, 2, 6, 7, 10...이 있을 수 있는데, GameID#4, attribute_0의 임계치 40, attribute_1의 임계치 2..인 "h12.exe"란 게임을 말한다. 애트리뷰트 각각은 특정 사이클에 대해 좋은지 나쁜지 여부를 판단하는 방법을 알고 있는 기능에 매핑된다. 예를 들어, 윈도우 환경에서, WindowZorder 애트리뷰트는 프로그램이 윈도우 환경에 있음을 나타내는데 사용된다. WindowZorder 애트리뷰트는 "calWindowZorderWin32"란 기능에 매핑되고, 애트리뷰트의 임계 포인트점수를 총 포인트점수에 추가해야 하면 "참"으로, 추가해서는 안 되면 "거짓"으로 돌아간다. 사용자가 "활동중"이라고 간주하기 위해 모든 게임이 얻어야 하는 정적 포인트 점수가 총 포인트점수이다. "calWindowZorderWin32" 기능이 거짓으로 돌아가면, 사용자는 "비활동"으로 간주된다. 그러나, 엔트로피 확인(710)에서 아무런 사용자 입력도 감지되지 않으면, 사용자가 "휴식"이라고 간주된다. "비활동" 상태는 "휴식" 상태보다 우선권을 갖는다. An example of the ruleset may be "h12.exe", 4, 40, 2, 6, 7, 10 ..., GameID # 4, Threshold 40 of attribute_0, Threshold 2 .. of attribute_1 "h12.exe" Is a game. Each attribute maps to a function that knows how to determine whether it is good or bad for a particular cycle. For example, in the window environment, the WindowZorder attribute is used to indicate that the program is in the window environment. The WindowZorder attribute is mapped to a feature called "calWindowZorderWin32" and returns "true" if the attribute's critical point score should be added to the total point score, and "false" if not. The total point score is the static point score that all games must earn in order for the user to be considered "active." If the "calWindowZorderWin32" function returns false, the user is considered "inactive". However, if no user input is detected at entropy confirmation 710, the user is considered to be "rest." The "inactive" state takes precedence over the "rest" state.

룰셋과 엔트로피 확인(710)을 기반으로, 에이전트(708)는 사용자가 활동, 휴식, 비활동인지 판단한 다음, 게임상태(718)를 설정하고 클라이언트 게임데이터를 업데이트한다(720). 이상의 과정은 수집된 게임데이터가 임계값에 이를 때까지 반복되는데, 에이전트는 클라이언트가 온라인이면 업데이트를 보내고 오프라인이면 계속해서 클라이언트 게임데이터를 수집한다. 에이전트(708)는 업데이트를 보낸 뒤 로컬클라이언트 타임데이터를 리셋하고(732) 웹서버(734)는 클라이언트 타임데이터를 리셋한다. 에이전트가 요청한 동적 통계데이터를 데이터베이스 서버(728)가 로컬클라이언트에 보낸다(730). 또, 게이머(700)가 사용자 크레딧 업데이트를 요청하기도 한다(736). 이 경우, 에이전트는 현재의 축적된 로컬클라이언트 게임데이터를 웹서버(734)에 보내고 현재 계좌잔고를 게이머(700)에게 보여주도록 요청한다.Based on the ruleset and entropy check 710, the agent 708 determines whether the user is active, rested, or inactive, then sets the game state 718 and updates the client game data (720). The above process is repeated until the collected game data reaches a threshold value. The agent sends an update when the client is online and continuously collects client game data when offline. Agent 708 resets the local client time data after sending the update (732) and web server 734 resets the client time data. The database server 728 sends the dynamic statistics data requested by the agent to the local client (730). Gamer 700 may also request a user credit update (736). In this case, the agent sends the current accumulated local client game data to the web server 734 and requests the gamer 700 to show the current account balance.

게이머(700)는 에이전트 구성을 바꿀 수 있는데(722), 예를 들면 게이머(700)가 할 수 있는 기능이나 옵션을 바꾼다. 게이머(700)는 게임리스트를 업데이트하여(724) 에이전트가 모니터할 수 있는 게임을 규정하기도 한다. 에이전트 구성이 바뀌거나(722) 게임리스트가 바뀌면(724), 에이전트 기능도 업데이트되고(726), 이는 데이터베이스 서버(728)에 보내진 데이터에 영향을 준다. 또, 게이 머(700)가 채팅을 요청할 때(740) 에이전트(708)는 채팅기능을 관리한다(738). 채팅기능은 채팅서버(744)에 의핸 채팅메시지 처리(742)와, 채팅 게이트웨이(748)를 통한 외부 채팅서버와의 통신에 의한 외부채팅 처리(746)를 포함한다. Gamer 700 can change agent configuration (722), for example, changing the functions or options that gamer 700 can do. The gamer 700 also updates the game list 724 to define the games that the agent can monitor. If the agent configuration changes (722) or the game list changes (724), the agent functionality is also updated (726), which affects the data sent to the database server 728. In addition, when the gamer 700 requests a chat (740), the agent 708 manages the chat function (738). The chat function includes a chat message process 742 by the chat server 744 and an external chat process 746 by communication with an external chat server through the chat gateway 748.

도 8A~B는 게이머, 소프트웨어 에이전트, 서버, 채팅서버의 활동들을 보여주는 블록도로서, 도 7에서 설명한 케이스들을 실행할 때 관련된 활동을 반영한다. 도 8A에서, 게이머(800)는 먼저 소프트웨어 에이전트를 시작하고(804), 클라이언트/에이전트(802)는 게이머(800)가 서버(808)에 접속했는지 접속을 확인한다(806). 서버(808)에 접속한 게이머(800)는 서버에 로그인한다(812). 그러나, 게이머가 서버에 접속하지 못했으면, 게이머가 계속 로그인하는지 물어보는 프롬프트가 디스플레이된다(814). 게이머(800)가 로그인하면, 클라이언트/에이전트(802)는 게이머(800)의 자격증을 확인하는데(816), 오프라인이면 로컬로 확인하고 온라인이면 원격으로 확인한다. 8A-B are block diagrams illustrating the activities of gamers, software agents, servers, and chat servers, reflecting the activities involved in executing the cases described in FIG. In FIG. 8A, gamer 800 first starts a software agent (804), and client / agent 802 verifies connection 806 whether gamer 800 has contacted server 808. Gamer 800 accessing server 808 logs in to the server (812). However, if the gamer failed to connect to the server, a prompt is displayed 814 asking if the gamer continues to log in. When the gamer 800 logs in, the client / agent 802 verifies the credentials of the gamer 800 (816), checking locally if offline and remotely if online.

로그인한 게이머(800)는 스타트게임을 선택한다(818). 이런 선택에 응답해, 클라이언트/에이전트(802)는 Game.exe를 개시하여(820) 게임을 시작하고 게임특성들을 모니터한다. 이런 활동(818,820)은 도 7의 게임시작(701)에 관련된 것이다. 게이머(800)가 게임활동을 하면(822), 클라이언트/에이전트(802)는 CPU 활용, 메모리 사용 등을 포함한 각종 프로세스를 추적하고(824), 사용자 입력값에서 엔트로피확인을 실행한다(826). 이런 활동(824,826)에 대해 자세한 것은 도 9에서 설명한다. 추적된 프로세스와 확인된 엔트로피를 기반으로 게이머(800)가 활동, 비활동 또는 휴식인지 클라이언트/에이전트(802)가 판단한다. 이어서, 게이머(800)가 활 동, 비활동 또는 휴식중인지 여부를 반영하는 게임상태를 설정한다(828). 게임상태가 설정되면 클라이언트/에이전트(802)는 클라이언트 게임데이터를 업데이트한다(830). 이들 활동(824,826,828,830)은 도 7의 케이스(710,712-716,718,720)에 각각 관련된다.The logged-in gamer 800 selects a start game (818). In response to this selection, the client / agent 802 starts Game.exe (820) to start the game and monitor game characteristics. This activity 818, 820 is related to the game start 701 of FIG. 7. When gamers 800 play a game 822, client / agent 802 tracks various processes, including CPU utilization, memory usage, etc. (824), and performs entropy checks on user inputs (826). This activity 824,826 is described in detail in FIG. Based on the tracked process and the identified entropy, the client / agent 802 determines whether the gamer 800 is active, inactive or at rest. Next, a game state reflecting whether the gamer 800 is active, inactive or at rest is set 828. If the game state is set, the client / agent 802 updates the client game data (830). These activities 824,826,828,830 are related to the cases 710, 712-716, 718, 720 of FIG. 7, respectively.

게이머(800)는 온라인 상태에서 수동으로 클라이언트/에이전트(802)를 작동시켜 개인계좌에 대한 크레딧 업데이트를 요청한다(832). 이 요청을 받은 클라이언트/에이전트(802)는 서버(808)에 크레딧 업데이트를 전송하고(834), 서버는 데이터베이스를 업데이트하여 크레딧 업데이트를 처리한다(838). 크레딧 업데이트를 처리한 서버(808)는 크레딧 업데이트 성공 메시지를 클라이언트/에이전트(802)에 보내고, 클라이언트/에이전트는 수신된 크레딧 업데이트를 로컬로 디스플레이한다(836). 이들 활동(832,834,836,838)는 도 7의 736 활동과 관련된다.Gamer 800 manually operates client / agent 802 while online to request credit updates for the personal account (832). The client / agent 802 receiving this request sends a credit update to the server 808 (834), and the server updates the database to process the credit update (838). The server 808 that processed the credit update sends a credit update success message to the client / agent 802, and the client / agent locally displays the received credit update (836). These activities 832, 834, 836, 838 are related to the 736 activity of FIG. 7.

도 8B에서 게이머(800)가 서버(808)에 접속되면 게임리스트 업데이트를 요청한다(840). 사용자는 온라인 프로필의 웹브라우저를 통해 게임리스트 업데이트를 실행한다. 일단 게임리스트가 업데이트되면, 서버(808)는 서버에 저장된 지원 게임리스트를 업데이트하고(846) 클라이언트/에이전트(802)에 업데이트된 게임리스트를 보내고, 이 게임리스트는 업데이트 게임리스트 파일에 로컬로 저장된다(844). 이런 활동(840,844,846)은 도 7의 724, 726 프로세스와 관련된다.In FIG. 8B, when the gamers 800 are connected to the server 808, the game list is requested to be updated (840). The user executes the game list update through the web browser of the online profile. Once the game list is updated, server 808 updates the support game list stored on the server (846) and sends the updated game list to client / agent 802, which is stored locally in the update game list file. (844). This activity 840,844,846 is related to the processes 724, 726 of FIG.

게이머(800)가 서버(808)에 에이전트를 동조시키길 요청한 뒤, 서버(808)는 동조요청을 받고(850), 클라이언트/에이전트(802)에 정적 데이터를 보내면, 정적 데이터를 받는다(854). 정적데이터는 룰셋, 게임리스트, 기타 구성파일을 포함한 다. 정적데이터 요청 외에, 클라이언트/에이전트(802)는 서버(808)에 동적데이터를 요청할 수도 있다(856). 동적데이터는 스트리밍 통계, 채팅친구 리스트, 친구 상태, 로컬 사용자 상태, 실시간 성능통계를 포함한다. 동적데이터 요청을 받은 서버(808)는 클라이언트/에이전트(802)에 동적데이터를 보내고(858), 클라이언트/에이전트는 동적데이터를 받는다(860). 이런 활동(856~860)은 도 7의 동적데이터 보내기(730)에 관련된 것이다.After the gamer 800 requests the server 808 to synchronize the agent, the server 808 receives the tune request 850 and sends static data to the client / agent 802 to receive the static data 854. Static data includes rulesets, game lists, and other configuration files. In addition to the static data request, client / agent 802 may request 856 dynamic data from server 808. Dynamic data includes streaming statistics, chat buddy list, buddy status, local user status, and real-time performance statistics. The server 808 receiving the dynamic data request sends dynamic data to the client / agent 802 (858), and the client / agent receives the dynamic data (860). These activities 856-860 are related to the dynamic data sending 730 of FIG. 7.

또, 클라이언트/에이전트(802)가 채팅활동을 촉진하기도 한다. 게이머(800)가 채팅을 위해 로그인하면(862), 클라이언트/에이전트는 서버(808)에 신규 패스워드를 요청한다(864). 서버(808)가 신규 패스워드를 클라이언트/에이전트(802)에 보내면(866), 클라이언트/에이전트에서 신규 패스워드를 받고(868), 이를 클라이언트/에이전트(802)에서 타이핑한 것처럼 해서 채팅서버(810)에 보낸다. 이 패스워드를 클라이언트/에이전트(802)의 현재 채팅 패스워드라 한다. 채팅서버(810)는 신규 패스워드를 확인해(870) 채팅이 준비되었음을(872) 클라이언트/에이전트에 통보한다. 이어서, 클라이언트/에이전트(802)는 각종 채팅기능을 관리하고(874), 채팅서버(810)는 채팅을 진행한다(876). 이들 활동(862~876)은 도 7의 738~742 케이스에 관련된다.In addition, client / agent 802 may facilitate chat activity. When gamer 800 logs in for chat (862), the client / agent requests a new password from server 808 (864). When the server 808 sends a new password to the client / agent 802 (866), it receives the new password from the client / agent (868) and sends it to the chat server 810 as if it had been typed in the client / agent 802. send. This password is referred to as the current chat password of the client / agent 802. Chat server 810 checks the new password (870) and notifies the client / agent (872) that the chat is ready. Next, the client / agent 802 manages various chat functions (874), and the chat server 810 proceeds to chat (876). These activities 862-876 relate to cases 738-742 of FIG. 7.

클라이언트/에이전트(802)의 구성을 바꾸고 싶으면(878), 게이머(800)는 언제라도 구성 옵션, 예를 들어 에이전트 스킨파일을 로컬로 변경할 수 있다. 로컬 구성옵션(880)은 네트웍 접속상태에 무관하게 바꿀 수 있고 사용자의 온라인 프로필에 접속할 필요도 없다. 클라이언트/에이전트(802)의 대부분의 구성옵션들은 게 이머의 온라인 프로필을 통해 접속된다. 변화가 있을 때 서버(808)는 구성 업데이트를 처리하고(882) 구성변화를 저장한다(884). 이들 활동(878~884)은 도 7의 에이전트 구성 변화(722) 및 에이전트 프로세스 업데이트(726)에 관련된다.If you wish to change the configuration of the client / agent 802 (878), the gamer 800 may change the configuration options locally, such as an agent skin file at any time. The local configuration option 880 can change regardless of network connection status and does not require access to the user's online profile. Most configuration options of the client / agent 802 are accessed through the online profile of the gamer. When there is a change, server 808 processes the configuration update (882) and saves the configuration change (884). These activities 878-884 are related to agent configuration change 722 and agent process update 726 of FIG. 7.

도 9는 게임상태를 판단하는 순서도로서, 도 3의 소프트웨어 에이전트(301)에서 구현된다. 소프트웨어 에이전트가 사용자 시스템의 운용시스템의 스냅숏(snapshot)을 취하면서 과정을 시작한다(900 단계). 소프트웨어 에이전트는 게임을 하는 동안 이 단계를 주기적으로, 예컨대 1분마다 실행하고, 사용자의 시스템 메모리에 스냅숏을 저장한다.9 is a flowchart for determining a game state, which is implemented in the software agent 301 of FIG. The software agent starts the process taking a snapshot of the operating system of the user system (step 900). The software agent executes this step periodically, eg every minute, during game play and stores a snapshot in the user's system memory.

다음, 소프트웨어 에이전트가 카테고리 집합의 룰셋을 구한다(902 단계). 이들 카테고리에는 프로세서 사용, 메모리 사용, 네트웍 접속, 윈도우 Z 주문, 다른 사용자 입력값들이 포함된다. 룰셋은 모니터중인 각 카테고리의 임계치를 정의한다. 운용시스템의 스냅숏을 이용해, 소프트웨어 에이전트는 다음 카테고리에 할당된 개별 포인트점수를 추적한다(904 단계). 각각의 카테고리마다, 개별 포인트점수가 할당되는바, 예컨대 프로세서 사용에는 40점이 할당되고 윈도우 Z 주문에는 35점이 할당되는 식이다.Next, the software agent obtains the rule set of the category set (step 902). These categories include processor usage, memory usage, network connections, Windows Z orders, and other user inputs. The ruleset defines the threshold for each category being monitored. Using the snapshot of the operating system, the software agent tracks individual point scores assigned to the next category (step 904). For each category, an individual point score is assigned, for example 40 points for processor usage and 35 points for Windows Z orders.

이어서, 소프트웨어 에이전트는 개별 포인트점수가 각각의 카테고리에 규정된 임계치에 도달했는지 판단한다(906 단계). 개별 포인트점수가 임계치에 이르면, 이 점수를 현재의 누적점수에 합한다(908 단계). 그러나, 임계치에 이르지 못하면 914 단계로 진행한다.The software agent then determines whether individual point scores have reached the thresholds defined for each category (step 906). When the individual point score reaches a threshold, the score is added to the current cumulative score (step 908). However, if the threshold is not reached, step 914 is reached.

908 단계 이후, 소프트웨어 에이전트는 현재 누적점수가 활동상태에 규정된 포인트점수보다 높거나 같은지 판단한다(910 단계). 이 포인트점수는 소정 포인트점수로서, 어떤 게임에서도 사용자가 "활동"중이라고 간주하는 점수이다. 현재 누적점수가 활동상태에 대한 소정 포인트점수 이상이면, 게임상태를 "활동"이라고 설정하고(912 단계) 과정을 종료한다. "활동" 상태란 사용자가 적극적으로 게임에 참여하고 있음을 말한다. 현재 누적점수가 소정 포인트점수보다 크지 않으면, 과정은 914 단계로 진행한다.After step 908, the software agent determines whether the current cumulative score is higher than or equal to the point score defined in the active state (step 910). This point score is a predetermined point score, which is a score that the user considers to be "active" in any game. If the current cumulative score is greater than or equal to the predetermined point score for the activity state, the game state is set to "activity" (step 912) and the process ends. "Active" status means that the user is actively participating in the game. If the current cumulative score is not greater than the predetermined point score, the process proceeds to step 914.

914 단계에서 소프트웨어 에이전트가 카테고리 집합에 추가 카테고리가 있는지 여부를 판단한다. 있다면 904로 돌아가 다음 카테고리를 추적하고, 없다면 사용자의 활성창이 전면에 있는지 판단한다(916 단계). 이 단계는 운용시스템의 스냅숏을 검사하면 된다. 활성창이 전면에 있으면, 게임상태를 "휴식"으로 설정한다(918 단계). "휴식" 상태의 예를 들면, 사용자가 레벨을 완성했을 때 수분동안 클립이 보일 수 있다. 따라서, 프로세서와 메모리는 수분동안 활성상태에 있지만, 사용자에 의한 움직임이 전혀 없을 수 있다. 활성창이 전면에 없으면, 소프트웨어 에이전트는 게임상태를 "비활동"으로 설정한다(920 단계). "비활동" 상태는 사용자가 현재 게임을 하지 않음을 의미한다. 따라서, 과정은 종료한다. In step 914, the software agent determines whether there are additional categories in the category set. If yes, the process returns to step 904 to track the next category. This step is done by examining a snapshot of the operating system. If the active window is in the front, the game state is set to "rest" (step 918). For example, in the "rest" state, a clip may be visible for a few minutes when the user completes a level. Thus, the processor and memory may be active for a few minutes but without any movement by the user. If the active window is not in front, the software agent sets the game state to "inactive" (step 920). The "inactive" state means that the user is not currently playing a game. Thus, the process ends.

도 10A~C는 사용자 게임플레이 데이터 확인, 저장, 전송할 때 관련된 활동들과 데이터를 설명하는 블록도로서, 도 10A의 데이터 흐름은 로컬 클라이언트측이다.10A-C are block diagrams illustrating activities and data related to identifying, storing, and transmitting user gameplay data, with the data flow of FIG. 10A being at the local client side.

도 10A에서 에이전트(1000)가 과정을 시작한다. 에이전트(1000)는 이몬 엔진(Eamonn engine)을 시작하고(1002), 이몬엔진은 새로운 게임을 조사하여, 로컬 데이터 스토어(108)에 저장된 사용자 지정 게임리스트를 룰셋 파일(1016)에서 끌어온다. 사용자 지정 게임리스트는 사용자가 자신의 온라인 프로필에 게임리스트를 업데이트하면서 바뀐다. 게임리스트가 바뀌면, 에이전트(1000)는 새 정보를 지원하도록 동조되어야 한다. 도 8B에서 설명한 동조된 에이전트 활동(848)에 의해 필요에 따라 로컬 룰셋 파일을 동적으로 업데이트한다.In FIG. 10A, the agent 1000 starts the process. The agent 1000 starts the Eamonn engine (1002), and the Imon engine examines the new game and draws a custom game list stored in the local data store 108 from the ruleset file 1016. The custom game list changes as the user updates the game list in their online profile. If the game list changes, the agent 1000 must be tuned to support the new information. And dynamically updates the local ruleset file as needed by the synchronized agent activity 848 described in FIG. 8B.

새 게임을 추적하고(1004), 게이머(1010)가 새 게임을 시작했음을 감지한다(1012). 새 게임이 시작되면, 에이전트(1000)는 게임상태 일부 확인을 위해(1022) 룰셋 파일(1016)내 알고리즘과 인공지능을 이용해 새 게임 오브젝트를 생성한다(1014). 나머지 확인은 에이전트(1000)에 의한 엔트로피 수확(1020)에서 온다. 엔트로피 수확(1020)은 게이머(1010)가 게임을 하는 동안 사용자 행위(1018)를 감시하는데, 구체적으로는 키보드, 조이스틱, 마우스 등의 움직임을 감시한다. 엔트로피 수확(1020)과 룰셋 파일(1016)의 변수들을 조합해 게임상태(1022)를 판단한다. 게임상태(1022)가 바뀌면 에이전트(1000)는 언제라도 클라이언트 게임데이터를 암호화하고(1024) 이 데이터를 클라이언트 게임데이터 파일(1026)에 저장한다. 이런 확인과정은 사용자 게임데이터가 일정 임계치에 이를 때까지 반복된다.The new game is tracked (1004) and the gamer 1010 detects that it has started a new game (1012). When a new game is started, the agent 1000 generates a new game object using algorithms and artificial intelligence in the ruleset file 1016 (1022) to confirm the game state (1022). The remaining confirmation comes from entropy harvesting 1020 by agent 1000. Entropy harvesting 1020 monitors user behavior 1018 while gamers 1010 play games, specifically monitoring movement of keyboards, joysticks, mice, and the like. The game state 1022 is determined by combining the variables of the entropy harvest 1020 and the ruleset file 1016. When the game state 1022 changes, the agent 1000 encrypts the client game data at any time (1024) and stores this data in the client game data file 1026. This checking process is repeated until the user game data reaches a certain threshold.

클라이언트 게임데이터(1026)가 모이는 동안, 에이전트(1000)는 별도의 과정으로 이 게임데이터(1026)가 서버에 전송되는 방법과 시기를 결정한다. 이 과정이 도 10B의 로컬데이터 전송(1030) 과정이다. 도 10B에서, 로컬데이터 전송(1030)을 게이머(1010)가 수동으로 활성화시키거나 정기적으로 자동으로 활성화시켜 크레딧을 업데이트한다(1028). 에이전트(1000)는 먼저 네트웍상태를 획득한다(1032). 과 정이 수동으로 활성화되고 게이머(1010)가 오프라인이면, 개인계좌에 크레딧을 업데이트하려면 인터넷접속이 필요하다는 경고메시지를 에이전트(1000)가 게이머(1010)에게 보내고 과정을 나간다. 에이전트에 의해 자동으로 로컬데이터 전송(1030)이 활성화되고 게이머(1010)가 오프라인이면, 에이전트(1000)는 아무 메시지 없이 과정을 나가지만, 게이머가 온라인이면, 클라이언트 게임데이터 임계치를 점검하고(1034) 임계치에 이르렀는지 판단한다. 임계치에 이르렀으면 측정제어된 사이즈와 빈도로 서버 업데이트를 보낸다(1036). 클라이언트 게임데이터(1026)에서 더 많은 업데이트를 할 수 있으면 로컬데이터 전송(1030)이 반복되지만, 임계치에 이르지 않으면 에이전트(1000)가 과정을 나간다.While the client game data 1026 is gathered, the agent 1000 determines how and when this game data 1026 is transmitted to the server in a separate process. This process is the local data transmission 1030 of FIG. 10B. In FIG. 10B, the local data transfer 1030 is manually activated by the gamer 1010 or periodically automatically updated to update credit 1010. Agent 1000 first acquires the network state (1032). If the process is manually activated and the gamer 1010 is offline, the agent 1000 sends a warning message to the gamer 1010 that an internet connection is required to update credits to the personal account, and proceeds. If local data transfer 1030 is automatically activated by the agent and the gamer 1010 is offline, the agent 1000 exits without any message, but if the gamer is online, checks the client game data threshold (1034). Determine if the threshold has been reached. When the threshold is reached, a server update is sent at a controlled size and frequency (1036). If more updates can be made in the client game data 1026, local data transfer 1030 is repeated, but if the threshold is not reached, the agent 1000 exits the process.

도 10C는 서버에서의 게임플레이 데이터의 흐름도로서, 클라이언트나 에이전트가 클라이언트 게임데이터 업데이트를 보낼 준비가 되었다 가정한다. 이 과정은 클라이언트 헬로(1042; client hello) 메시지를 웹서버(1040)로 보내는 것으로 시작해 서버가 헬로를 확인한다(1044). 웹서버(1040)와 에이전트(1000)는 SOAP-over-HTTPS와 같은 통신보안 프로토콜을 이용해 서로 통신한다. 10C is a flow diagram of game play data at the server, assuming that the client or agent is ready to send client game data updates. This process begins with sending a client hello (1042) message to the web server 1040 and the server identifies hello (1044). The web server 1040 and the agent 1000 communicate with each other using a communication security protocol such as SOAP-over-HTTPS.

이어서 에이전트(1000)가 웹서버(1040)에 게임 업데이트를 보내기 시작한다(1046). 웹서버(1040)는 클라이언트 게임데이터의 수신을 확인하고(1048) 데이터베이스(1051)에 업데이트 데이터를 입력한다(1050). 데이터베이스(1051)를 업데이트한 뒤, 게임 업데이트 확인(1052)을 에이전트(1000)에 돌려보낸다. 에이전트(1000)는 계속 업데이트데이터를 점검하고(1053), 클라이언트 게임 데이터파일내 모든 업데이트 클라이언트 게임데이터를 받을 때까지(1048) 게임 업데이트를 웹서 버(1040)에 보낸다(1054). 모든 게임데이터를 보낸 에이전트(1000)는 웹서버(1040)에 굿바이 메시지를 보내 서버 세션을 닫는다(1056). 이어서, 웹서버(1040)가 데이터베이스(1051)와의 연결 중단을 포함해 세션을 닫고(1058), 에이전트(1000)에 굿바이 메시지를 보낸 다음 과정을 나간다.Agent 1000 then starts sending game updates to web server 1040 (1046). The web server 1040 confirms receipt of the client game data (1048) and inputs update data to the database 1051 (1050). After updating the database 1051, the game update confirmation 1052 is returned to the agent 1000. Agent 1000 continues to check for update data (1053) and send a game update to web server 1040 (1048) until all updated client game data in the client game data file is received (1048). The agent 1000 which has sent all game data sends a goodbye message to the web server 1040 to close the server session (1056). Subsequently, the web server 1040 closes the session (1058), including interrupting the connection with the database 1051, sends a goodbye message to the agent 1000, and then proceeds.

이상 설명한대로, 데이터베이스(1051)의 데이터는 각종 비즈니스 기능에 사용되는데, 예컨대 동적 통계를 에이전트(1000)에 보내거나(1062), 게이머의 은행계좌 크레딧을 관리하거나(1064), 쇼핑카트(1060)를 사용해 가상 쇼핑몰에서 크레딧을 소비하는 것을 관리한다. As described above, data in the database 1051 is used for various business functions, such as sending dynamic statistics to the agent 1000 (1062), managing gamers' bank account credits (1064), or shopping carts (1060). To manage the consumption of credits in the virtual mall.

도 11A~B는 본 발명을 구현하는데 사용되는 클래스의 블록도이다. 도 11B에서, 게이머는 론치게임(launchGame; 1118) 기능을 발동해 유저 인터페이스(userInterface; 1124)를 통해 게임을 시작하고, 채팅(1108)의 인보크챗(invokeChat; 1114) 기능을 이용해 채팅을 시작하며, 채팅(1108)의 뷰버디(viewBiddies; 1110) 기능을 발동해 친구 리스트를 보여준다. 또, 게이머는 유저 인터페이스(1124)에서 가능한 모든 옵션을 업데이트할 수 있다. 게이머가 소프트웨어 에이전트와 동조되면, 소프트웨어 에이전트에 의해 스태틱콘텐트(StaticContent; 1170)나 다이나믹콘텐트(DynamicContent; 1172)에 대한 업데이트가 요청되어 도 10C의 웹서버(1040)에 의해 전송된다. 11A-B are block diagrams of classes used to implement the present invention. 11B, the gamer invokes the launchGame 1118 function to start the game via the user interface 1124 and initiate a chat using the invokeChat 1114 function of chat 1108 Invoke the viewBiddies 1110 function of the chat 1108 to display a list of friends. In addition, gamers can update all possible options in user interface 1124. When the gamer synchronizes with the software agent, an update is requested by the software agent for the static content 1170 or the dynamic content 1172 and transmitted by the web server 1040 of FIG. 10C.

이몬유저(EamonnUser) 클래스(1100)는 유저네임(userName; 1102), 패스워드(1104)와 같은 사용자 정보를 담는다. 소프트웨어 에이전트가 작동하면 이몬엔진(1101)이 새 게임을 검색하고, 엔트로피를 처리하며, 게임상태를 판단하고, 로컬 데이터를 전송하기 시작한다. 이몬엔진(1101)은 정해진 지원게임 리스트를 근거로 새 게임을 검색한다. 이 리스트는 게임명, ID, 룰셋(1134)을 포함한다. 게이머가 새 게임을 시작했음을 감지하면, 이몬엔진(1101)은 시작한 게임이 리스트에 있는 것이면 도 11A와 같은 게임(1106)을 생성한다. 도 11A의 게임(1106)에 포함된 게임상태(1130)는 게이머가 활동, 휴식 또는 비활동인지 표시한다. 소프트웨어 에이전트가 게이머가 시작한 사용자 행위를 감지하면, 프로세스 엔트로피(1132)가 마우스, 키보드, 조이스틱의 움직임, CPU 활용, 메모리 사용, 네트웍접속과 같은 게임특성데이터를 구한다. 프로세스 엔트로피(1132)는 마우스상태(1136), 키보드상태(1138), 조이스틱상태(1140)은 물론 CPU 활용(1142), 메모리 사용(1144), pid(1146), windowZlevel(1148), 네트웍접속(1150) 등을 모니터하고, 룰셋(1134)도 게임상태를 판단하는데 사용된다. 룰셋(1134)는 모니터하는 각 속성, 예컨대 windowZorder(1137), 유저입력(userInputs; 1139), CPU 사용(cpuUsage; 1141), 메모리사용(memoryUsage; 1143), 네트웍접속(1145)와 같은 속성의 임계치를 정의한다.The EmonnnUser class 1100 contains user information such as a user name 1102 and a password 1104. When the software agent is running, the Imon Engine 1101 searches for a new game, processes entropy, determines the game state, and starts sending local data. The Imon engine 1101 searches for a new game based on the list of supported games. This list includes game names, IDs, and rulesets 1134. If the gamer detects that a new game has started, the Imon engine 1101 generates a game 1106 as shown in FIG. 11A if the started game is on the list. Game state 1130 included in game 1106 of FIG. 11A indicates whether the gamer is active, rested, or inactive. When the software agent detects a user-initiated user action, process entropy 1132 obtains game characteristic data such as mouse, keyboard, joystick movement, CPU utilization, memory usage, and network connection. The process entropy 1132 may include a CPU state 1142, a memory usage 1144, a pid 1146, a windowZlevel 1148, a network state 1133, a keyboard state 1138, a joystick state 1140, 1150 and the like, and the ruleset 1134 is also used to determine the game state. The ruleset 1134 may include a threshold value for each attribute to monitor, such as windowZorder 1137, user inputs 1139, CPU usage 1141, memory usage 1143, network connection 1145, Define.

이몬엔진(1101)은 상태변화가 있었다고 판단했을 때 유저네임(1154), computerGuid(1158), startTime(1160), endTime(1162), gameState(1164)와 같은 클라이언트 게임데이터(1152)를 수집하지만, 킬(kills), 포인트(points), 레벨(level), 임무완수(mission completion), 상태(status), 승리(wins)와 같은 다른 클라이언트 게임데이터도 수집할 수 있다. 클라이언트 게임데이터(1152)가 축적되면, 이몬엔진(1101)은 이 데이터를 도 11B의 GSOAP(1174)와 같은 통신보안 프로토 콜을 통해 서버에 보내는데, 일정 주기로 네트웍접속이 있거나 임계한계를 만족할 경우 그렇다. 이어서, 서버는 인터넷을 통해 도 11B의 데이터베이스(1176)에 데이터를 업데이트한다.The emone engine 1101 collects the client game data 1152 such as the user name 1154, the computerGuid 1158, the startTime 1160, the endTime 1162, and the gameState 1164 when it judges that there has been a state change, You can also collect other client game data such as kills, points, levels, mission completion, status, and wins. When the client game data 1152 accumulates, the Imon Engine 1101 sends this data to the server via a communications security protocol such as GSOAP 1174 of FIG. 11B, if there is a network connection or meets a critical limit at regular intervals. . The server then updates the data in database 1176 of FIG. 11B via the Internet.

도 12A~B는 본 발명의 채팅기능을 설명하는 순서도이다. 도 12A에 도시된 바와 같이, 에이전트는 사용자 선호도를 점검하여 처음에 사인할지 여부를 판단한다. 사인한다고 표시되면, 웹서버에 패스워드를 요청하고(1200), 아니면 채팅클라이언트가 계속 휴식 상태에 머물고(1202) 사용자는 직접 웹서버에 로그인하여 패스워드를 요청한다(1200). 12A-B are flowcharts illustrating a chat function of the present invention. As shown in Figure 12A, the agent checks the user preferences to determine whether to sign first. If a sign is displayed, the server requests a password (1200), or the chat client stays in a rest state (1202), and the user directly logs in to the web server and requests (1200).

웹서버가 에이전트에 패스워드를 보내고(1204), 클라이언트는 패스워드를 받는다(1206). 에이전트가 웹서버로부터 새 패스워드를 받으면, 이 패스워드를 인증을 위해 클라이언트가 타이핑한 것처럼 채팅서버에 보낸다(1208). 이 패스워드는 클라이언트의 현재 채팅 패스워드로 본다. 인증이 성공되면, 에이전트와 채팅서버 사이에 핸드세이크(handshake)가 완성된다(1212). 에이전트는 채팅서버를 로그오프해 채팅을 멈추거나(1214) 채팅기능을 선택할 수 있다. 그러나, 인증이 실패하면, 사용자에게 에러메시지가 돌아가고(1216) 재시도를 한다.The web server sends a password to the agent (1204), and the client receives the password (1206). When the agent receives a new password from the web server, it sends this password to the chat server as if the client typed it for authentication (1208). This password is considered the client's current chat password. If authentication is successful, a handshake is completed between the agent and the chat server (1212). The agent can log off the chat server to stop the chat (1214) or select a chat function. However, if authentication fails, an error message is returned to the user (1216) and retry.

본 발명은 여러가지 채팅기능을 갖는다. 도 12B에 의하면, 그룹채팅 합류(1218), 그룹채팅 개시(1220), 타사용자 차단(1222), 가입자에서 친구 제거(1224), 타사용자의 새로운 가입요청 수락(1226), 타사용자를 가입자에 추가(1228), 타사용자에 메시지 전송(1230), 타사용자의 메시지 수신(1232) 등이 있다. The present invention has various chat functions. According to FIG. 12B, group chat join 1218, group chat initiation 1220, block other users 1222, remove a friend from subscriber 1224, accept another user's new subscription request 1226, and send another user to the subscriber. Add 1228, send a message to another user 1230, receive another user's message 1232, and the like.

사용자가 타사용자의 메시지를 받으면(1232), 타사용자가 차단되었는지, 명단에 있는지 여부를 에이전트가 판단한다. 차단자이면 메시지를 버리고(1234), 명단에 있으면 메시지를 디스플레이하며(1238), 명단에 없으면 사용자가 메시지를 받기를 원하는지를 묻는 프롬프트를 디스플레이한다(1236). 사용자가 메시지를 받길 원하면, 메시지를 디스플레이하고(1238), 그렇지 않으면 메시지를 버린다.When the user receives a message from another user (1232), the agent determines whether the other user is blocked or on the list. If it is a blocker, it discards the message (1234); if it is on the roster, it displays the message (1238); if it is not on the roster, it displays a prompt asking if the user wants to receive the message (1236). If the user wants to receive the message, display the message (1238), otherwise discard the message.

도 13A는 본 발명에 따라 서버의 관점에서 사용자의 게임플레이 데이터를 수집하는 순서도로서, 도 3의 서버(320)에서 구현된다. 서버는 사용자의 온라인 프로필에 있는 각각의 게임리스트의 사용자 업데이트를 검색하고(1300 단계), 이어서 서버에서 사용자의 게임리스트 데이터를 업데이트한다(1302 단계). 동조화 요청이 에이전트로부터 수신된다(1304 단계). 에이전트는 새 게임리스트를 로컬로 얻기 위해 동조요청을 한다. 서버는 게임리스트의 업데이트된 게임들과 관련된 동적 라이브러리와 함께 게임리스트를 에이전트에 보낸다(1306 단계). 지원되는 게임마다 동적 라이브러리가 다를 가능성은 충분하다. 에이전트가 동조되지 않으면, 새 게임리스트와 새 동적 라이브러리는 결코 보내지지 않는다. 이어서, 서버는 소프트웨어 에이전트로부터 통신요청을 검색한다(1308 단계). 서버는 업데이트된 게임리스트에 대한 지정 게임들을 지원하면서 에이전트로부터 클라이언트 게임데이터 업데이트들을 받는다(1310 단계).FIG. 13A is a flow chart of collecting gameplay data of a user from the perspective of a server in accordance with the present invention, and is implemented in server 320 of FIG. The server retrieves a user update of each game list in the user's online profile (step 1300), and then updates the user's game list data on the server (step 1302). A synchronization request is received from the agent (step 1304). The agent makes a tune request to get a new list of games locally. The server sends the game list to the agent with a dynamic library associated with the updated games of the game list (step 1306). It is likely that the dynamic libraries will be different for each supported game. If the agent is not tuned, new game lists and new dynamic libraries are never sent. The server then retrieves the communication request from the software agent (step 1308). The server receives client game data updates from the agent (step 1310) while supporting the designated games for the updated game list.

이어서, 서버는 누적 포인트와 같은 인센티브를 기초로 사용자의 개인계좌에 크레딧을 입금할 수 있다(1312 단계). 또, 사용자가 게임에 소비한 시간과 같은 누적 실시간 게임플레이 데이터를 기초로 크레딧을 추가할 수도 있다. 이어서, 서버 는 사용자의 요청에 의해서나 동적통계를 위해 소프트웨어 에이전트에 계좌 업데이트를 보내고(1314 단계), 이 경우 사용자는 계좌의 상태를 볼 수 있고, 과정은 종료한다. The server may then deposit credits into the user's personal account based on incentives such as cumulative points (step 1312). Credits may also be added based on cumulative real-time gameplay data, such as the time a user has spent in the game. The server then sends an account update to the software agent at the user's request or for dynamic statistics (step 1314), in which case the user can view the status of the account and the process ends.

도 13B는 도 3의 소프트웨어 에이전트(301) 관점에서 사용자 게임플레이 데이터를 수집하는 순서도이다. 먼저 사용자가 새 게임을 시작하는지 판단한다(1320 단계). 다음, 해당 동적 라이브러리와 이 게임을 위한 게임변수 리스트를 메모리에 저장한다(1322 단계). 게임변수 리스트에는 게임을 지속적으로 모니터하는 변수들이 들어있다. 이 리스트는 게임개발자가 공급한다.FIG. 13B is a flow chart collecting user gameplay data from the software agent 301 perspective of FIG. 3. First, it is determined whether the user starts a new game (step 1320). Next, the dynamic library and the game variable list for the game are stored in the memory (step 1322). The game variable list contains variables that constantly monitor the game. This list is supplied by game developers.

변수를 메모리에 저장한 뒤, 소프트웨어 에이전트는 게임변수 리스트를 사용해 추가 기능들을 메모리에 저장한다(1324 단계). 각각의 게임변수는 이 변수를 계산할 수 있는 동적 라이브러리에 해당 기능을 갖는다. 게임변수와 해당기능의 일례는 전술한 바와 같은 WindowZorder와 "calWindowZorderWin32"가 있다. After storing the variable in memory, the software agent uses the game variable list to store additional functions in memory (step 1324). Each game variable has its own function in a dynamic library that can compute this variable. Examples of game variables and corresponding functions are WindowZorder and "calWindowZorderWin32" as described above.

간격을 두고, 소프트웨어 에이전트는 해당 기능을 호출해 이 기능으로 수집된 데이터를 저장한다(1326 단계). 이 데이터는 암호화되어 클라이언트 게임데이터 파일이나 별도의 파일에 저장된다. 네트웍접속이 가능하고 임계치에 이르면, 클라이언트 게임데이터를 서버로 보내는데(1328 단계), 이 데이터는 상기 기능에 의해 수집된 데이터를 포함한다. 따라서, 이후 과정이 종료된다.At intervals, the software agent calls the function and stores the data collected by this function (step 1326). This data is encrypted and stored in the client game data file or in a separate file. When a network connection is available and the threshold is reached, client game data is sent to the server (step 1328), which includes data collected by the function. Thus, the process then ends.

요컨대, 본 발명은 온라인과 오프라인으로 사용자 게임플레이 데이터를 수집하고 이 데이터에 맞게 사용자에게 크레딧을 지급하는 모델을 제공한다. 사용자의 게임플레이 데이터는 판매후의 시장조사 데이터로서, 판매 전이었다면 편향되고 편파적인 데이터일 것이다. 또, 사용자 계좌관리, 채팅관리, 게임리스트 관리 등등의 각종 기능을 수행하는 소프트웨어 에이전트도 제공한다. 또, 편향되지 않은 싱글-플레이어 게이머를 위한 게임플레이 데이터도 제공한다. 또, 사용자들을 위한 양방향 환경을 개시할 동적데이터, 사용자들 사이의 경쟁적 분석은 물론, 라이브게임에서 효과적인 표적광고를 하는데 사용되는 데이터와 같이, 고유 서비스를 제공하는 데이터의 특징을 회사에서 활용하는 방법도 제공할 수 있다. In short, the present invention provides a model for collecting user gameplay data online and offline and crediting the user for this data. The user's gameplay data is post-sale market research data, which would be biased and biased if it was before sale. It also provides a software agent that performs various functions such as user account management, chat management, game list management, and the like. It also provides gameplay data for unbiased single-player gamers. In addition, the company utilizes the features of the data to provide unique services, such as dynamic data to launch an interactive environment for users, competitive analysis among users, and data used for effective target advertising in live games. Can also be provided.

본 발명은 완전 하드웨어나, 완전 소프트웨어나, 양자를 포함하는 형태를 취할 수 있다. 또, 소프트웨어 형태로 구현될 경우, 펌웨어, 상주 소프트웨어, 마이크로코드를 포함할 수 있는데, 물론 이는 예로 든 것일 뿐이다.The present invention can take the form of complete hardware, complete software, or both. In addition, when implemented in the form of software, it may include firmware, resident software, microcode, which is of course only an example.

또, 본 발명은 컴퓨터나 기타 명령실행장치에서 사용할 프로그램코드를 제공하는 컴퓨터용 매체로 접근할 수 있는 컴퓨터 프로그램 제품 형태를 취할 수 있다. 이를 위해, 컴퓨터용 매체는 컴퓨터에서 사용할 프로그램을 저장 또는 전송할 수 있는 모든 장치를 포함한다. The invention may also take the form of a computer program product accessible by a computer medium providing program code for use in a computer or other command execution device. To this end, a computer medium includes any device capable of storing or transmitting a program for use in a computer.

이런 컴퓨터 매체는 전자식, 자기식, 광학식, 전기자기식, 적외선 또는 반도체 형식의 전송매체일 수 있다. 컴퓨터 리더블 매체의 예로는 반도체나 고체상태 메모리, 자기테이프, 컴퓨터 디스켓, RAM, ROM, 자기디스크, 광학디스크가 있다. 현재의 광학디스크는 CD-ROM, CD-R/W, DVD를 포함한다. 이런 매체는 상황에 따라 유형이거나 무형일 수 있다.Such computer media may be transmission media in electronic, magnetic, optical, electromagnetic, infrared or semiconductor formats. Examples of computer readable media include semiconductor or solid state memory, magnetic tape, computer diskette, RAM, ROM, magnetic disk, optical disk. Current optical discs include CD-ROM, CD-R / W, DVD. Such media may be tangible or intangible depending on the situation.

프로그램코드를 저장하거나 실행하기 위한 데이터 처리장치로는 버스를 통해 메모리에 직간접적으로 연결된 프로세서를 포함한다. 메모리는 프로그램코드를 실제 실행하는 동안 사용하는 로컬메모리, 대용량 저장장치, 및 일부 프로그램을 임시로 저장할 캐시메모리를 포함한다. A data processing device for storing or executing program code includes a processor directly or indirectly connected to a memory through a bus. The memory includes local memory used during actual execution of program code, mass storage, and cache memory to temporarily store some programs.

(키보드, 디스플레이, 포인터 등을 포함한) 입출력 기기를 I/O 컨트롤러를 통해서나 직접 시스템에 연결할 수 있다.I / O devices (including keyboards, displays, pointers, etc.) can be connected to the system either directly or through an I / O controller.

네트웍 어댑터를 이 시스템에 연결하면, 사설이나 공공 네트웍을 통해 데이터 처리장치를 다른 데이터 처리장치나 원격 프린터나 저장장치에 연결할 수 있다. 모뎀, 케이블모뎀, 이더넷카드가 현재 사용되는 네트웍 어댑터이다.By connecting a network adapter to this system, you can connect data processing devices to other data processing devices, remote printers, or storage devices through private or public networks. Modems, cable modems, and Ethernet cards are currently used network adapters.

Claims (20)

게임환경에서의 컴퓨터 구현방법에 있어서:In a computer implementation in a gaming environment: 사용자가 게임을 시작하면, 사용자의 게임 플레이 결과로 데이터 처리장치에 생기는 게임특성들을 모니터하는 단계; If the user starts the game, monitoring game characteristics generated in the data processing device as a result of the user's game play; 게임특성을 근거로 게임상태를 확인하는 단계;Checking a game state based on game characteristics; 게임상태의 변화에 응답해, 게임플레이 데이터를 수집하는 단계;Collecting gameplay data in response to a change in game state; 게임플레이 데이터를 보고하는 단계; 및Reporting gameplay data; And 게임플레이 데이터를 분류하는 단계;를 포함하는 것을 특징으로 하는 컴퓨터 구현방법.And classifying the game play data. 제1항에 있어서, 상기 게임특성이 사용자의 마우스 움직임, 조이스틱 움직임, 키보드 움직임, 사용자의 활동과정, 메모리 사용 및 프로세서 활용을 포함하는 것을 특징으로 하는 컴퓨터 구현방법.The computer-implemented method of claim 1, wherein the game characteristics include user mouse movements, joystick movements, keyboard movements, user activity, memory usage, and processor utilization. 제1항에 있어서, 상기 모니터, 확인, 수집 및 보고 단계들이 소프트웨어 에이전트에 의해 실행되는 것을 특징으로 하는 컴퓨터 구현방법.The computer implemented method of claim 1 wherein the monitoring, verifying, collecting and reporting steps are performed by a software agent. 제1항에 있어서, 상기 확인 단계에서 사용자의 입력이나 룰셋(rule set)을 기초로 게임특성을 확인하는 것을 특징으로 하는 컴퓨터 구현방법.The computer-implemented method of claim 1, wherein in the checking step, game characteristics are identified based on a user input or a rule set. 제4항에 있어서, 상기 룰셋이 게임특성을 위한 임계치를 포함하는 것을 특징으로 하는 컴퓨터 구현방법.5. The computer-implemented method of claim 4, wherein the ruleset includes a threshold for game characteristics. 제1항에 있어서, 상기 보고단계가,The method of claim 1, wherein the reporting step, 클라이언트측의 클라이언트 게임데이터 파일에 게임플레이 데이터를 축적하는 단계; 및Accumulating game play data in a client game data file on a client side; And 임계치에 이르렀으면 이 데이터를 통신 프로토콜을 통해 서버에 보내는 단계;를 포함하는 특징으로 하는 컴퓨터 구현방법.And sending the data to the server via a communication protocol if a threshold is reached. 제6항에 있어서, The method of claim 6, 게임플레이 데이터를 데이터베이스에 업데이트하는 단계; 및Updating gameplay data in a database; And 데이터베이스로부터 동적 데이터를 받는 단계;를 더 포함하고,Receiving dynamic data from a database; 상기 동적 데이터는 스트리밍 통계, 채팅가입자, 채팅친구 상태, 로컬 사용자 상태, 실시간 성능 통계를 포함하는 것을 특징으로 하는 컴퓨터 구현방법.Wherein said dynamic data includes streaming statistics, chat subscribers, chat buddy status, local user status, and real-time performance statistics. 제1항에 있어서, 상기 게임플레이 데이터가 사용자가 게임에 소비한 시간, 날짜, 게임 타이틀, 성능 통계를 포함하는 것을 특징으로 하는 컴퓨터 구현방법.The computer-implemented method of claim 1, wherein the gameplay data includes time, date, game title, and performance statistics the user has spent in the game. 제1항에 있어서,The method of claim 1, 게임리스트 파일이 사용자 프로필을 기반으로 하고 게임 자체는 지원되는 게임리스트에 속하는 상태에서 지원되는 게임리스트를 게임리스트 파일에서 읽는 단계; 및Reading a supported game list from the game list file while the game list file is based on the user profile and the game itself belongs to the supported game list; And 게임리스트 파일내의 해당 엔트리를 기반으로 하는 새 게임 오브젝트를 상기 게임과 관련해 생성하는 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터 구현방법.And generating a new game object in association with the game based on the entry in the game list file. 제1항에 있어서,The method of claim 1, 사용자가 시작한 채팅기능들을 관리하는 단계를 더 포함하되;Managing user-initiated chat functions; 이런 채팅기능은 그룹채팅 합류, 그룹채팅 개시, 제2 사용자 차단, 가입자에서 제3 사용자 제거, 제4 사용자를 가입자에 추가, 제5 사용자에 메시지 전송, 제6 사용자의 메시지 수신을 포함하고, 이들 제1 내지 제6 사용자들 각각은 제1항의 사용자 이외의 타사용자인 것을 특징으로 하는 컴퓨터 구현방법.These chat functions include joining group chats, initiating group chats, blocking second users, removing third users from subscribers, adding fourth users to subscribers, sending messages to fifth users, and receiving messages from sixth users. A computer implemented method, wherein each of the first to sixth users is another user other than the user of claim 1. 버스;Bus; 컴퓨터 사용 코드가 들어있는 저장장치;A storage device containing computer use code; 버스에 연결된 통신기;A communicator connected to the bus; 사용자 입력기; 및User input; And 버스에 연결된 처리기;를 포함하고,A processor coupled to the bus; 상기 처리기는 컴퓨터 사용코드를 실행함으로써, 사용자가 게임을 시작하고 게임을 하면 사용자 게임기에서 수집한 게임특성들을 모니터하고; 이런 게임특성을 기초로 게임상태를 확인하며; 게임상태가 변하면 게임플레이 데이터를 수집하고; 게임플레이 데이터를 보고하는 것을 특징으로 하는 게임장치.The processor executes the computer usage code to monitor game characteristics collected by the user game machine when the user starts the game and plays the game; Check the game state based on these game characteristics; Collect gameplay data when the game state changes; Game device, characterized in that for reporting the game play data. 제11항에 있어서, 상기 처리기가 컴퓨터 사용코드를 실행하여 사용자 입력이나 룰셋을 기반으로 게임특성을 확인하는 것을 특징으로 하는 게임장치.12. The game device according to claim 11, wherein the processor checks the game characteristics based on user input or ruleset by executing computer use code. 제11항에 있어서, 상기 처리기가 컴퓨터 사용코드를 실행하여, 클라이언트측의 클라이언트 게임데이터 파일에 게임플레이 데이터를 축적하고; 임계치에 이르면 이런 게임플레이 데이터를 통신프로토콜을 통해 서버에 보내는 것을 특징으로 하는 게임장치.12. The computer-readable medium of claim 11, wherein the processor executes computer usage code to accumulate game play data in a client game data file on a client side; When the threshold value is reached, the game device characterized in that sending the game play data to the server through the communication protocol. 제11항에 있어서, 상기 처리기가 컴퓨터 사용코드를 실행하여, 게임플레이 데이터를 데이터베이스에 업데이트하고, 데이터베이스로부터 동적 데이터를 받는데, 동적 데이터는 스트리밍 통계, 채팅가입자, 채팅친구 상태, 로컬 사용자 상태, 실시간 성능 통계를 포함하는 것을 특징으로 하는 게임장치.12. The system of claim 11, wherein the processor executes computer usage code to update gameplay data to a database and receive dynamic data from the database, wherein the dynamic data includes streaming statistics, chat subscribers, chat buddy status, local user status, real time. A gaming device comprising performance statistics. 제11항에 있어서, 상기 처리기가 컴퓨터 사용코드를 실행하여, 사용자 프로필을 기초로 한 게임리스트 파일로부터 지원되는 게임리스트를 읽고; 게임리스트 파일내 해당 엔트리를 기초로, 게임리스트내 게임에 관련된 새 게임 오브젝트를 생성하는 것을 특징으로 하는 게임장치.12. The system of claim 11, wherein the processor executes computer use code to read supported game lists from a game list file based on a user profile; And a new game object related to a game in the game list, based on the entry in the game list file. 제11항에 있어서, 상기 처리기가 컴퓨터 사용코드를 실행하여 사용자가 시작한 채팅기능들을 관리하고, 이런 채팅기능은 그룹채팅 합류, 그룹채팅 개시, 제2 사용자 차단, 가입자에서 제3 사용자 제거, 제4 사용자를 가입자에 추가, 제5 사용자에 메시지 전송, 제6 사용자의 메시지 수신을 포함하며, 이들 제1 내지 제6 사용자들 각각은 제11항의 사용자 이외의 타사용자인 것을 특징으로 하는 게임장치.The method of claim 11, wherein the processor executes computer usage code to manage user-initiated chat functions, which chat group joins a group chat, initiates a group chat, blocks a second user, removes a third user from a subscriber, and a fourth. And adding a user to a subscriber, sending a message to a fifth user, and receiving a message of a sixth user, wherein each of the first to sixth users is another user other than the user of claim 11. 게임환경에서 실행되는 컴퓨터 사용 프로그램코드를 담는 컴퓨터 사용매체를 포함한 컴퓨터 프로그램 매체에 있어서:In a computer program medium containing a computer use medium containing computer use program code executed in a gaming environment: 상기 컴퓨터 사용 프로그램코드가,The computer program code, 사용자가 게임을 시작해 게임을 하면 데이터 처리장치에 생기는 게임특성들을 모니터하고;Monitor game characteristics generated in the data processing apparatus when the user starts the game and plays the game; 이런 게임특성을 기초로 게임상태를 확인하며; Check the game state based on these game characteristics; 게임상태가 바뀌면 게임플레이 데이터를 수집하고;Collect gameplay data when the game state changes; 이런 게임플레이 데이터를 보고하는 것을 특징으로 하는 컴퓨터 프로그램 매체.And a computer program medium for reporting such gameplay data. 제17항에 있어서, 상기 컴퓨터 사용 프로그램 코드가 사용자 입력이나 룰셋을 기초로 게임특성을 확인하는 것을 특징으로 하는 컴퓨터 프로그램 매체.18. The computer program medium of claim 17, wherein the computer-used program code identifies game characteristics based on user input or ruleset. 제17항에 있어서, 상기 컴퓨터 사용 프로그램코드가 게임플레이 데이터를 데이터베이스에 업데이트하고, 데이터베이스로부터 동적 데이터를 받는데, 동적 데이터는 스트리밍 통계, 채팅가입자, 채팅친구 상태, 로컬 사용자 상태, 실시간 성능 통계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 매체.18. The computer program product of claim 17, wherein the computer-enabled program code updates gameplay data in a database and receives dynamic data from the database, the dynamic data including streaming statistics, chat subscribers, chat buddy status, local user status, real-time performance statistics. And a computer program medium. 제17항에 있어서, 상기 컴퓨터 사용 프로그램코드가 사용자가 시작한 채팅기능들을 관리하고, 이런 채팅기능은 그룹채팅 합류, 그룹채팅 개시, 제2 사용자 차단, 가입자에서 제3 사용자 제거, 제4 사용자를 가입자에 추가, 제5 사용자에 메시지 전송, 제6 사용자의 메시지 수신을 포함하며, 이들 제1 내지 제6 사용자들 각각은 제17항의 사용자 이외의 타사용자인 것을 특징으로 하는 컴퓨터 프로그램 매체.18. The method of claim 17, wherein the computer-enabled program code manages user initiated chat functions, the chat function joining a group chat, initiating a group chat, blocking a second user, removing a third user from a subscriber, and subscribing a fourth user. In addition to, sending a message to a fifth user, receiving a message of a sixth user, wherein each of said first to sixth users is a user other than the user of claim 17.
KR1020087010264A 2005-09-30 2006-09-22 Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment KR20080056257A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/239,862 US20070077992A1 (en) 2005-09-30 2005-09-30 Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment
US11/239,862 2005-09-30

Publications (1)

Publication Number Publication Date
KR20080056257A true KR20080056257A (en) 2008-06-20

Family

ID=37902578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087010264A KR20080056257A (en) 2005-09-30 2006-09-22 Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment

Country Status (7)

Country Link
US (1) US20070077992A1 (en)
EP (1) EP1928565A2 (en)
JP (1) JP2009509647A (en)
KR (1) KR20080056257A (en)
AU (1) AU2006297370A1 (en)
CA (1) CA2623570A1 (en)
WO (1) WO2007041066A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101441780B1 (en) * 2010-04-07 2014-10-23 애플 인크. Methods and systems for providing a game center having player specific options and statistics

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070238522A1 (en) * 2006-03-31 2007-10-11 Chandranmenon Girish P Methods and devices for quickly launching applications
US9026638B2 (en) * 2007-02-05 2015-05-05 Novell, Inc. Stealth entropy collection
WO2010041682A1 (en) * 2008-10-07 2010-04-15 インターナショナル・ビジネス・マシーンズ・コーポレーション Device and method for announcing user status
US8348733B2 (en) * 2009-12-21 2013-01-08 Electronics And Telecommunications Research Institute Apparatus and method for analyzing characteristic of game player in real time
US10554709B2 (en) * 2014-07-08 2020-02-04 Microsoft Technology Licensing, Llc Stream processing utilizing virtual processing agents
US10291685B2 (en) * 2016-05-27 2019-05-14 Tencent Technology (Shenzhen) Company Limited Method and apparatus for controlling running of service
US10675544B2 (en) * 2017-03-31 2020-06-09 Sony Interactive Entertainment LLC Personalized user interface based on in-application behavior
US10688399B2 (en) * 2018-02-21 2020-06-23 Roblox Corporation Group gameplay with users in proximity using a gaming platform
US11918918B2 (en) * 2021-12-21 2024-03-05 At&T Intellectual Property I, L.P. Apparatuses and methods for protecting users and devices from nefarious actors via a use of secondary networks and address translation

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6394453B1 (en) * 1994-01-03 2002-05-28 Donna L. Siemers Psycho-social game that measures emotional distance between players' responses
US6287202B1 (en) * 1996-06-28 2001-09-11 Silicon Gaming, Inc. Dynamic tournament gaming method and system
US5823879A (en) * 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US5766076A (en) * 1996-02-13 1998-06-16 International Game Technology Progressive gaming system and method for wide applicability
US6110041A (en) * 1996-12-30 2000-08-29 Walker Digital, Llc Method and system for adapting gaming devices to playing preferences
KR100221027B1 (en) * 1996-05-06 1999-09-15 윤종용 A computer monitoring apparatus and a method of controlling the same
US6009458A (en) * 1996-05-09 1999-12-28 3Do Company Networked computer game system with persistent playing objects
US5727950A (en) * 1996-05-22 1998-03-17 Netsage Corporation Agent based instruction system and method
US6758755B2 (en) * 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US6306035B1 (en) * 1996-11-14 2001-10-23 Arcade Planet, Inc. Graphical user interface for providing gaming and prize redemption capabilities
US6206782B1 (en) * 1998-09-14 2001-03-27 Walker Digital, Llc. System and method for facilitating casino team play
US20030064807A1 (en) * 2001-09-25 2003-04-03 Walker Jay S. Method and apparatus for linked play gaming
US6001016A (en) * 1996-12-31 1999-12-14 Walker Asset Management Limited Partnership Remote gaming device
US6643696B2 (en) * 1997-03-21 2003-11-04 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US5907831A (en) * 1997-04-04 1999-05-25 Lotvin; Mikhail Computer apparatus and methods supporting different categories of users
AU754046B2 (en) * 1997-05-31 2002-10-31 Robert A. Luciano A method of playing a long-duration multi-step wagering game
JPH1133230A (en) * 1997-07-16 1999-02-09 Sega Enterp Ltd Communication game system
US5882258A (en) * 1997-09-08 1999-03-16 Rlt Acquisition, Inc. Skill-based card game
US6368218B2 (en) * 1998-10-28 2002-04-09 Gtech Rhode Island Corporation Interactive gaming system
JP3695217B2 (en) * 1999-04-30 2005-09-14 オムロン株式会社 Image processing apparatus and image input apparatus
US6352479B1 (en) * 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
US6554707B1 (en) * 1999-09-24 2003-04-29 Nokia Corporation Interactive voice, wireless game system using predictive command input
US20030216961A1 (en) * 2002-05-16 2003-11-20 Douglas Barry Personalized gaming and demographic collection method and apparatus
JP2001129259A (en) * 1999-11-02 2001-05-15 Sony Corp Game machine system, server device, game practice device, display device and game using method
US6322446B1 (en) * 1999-12-10 2001-11-27 Elot, Inc. System and a method for operating on-line state lottery games
US20010039203A1 (en) * 2000-02-23 2001-11-08 Brown Geoffrey Parker Behavior modeling in a gaming environment with contextual accuracy
US6917940B1 (en) * 2000-03-10 2005-07-12 Hewlett-Packard Development Company, L.P. Olap-based customer behavior profiling method and system
US20020083179A1 (en) * 2000-05-12 2002-06-27 Shaw Venson M . System and method of personalizing communication sessions based on user behavior
US6640284B1 (en) * 2000-05-12 2003-10-28 Nortel Networks Limited System and method of dynamic online session caching
US20020072412A1 (en) * 2000-05-17 2002-06-13 Electronic Arts Inc. Online gaming with prize incentives
US6699125B2 (en) * 2000-07-03 2004-03-02 Yahoo! Inc. Game server for use in connection with a messenger server
JP2002358216A (en) * 2000-08-08 2002-12-13 System Support:Kk Computer monitoring system
US20020037767A1 (en) * 2000-08-17 2002-03-28 Steven Ebin Gambling system and method through a computer network
MXPA03001815A (en) * 2000-08-27 2004-11-01 Cv On Net N V Gambling games.
US20020142815A1 (en) * 2000-12-08 2002-10-03 Brant Candelore Method for creating a user profile through game play
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
US7168089B2 (en) * 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US20020082065A1 (en) * 2000-12-26 2002-06-27 Fogel David B. Video game characters having evolving traits
AU2002245226A1 (en) * 2001-01-09 2002-07-24 Topcoder, Inc. Systems and methods for coding competitions
US7780529B2 (en) * 2001-04-04 2010-08-24 Igt System, method and interface for monitoring player game play in real time
JP3606316B2 (en) * 2001-06-07 2005-01-05 ソニー株式会社 Character data management system, character server, character data management method, and program
US20030083052A1 (en) * 2001-06-27 2003-05-01 Seiko Epson Corporation Guidance information supply system, guidance information supply method, customer management system, customer management method and program for making computer implement the methods
US6884166B2 (en) * 2001-07-13 2005-04-26 Gameaccount Limited System and method for establishing a wager for a gaming application
US6908387B2 (en) * 2001-08-03 2005-06-21 Igt Player tracking communication mechanisms in a gaming machine
US7722466B2 (en) * 2002-03-06 2010-05-25 Wms Gaming Inc. Integration of casino gaming and non-casino interactive gaming
US6800031B2 (en) * 2002-04-15 2004-10-05 Microsoft Corporation Method of conducting an interactive competition
US7192346B2 (en) * 2002-04-19 2007-03-20 Mathis Richard M Systems and methods for skill game awards
US20030203757A1 (en) * 2002-04-25 2003-10-30 Parthapratim Chanda Interactive sports system
US20040177007A1 (en) * 2003-03-03 2004-09-09 Van Luchene Andrew S. Premium product access system for performance in a video game
US7410422B2 (en) * 2003-06-13 2008-08-12 Harrah's Operating Company, Inc. Unified player rewards
US8591338B2 (en) * 2003-08-18 2013-11-26 Igt System and method for permitting a tournament game on different computing platforms
US7798901B2 (en) * 2003-08-18 2010-09-21 Igt Tournament gaming method and system
US8002630B2 (en) * 2003-08-18 2011-08-23 Igt Tournament game system and method using a tournament game card
US20050119052A1 (en) * 2003-09-15 2005-06-02 Russell Glen K. Player specific network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101441780B1 (en) * 2010-04-07 2014-10-23 애플 인크. Methods and systems for providing a game center having player specific options and statistics

Also Published As

Publication number Publication date
WO2007041066A3 (en) 2007-12-06
AU2006297370A1 (en) 2007-04-12
WO2007041066A2 (en) 2007-04-12
US20070077992A1 (en) 2007-04-05
EP1928565A2 (en) 2008-06-11
CA2623570A1 (en) 2007-04-12
JP2009509647A (en) 2009-03-12

Similar Documents

Publication Publication Date Title
US20070077993A1 (en) Method and apparatus for collecting user game play data and crediting users in a gaming environment
KR20090119925A (en) Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment
KR20080056257A (en) Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment
JP5599855B2 (en) Game control device, item lottery program, game system
US20080220869A1 (en) Method and apparatus for providing game guide data in a gaming environment
US8491396B2 (en) Game supply delivery systems and methods
US10201754B1 (en) Systems and methods for incentivizing user log-in to a user account associated with an online game
JP5912531B2 (en) Online simulation and network applications
US8137193B1 (en) Supply delivery for interactive social games
US8190733B1 (en) Method and apparatus for virtual location-based services
US8133116B1 (en) Social supply harvest mechanic for interactive social games
US8137194B1 (en) Supply delivery for interactive social games
US10192402B1 (en) Ad serving offers and new game promotions outside the game module with business intelligence based on portfolio of games
US20190192978A1 (en) Video game group dynamic building
KR20060122236A (en) Method and system for performing quest by agent player in on-line game
JP2009511200A (en) Method and apparatus for finding a desirable multiplayer game for a player
US20160016080A1 (en) Distribution of Electronic Game Elements
US20080220872A1 (en) Method and apparatus for issuing a challenge prompt in a gaming environment
US20220062758A1 (en) System and Methods for IOT Enabled Arcade Games
KR101275655B1 (en) Item converting method using recommended item in on-line game and item converting server
KR101385089B1 (en) Game method for providing a prize through a predetermined game
US20140004954A1 (en) Social Network Data Analysis to Provide News for Online Gaming
JP2021027900A (en) Server system and program

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid