KR20090119925A - 게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치 - Google Patents

게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치 Download PDF

Info

Publication number
KR20090119925A
KR20090119925A KR1020097020818A KR20097020818A KR20090119925A KR 20090119925 A KR20090119925 A KR 20090119925A KR 1020097020818 A KR1020097020818 A KR 1020097020818A KR 20097020818 A KR20097020818 A KR 20097020818A KR 20090119925 A KR20090119925 A KR 20090119925A
Authority
KR
South Korea
Prior art keywords
game
data
user
server
software agent
Prior art date
Application number
KR1020097020818A
Other languages
English (en)
Inventor
티모시 엠. 미드글레이
데이비드 피. 터틀
제임스 와이. 양
Original Assignee
잭 미디어 엘엘시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 잭 미디어 엘엘시 filed Critical 잭 미디어 엘엘시
Publication of KR20090119925A publication Critical patent/KR20090119925A/ko

Links

Images

Classifications

    • 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
    • A63F13/35Details of 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/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • 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
    • A63F9/00Games not otherwise provided for
    • A63F9/24Electric games; Games using electronic circuits not otherwise provided for
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • 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/792Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for payment purposes, e.g. monthly subscriptions
    • 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/535Features 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 for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 특징은 온라인 게임환경에서 유저의 게임플레이 행동을 모니터하기 위한 컴퓨터 구현방법, 데이터 처리장치 및 컴퓨터 프로그램 매체를 제공하는데 있다. 게임의 실행에 반응하여, 유저의 게임 특징들이 모니터된다. 이 게임은 게임서버와 교류한다. 유저의 게임플레이 데이터가 수집된다. 게임서버에 있는 플러그인 애플리케이션이 이런 데이터를 수집한다.

Description

게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치{METHOD AND APPARATUS FOR MONITORING USER GAME-PLAYING BEHAVIOR AND REPORTING GAME PLAY DATA IN A GAMING ENVIRONMENT}
본 발명은 게임환경, 구체적으로는 게임환경에서의 게임플레이, 더 구체적으로는 게임환경에서 게임플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 것에 관한 것이다.
인터넷의 발달로, 전세계의 게이머들이 장소나 시간의 제약 없이 온라인을 통해 양방향으로 게임을 할 수 있게 되었다. 온라인 공동게임에서, 게이머들은 게임에 관한 정보는 물론 게임에 관한 다른 관심사, 예컨대, 사용성이나 원하는 특징과 같은 관심사도 공유할 수 있다. 게임을 제작하는 게임사의 입장에서는 게이머들의 관심사가 마케팅, 게임개발 및 게임제작에 관한 유용한 정보원이 된다. 게이머들의 관심사는 게임사가 판매추세를 확인하는데 도움을 주는 통계도 된다. 이런 통계자료의 예로는 지리, 요금, 가격대비 판매율을 근거로한 판매도표가 있다.
GamerMetrics와 같은 공동게임 소프트웨어는 게임사를 위해 게이머의 관심사를 분석한다. GamerMetrics는 ING Entertainment사의 제품으로, 게임 구입사이클을 통해 게이머의 활동을 취급하며, 게임을 구입하도록 결심하는 인자들을 수집한다. 그러나, 게임을 구입한 뒤에는 전혀 분석이 이루어지지 않는데, 이는 판매 시점까지의 게이머 활동만 모니터하기 때문이다. 판매 후에도 데이터를 제공하는 온라인 공동게임 소프트웨어가 있기는 해도, 게임이 세일중이거나 게임을 할 때 요금이 부과되기 때문에 이 데이터는 상당히 편향되어 있다. 또, 현재의 공동게임 소프트웨어로는 실제 게임활동을 확인하지 못한다. 예를 들면, 매월 가입비를 내야 하는 유저의 경우 게임서버에 2일간 로그인해도 활동시간은 겨우 2시간인 경우가 태반이다.
게임사 입장에서 제작할 게임의 종류를 결정하는데 판매전 데이터가 중요하지만, 판매추세를 더 모니터하는데 있어서는 판매후 데이터도 마찬가지로 중요하다. 판매후 데이터가 있으면 게이머의 행동을 분석할 수 있고, 게이머가 게임을 구입한 뒤 무엇을 하는지 분석할 수 있다. 판매후 데이터로 알 수 있는 것은, 얼마나 많은 시간 게임을 하는지, 판매후 얼마 동안(몇일, 몇주, 몇달 등)이나 게임을 하는지, 누가 게임을 하는지, 어디서 게임하는지 등등이다.
또, 판매후 데이터는 게임의 인기도와 수명을 분석하는데 도움이 된다. 이런 판매후 정보는 속편을 개발할지, 타 경쟁사와 시중에서 협력할지, 어떤 종류의 청중에 초점을 맞출지, 게임타이틀을 더 개발할지, 미래의 게임개발을 위해 상세한 인구통계자료를 만들지, 향후의 개발시기, 미래의 게임개발을 위한 예산과 마케팅 제약 등을 결정하는데 도움이 된다. 현재 이런 판매후 데이터를 제공하는 솔루션은 전혀 없으며, 게이머가 오프라인에 있는 동안 게임플레이 데이터를 모니터하는 솔루션도 전혀 없다. GamerMetrics와 같은 솔루션은 온라인 게임을 하는 동안에만 분 석을 한다. 또, 편향적이지 않은 싱글플레이 게임플레이 데이터를 제공하는 솔루션도 없는데, 이는 모든 솔루션이 2명 이상의 게이머가 게임을 하는 동안의 게임플레이 데이터를 제공하기 때문이다.
또, IGN의 GamerMetrics와 Gamespy같은 서비스의 가입은 이 서비스가 유료이기 때문에 제한적이다. 게이머들은 싱글플레이나 멀티플레이 환경에 상관없이 서비스에 가입할 수 있다. 문제는 게이머의 활동에서 수집한 데이터가 여전히 IGN이 운용하는 네트웍서버에서 기인한다는 것이다.
본 발명의 특징은 온라인 게임환경에서 유저의 게임플레이 행동을 모니터하기 위한 컴퓨터 구현방법, 데이터 처리장치 및 컴퓨터 프로그램 매체를 제공하는데 있다. 게임의 실행에 반응하여, 유저의 게임 특징들이 모니터된다. 이 게임은 게임서버와 교류한다. 유저의 게임플레이 데이터가 수집된다. 게임서버에 있는 플러그인 애플리케이션이 이런 데이터를 수집한다.
본 발명의 특징은 게임환경에서 유저 게임플레이 행동을 모니터하고 게임플레이 데이터를 보고하기 위한 컴퓨터 구현방법, 데이터 처리장치 및 컴퓨터 프로그램 매체를 제공하는데 있다. 게임을 시작할 때, 유저의 게임특성들이 모니터되고, 이런 게임특성을 기초로 게임상태가 확인된다. 게임상태에 변화가 있으면 유저의 게임플레이 데이터가 수집되고, 이 데이터는 처리된다.
이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명한다.
도 1은 본 발명의 특징을 보여주는 데이터 처리장치의 네트웍;
도 2는 본 발명에 따른 데이터 처리장치의 블록도
도 3은 본 발명의 구성요소들 사이의 연결관계를 보여주는 블록도;
도 4는 본 발명에 따라 게임플레이 데이터를 수집하고 크레딧을 쌓는 과정의 순서도;
도 5는 본 발명에 따라 유저 게임플레이 데이터를 처리하는 과정의 순서도;
도 6은 유저의 계좌 크레딧 소비를 관리하는 순서도;
도 7은 게이머, 소프트웨어 에이전트, 데이터베이스 서버, 웹서버, 채팅서버의 실행과정의 블록도;
도 8A~B는 게이머, 소프트웨어 에이전트, 서버, 채팅서버의 활동들을 보여주는 블록도;
도 9는 게임상태를 판단하는 순서도;
도 10A~C는 유저 게임플레이 데이터 확인, 저장, 전송할 때 관련된 활동들과 데이터를 설명하는 블록도
도 11A~B는 본 발명을 구현하는데 사용되는 클래스의 블록도;
도 12A~B는 본 발명의 채팅기능을 설명하는 순서도;
도 13A는 본 발명에 따라 서버의 관점에서 유저의 게임플레이 데이터를 수집하는 순서도;
도 13B는 도 3의 소프트웨어 에이전트(301) 관점에서 유저 게임플레이 데이터를 수집하는 순서도.
도 14는 본 발명에 따라 온라인 환경에서 동작할 소프트웨어 에이전트를 구성하는 과정의 순서도이다.
도 15는 본 발명에 따라 온라인 환경에서 운용할 소프트웨어 에이전트의 토너먼트 모드에 들어가는 과정의 순서도이다.
도 16은 본 발명에 따른 온라인 환경에 게임플레이 데이터를 수집하는 과정의 순서도이다.
도 17은 본 발명에 따른 도전 프롬프트를 위한 프롬프트 룰을 저장하는 과정의 순서도이다.
도 18은 본 발명에 따른 게임을 하는 동안 유저에서 도전 프롬프트를 보여주는 과정의 순서도이다.
도 19는 본 발명에 따라 온라인 환경에서 게임한 결과로 유저에게 크레딧을 제공하는 과정의 순서도이다.
도 20은 본 발명에 따라 게임을 하는 동안 유저에게 게임 안내데이터를 제공하도록 소프트웨어 에이전트를 설정하는 과정의 순서도이다.
도 21은 본 발명에 따라 게임을 하는 동안 안내데이터를 디스플레이하는 과정의 순서도이다.
도 22는 본 발명에 따라 게임 유저, 소프트웨어 에이전트, 서버 및 데이터저장에 의해 실행되는 사용례를 설명하는 사용례 블록도이다.
도 23A~B는 본 발명의 특징을 구현하는데 사용된 클래스들을 보여주는 블록도이다.
도 24는 본 발명에 따라 온라인 환경에서 본 발명의 특징을 구현하는데 사용되는 클래스들을 보여주는 블록도이다.
도 25는 본 발명에 따라 게임을 하는 동안 이동창의 디스플레이를 구현하는데 사용되는 클래스들의 블록도이다.
도 1~2는 본 발명의 일례를 구현하기 위한 데이터 처리환경의 블록도로서, 단지 예를 든 것일 뿐임을 알아야 한다.
도 1은 본 발명의 특징을 보여주는 데이터 처리장치의 네트웍을 보여준다. 네트웍 데이터 처리장치(100)는 본 발명의 일례를 구현하는 컴퓨터 네트웍으로, 이곳에 포함된 네트웍(102)은 시스템에 연결된 여러 기기와 컴퓨터 사이의 통신링크를 제공하는 매체이다. 네트웍(102)은 유무선 통신링크나 광섬유케이블을 모두 포함한다.
서버(104,106)는 저장장치(108)와 함께 네트웍(102)에 연결되고, 클라이언트(110,112,114) 역시 네트웍에 연결된다. 클라이언트(110,112,114)는 PC나 네트웍 컴퓨터를 포함한다. 서버(104)는 부트파일, 연산시스템 영상, 애플리케이션과 같은 데이터를 클라이언트(110,112,114)에 제공한다. 클라이언트(110,112,114)는 여기서는 서버(104)의 클라이언트이고, 서버(104)는 클라이언트에서 유저가 플레이하는 게임을 유치하는 게이머 서버이다. 물론, 다른 서버, 클라이언트, 기기들이 네트웍데이터 처리장치(100)에 더 포함될 수도 있다.
본 실시예의 처리시스템(100)은 전세계적인 네트웍(102)을 갖는 인터넷으로 서, TCP/IP(Transmission Control Protocol/Internet Protocol)을 사용한다. 인터넷의 핵심은 메이저 노드나 호스트컴퓨터 사이의 고속 통신선으로, 호스트컴퓨터는 데이터와 메시지를 라우팅하는 상업용, 정부기관용, 교육용의 수천대의 컴퓨터시스템으로 구성된다. 몰론, 이 처리시스템(100)을 여러 종류의 네트웍, 예컨대 인터넷, LAN, WAN 등등으로 구성할 수도 있다. 도 1의 예는 단지 일례일 뿐이고, 본 발명을 제한하는 것은 아니다.
도 2는 데이터 처리장치(200)의 블록도로서, 이 데이터 처리장치는 도 1의 서버(104)나 클라이언트(110)와 같은 컴퓨터이고 본 발명을 구현하기 위한 프로세스를 실현하는 컴퓨터 사용 코드나 명령어들이 로딩되어 있다.
이 데이터 처리장치(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)에 연결되기도 한다.
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)가 있을 수 있다.
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)에 연결될 수 있다.
처리장치(206)에서 돌아가는 운용시스템은 시스템내 각종 요소들을 조절한다. 운용시스템으로는 시중에서 구입할 수 있는 MS 윈도우 XP를 사용할 수 있다. Java 프로그래밍 시스템과 같은 객체지향 시스템을 운용시스템과 같이 사용하면, 데이터 처리장치(200)에서 실행되는 Java 프로그램이나 애플리케이션으로부터 운용시스템을 호출할 수 있다. Java는 미국 선마이크로 시스템사의 상표명이다.
데이터 처리장치(200)는 서버로서 IBM의 eServer pSeries 컴퓨터시스템을 예로 들 수 있고, 이는 AIX(Advanced Interactive Executive) 운용시스템이나 LINUX 운용시스템을 채택한다. eServer, pSeries, AIX 모두 미국의 International Business Machines 사의 상표이고 LINUX는 미국의 Linus Torvalds사의 상표이다. 데이터 처리장치(200)는 처리장치(206)에 프로세서가 여러개 들어있는 SMP(symmetric multiprocessor) 시스템이 일반적이지만, 싱글 프로세서 시스템을 채택할 수도 있다.
운용시스템과 객체지향 프로그래밍 시스템과 애플리케이션이나 프로그램을 위한 명령어들은 저장장치인 HDD(226)에 저장되었다가 처리장치(206)에 의해 메인메모리(208)에 실행 대기될 수 있다. 본 발명의 프로세스는 컴퓨터용 프로그램코드 를 이용해 처리장치(206)에서 실행되는데, 프로그램코드는 메인메모리(208), ROM(224)와 같은 메모리나 주변기기(226,230)에 저장될 수 있다.
당업자라면 알 수 있겠지만, 도 1~2의 하드웨어는 상황에 따라 바뀔 수 있다. 플래시메모리, 비휘발성 메모리, 광디스크 드라이브와 같은 다른 하드웨어나 주변기기를 도 1~2의 하드웨어에 대체하여 또는 함께 사용할 수 있다. 또, 본 발명의 과정을 멀티프로세서 데이터 처리장치에 응용할 수도 있다.
경우에 따라, 데이터 처리장치(200)가 PDA(personal digital assistant)일 수도 있는데, 이 경우 운용시스템 파일이나 유저생성 데이터를 저장하는데 비휘발성 메모리를 사용할 수 있다.
도 2의 경우 버스(238,240)를 이용하는데, 구성요소나 기기들 사이에 데이터를 전송할 수 있는 통신기기면 어떤 종류도 이용할 수 있다. 이런 통신기기는 도 2의 모뎀(222)이나 네트웍 어댑터(212)와 같이 데이터 송수신에 사용하는 기기를 포함한다. 메모리는 도 2의 NB/MCH(202)에서 볼 수 있는 메인메모리(208), ROM(224) 또는 캐시를 사용할 수 있다. 본 발명은 도 1~2를 참조하여 위에서 설명한 구조에 한정되지 않는다. 예를 들어, 데이터 처리장치(200)가 PDA 형태의 태블릿 컴퓨터, 랩탑컴퓨터, 전화기일 수도 있다.
본 발명의 특징은 유저의 게임플레이 행동을 모니터했다가 게임플레이 데이터를 보고하는데 있다. 게임플레이 데이터를 유저로부터 생성하기 위해, 본 발명은 게임시스템에 다운로드해 설치할 수 있는 소프트웨어 에이전트를 제시한다. 게임시스템은 도 2의 데이터 처리장치(200)와 같은 컴퓨터시스템이나, 코드의 다운로드나 설치를 지원하는 다른 게임 엔터테인먼트 시스템을 포함한다. 게임 엔터테인먼트 시스템에는 소니의 플레이스테이션2, 마이크로소프트사의 XBox가 있다. 소프트웨어 에이전트는 게임 특징을 정확히 모니터하여 유저가 적극적으로 게임을 즐기고 유저의 상황이 바뀌면 유저의 게임플레이 데이터를 수집하는지 여부를 판단한다. 소프트웨어 에이전트가 모니터하는 게임특징의 예를 보면, 마우스 사용, 조이스틱 사용, 키보드 사용, CPU 활용, 유저액티브 윈도우와 유저메모리 사용, 유저 네트웍 연결 등이 있다.
게임플레이 데이터는 유저가 게임을 하는 방식을 보여주는 데이터이다. 유저는 게임을 시작하기 전에 소프트웨어 에이전트를 작동시켜 게임플레이 데이터를 수집한다. 소프트웨어 에이전트가 판단하기에 게임특성에 맞게 유저가 적극적으로 게임을 플레이한다고 결정하거나 게임상황에 변화가 일어났다고 판단하면, 유저 게임플레이 데이터를 수집하고 게임플레이 행동을 계속 모니터한다. 한편, 소프트웨어 에이전트가 유저가 게임을 시작할 때 자동으로 작동될 수도 있다. 유저 게임플레이 데이터는 플레이시간, 게임을 플레이한 날짜, 게임 타이틀, 기타 성능 통계자료를 포함한다. 다른 일반적인 게임 소프트웨어와는 달리, 본 발명의 소프트웨어 에이전트는 온라인과 오프라인 양쪽으로 게임플레이 데이터를 수집한다.
유저 게임플레이 데이터는 소프트웨어가 작동되는 동안 수집된다. 유저는 인터넷에 접속하여 원격으로 게임을 하거나 인터넷접속 없이 PC에서 직접 게임을 플레이할 수 있다. 소프트웨어 에이전트는 게임플레이 데이터를 온라인으로 원격 수집하거나 오프라인으로 수집한다. 유저 게임플레이 데이터는 양방향 팁이나 힌트를 위한 동적 서비스는 물론 유저들 사이의 통신을 위한 동적 유저인터페이스를 생성하는데 사용되기도 한다. 동적서비스의 예로는 경쟁리그, 토너먼트 게임, 통계경쟁게임이 있는데, 물론 이에 한정되지도 않는다.
소프트웨어 에이전트가 온라인이나 오프라인으로 유저의 게임플레이 데이터를 수집한 뒤에는 언제라도, 네트웍 연결만 되어있다면 서버와 통신하면서 이 데이터를 저장하고 처리할 수 있다. 네트웍이 항상 연결상태가 아니면, 게임플레이 데이터를 저장했다가 연결이 되었을 때 전송한다. 대부분의 경우 네트웍연결은 인터넷이다. 본 실시예에서는, 소프트웨어 에이전트와 서버가 통신보안 프로토콜을 통해 서로 통신하는데, 예를 들면 보안 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) 파일을 이용해 정의된다.
소프트웨어 에이전트와 서버는 동적데이터와 정적데이터를 서로에게 제공한다. 정적데이터는 에이전트 스킨파일, 게임리스트, 게임법칙, 기타 소프트웨어 에이전트를 구성하는 구성파일을 포함한다. 동적데이터는 스트리밍 통계, 채팅친구 리스트, 친구상태, 지역유저 상태(활동중, 휴식중 또는 비활동중), 실시간 성능 통계 등을 포함한다. 에이전트 스킨파일은 애플리케이션 윈도우 위로 계층화되어 윈 도우의 모양과 느낌을 조정하는 영상파일이다. 네트웍접속이 되지 않은 경우, 네트웍접속이 감지될 때까지 수집된 유저 게임플레이 데이터를 계속해서 클라이언트 게임플레이 데이터 파일에 국부적으로 축적한다. 네트웍접속이 된 경우에는 클라이언트 게임플레이 데이터가 계속 국부적으로 축적된다. 그러나, 클라이언트 게임데이터는 임계치를 근거로 적극적으로 서버에 보내진다. 예를 들어, 유저가 온라인에 있고 10개 업데이트를 축적했으면, 이들 업데이트는 서버로 보내지고 클라이언트 게임플레이 데이터파일은 리셋된다. 즉, 클라이언트 게임데이터는 로컬 기기에 저장된 게임데이터나 실시간으로 서버에 보내지는 다른 게임데이터를 포함함을 알 수 있다.
서버는 소프트웨어 에이전트로부터 유저 게임플레이 데이터를 받아 처리하는데, 구체적으로는 데이터베이스에 업데이트한다. 도시된 실시예에서, 데이터베이스는 여러 유저를 위해 수집된 모든 게임플레이 데이터를 포함한다. 데이터베이스의 업데이트 데이터를 근거로, 유저의 개인계좌를 관리한다. 유저의 개인계좌는 가상의 쇼핑몰에서 상품이나 서비스를 사는데 사용될 크레딧이 입금되어 있다.
유저 개인계좌의 관리는 유저 계좌로의 크레딧 입금과 쇼핑몰에서 크레딧의 소비관리를 포함한다. 유저는 가상 쇼핑몰에서 주문한 상품이나 서비스에 크레딧을 쓸 수 있다. 크레딧 입금은 게임에 쓴 총 시간과 같은 게임플레이 데이터나, 유저가 게임으로 모은 포인트와 같은 인센티브를 근거로 할 수 있다. 사용시간이나 포인트 외에도, 킬(kill), 레벨, 임무완수, 상태, 승리(win)와 같은 다른 종류의 인센티브를 크레딧 입금에 사용하기도 한다.
도 3은 본 발명의 구성요소들 사이의 연결관계를 보여주는 블록도이다. 데이터 처리장치(302)나 게임콘솔(310) 안에 소프트웨어 에이전트(301)가 구현되고, 데이터 처리장치(302)는 도 2의 데이터 처리장치(20)처럼 구현된다. 게임콘솔(310)은 플레이스테이션2나 XBox와 같은 게임 엔터테인먼트 시스템으로 구현된다.
게임플레이 데이터를 생성하기 위해, 소프트웨어 에이전트(301)는 게임특징을 모니터하면서 유저(300)가 적극적으로 게임을 하는지 여부를 판단한다. 이런 게임특징에는 마우스 사용, 조이스틱 사용, 키보드 사용, 프로세서 활용, 액티브 윈도우, 메모리 사용, 네트웍 접속 등이 포함된다. 소프트웨어 에이전트(301)는 마우스(306)의 물리적 상태를 정기적으로 문의하여 마우스 사용 여부를 안다. 마찬가지로, 키보드나 조이스틱의 사용 여부도 키보드(308)와 조이스틱(304)의 물리적 상태를 정기적으로 문의하면 알 수 있다. 또, 소프트웨어 에이전트(301)는 PDA(328)나 스파트폰(332)와 같은 하드웨어 기기의 물리적 상태를 정기적으로 문의하여 다른 입력기기의 사용 여부를 알 수 있다.
프로세서 활용, 액티브 윈도우, 메모리 사용, 네트웍 접속과 같은 다른 게임특징들은 유저(300) 간섭 없이 데이터 처리장치(302)의 운용시스템에서 결정될 수 있다. 운용시스템이 제공하는 인터페이스에 의해 소프트웨어 에이전트(301)가 이런 게임특징들을 추출할 수 있다. 운용시스템으로는 윈도우 XP가 적당하다. 소프트웨어 에이전트(301)가 게임콘솔에서 구현되면, 유저(300)가 게임컨트롤러(312)를 통해 게임콘솔(310)에 입력할 때 구해지는 게임컨트롤러 사용정보도 게임특징에 포함될 수 있다.
게임 특징들을 기반으로, 소프트웨어 에이전트(301)는 유저가 적극적으로 게임을 하는지 여부를 판단한다. 본 실시예에서는, 소프트웨어 에이전트(301)가 게임 상태를 지속적으로 모니터하면서 변화에 관련된 데이터를 수집하는데, 예를 들면 게임상태가 휴식에서 활동으로, 활동에서 정지로, 정지에서 휴식으로 등등 변할 때의 클라이언트 데이터를 수집한다. 유저 게임플레이 데이터는 유저(300)가 게임을 하는 방식을 반영하는 데이터로서, 플레이중인 게임의 타이틀, 유저네임, 플레이 기간, 기타 다른 통계학적인 성능데이터, 저장된 포인트 등이 있다. 성능통계는 플레이중인 게임에 관한 모든 관련 측정값을 포함할 수 있다.
소프트웨어 에이전트(301)가 수집한 게임플레이 데이터는 전적으로 감시상황에서 샘플되는 사후 데이터라는 점에서 독특하다. 이런 유저 게임플레이 데이터는 다른 게임 소프트웨어에서 수집하는 데이터보다 유리한데, 이는 판매 시점 이후 얻을 수 있는 정보이기 때문이다. 이 정보를 판매 이후 얻을 수 있다 해도, 편파적인 정보가 대부분이어서 게임플레이에는 고려되지 못한다. 소프트웨어 에이전트(301)가 수집한 유저 게임플레이 데이터는 판매 후 현재 진행되는 상황을 반영할 뿐만 아니라, 회사에서 향후 추세를 예측하는데에도 도움이 된다. 게임기 판매대수가 작동되는 게임기 대수와는 다를 수 있다. 소프트웨어 에이전트(301)를 이용하면 현재 작동중인 게임기 수를 판단할 수 있으므로, 게임기 기획자나 바이어, 게임 공개자, 개발자, 분석가 등을 포함한 각종 투자자에게 유용한 사후 시장조사자료가 될 수 있다.
본 발명에서 특징으로 하는 사후 데이터는 편파적이지 않고 진실한 사후 게 임 활동의 특징을 보여준다. 식사를 하는 고객의 욕구와 행동을 결정하는 것과 비슷하게, 레스토랑이나 부페에서 얻은 데이터는 약간은 편파적으로, 정보제공자 편향적이어서, 레스토랑에서 얻은 데이터는 레스토랑이 제공하는 정보에 편중된다. 마찬가지로, 부페에서는 식사할 음식의 선택과 양이 과식에 편중된다. 데이터를 수집하는 더 좋은 방법은 식사를 하는 동안의 개인의 식사 취향을 장기간에 걸쳐 조사하는 것이다. 이렇게 수집된 데이터는 레스토랑이나 부페에서 제공하는 음식의 종류를 기반으로 편중되거나 편파적이지 않을 것이다.
수집된 게임플레이 데이터의 특징 이외에도, 소프트웨어 에이전트(301)는 온라인과 오프라인 양쪽으로 데이터를 수집한다는 점에서 현재의 게임 소프트웨어보다 우수하다. 현재의 공동게임 소프트웨어는 대부분 인터넷이나 지역 네트웍을 통해 다른 유저와 온라인 게임을 하는 동안 데이터를 수집한다. 온라인으로 유저 사이에서 수집되는 유저 게임플레이 데이터는 편파적이거나 편중되어서 적극적인 게임 플레이를 반영하지 못한다. 지역 네트웍을 통해 게임을 하고 있는 유저 사이에서 수집된 게임플레이 데이터는 외부 소스에 의한 모니터링에 쉽게 활용하지 못한다. 또, 현재의 공동게임 소프트웨어는 2인 이상의 유저가 게임을 하는 동안에만 데이터를 수집하기 때문에 오프라인에서 일어나는 개인별 게임에 대한 데이터는 수집하지 못한다.
소프트웨어 에이전트(301)는 게임플레이 데이터를 수집하면서 데이터 처리장치(302)나 게임콘솔(310)에서 네트웍접속이 가능한지 판단한다. 네트웍접속이 가능하면, 데이터 처리장치(302)나 게임콘솔(310)의 클라이언트 게임데이터 파일(314) 에 모인 수집데이터를 SOAP-over-HTTPS와 같은 통신보안 프로토콜을 사용해 인터넷(316)을 통해 서버(320)에 보내는데, 이때 미리 설정된 임계치와 주기를 기반으로 보내고, 일례로 10분마다 보내도록 할 수 있다. 네트웍접속이 없으면, 네트웍접속이 감지될 때까지 수집된 데이터를 계속해서 데이터파일(314)에 모아둔다. 데이터파일(314)은 유저(300)가 오프라인이나 온라인으로 게임을 하는 동안 유저 게임플레이 데이터를 수집한다.
수집된 데이터를 받은 서버(320)는 이를 추출하여 처리하는데, 기존의 데이터와 같이 데이터베이스(322)에 업데이트하고, 이때 인터넷을 통해 데이터베이스(322)에 데이터를 보낼 수 있다. 데이터베이스(322)는 여러 유저에게서 수집된 게임플레이 데이터의 이력을 구비한다. 서버(320)에 의해 데이터베이스(322)에 업데이트된 데이터는 다른 비즈니스 기능에 이용될 수 있다.
예를 들어, 업데이트된 데이터에서 얻은 동적 통계자료를 소프트웨어 에이전트(301)에 바로 보내거나 데이터 처리장치(302)인 게임콘솔(310)의 웹페이지에 보낼 수 있다. 이렇게 되면, 유저(300)는 개인 계좌의 상태에 관한 피드백을 바로 받을 수 있다.
본 발명이 실행할 수 있는 다른 비즈니스 기능은 유저의 개인계좌의 관리이다. 개인계좌의 크레딧은 유저가 사용해 상품이나 서비스를 구입하는데 사용된다. 본 발명에 의하면 유저가 계좌에 크레딧을 입금했다가 가상의 쇼핑몰(324)에서의 크레딧 소비를 관리할 수 있다.
가상 쇼핑몰(324)는 유저가 구입할 수 있는 다양한 상품이나 서비스를 구비 하고 있고, 웹서버(321)에서 구현될 수 있다. 유저(300)는 데이터 처리장치(302)를 통해 가상 쇼핑몰(324)과 거래하는데, 예컨대 가전제품, 게임소프트웨어, 식품, 상품권, 영화티켓 등을 구입할 수 있다.
이상 설명한 바와 같이, 유저는 가상쇼핑몰(324)에서 주문한 상품이나 서비스에 자신의 크레딧을 쓸 수 있다. 유저가 게임에 투자한 시간과 같은 실시간 게임플레이 데이터나, 게임에서 유저가 쌓은 포인트와 같은 인센티브를 기반으로 계좌에 크레딧을 모을 수 있다. 또, 소프트웨어 에이전트(301)는 인터넷(316)을 통해 채팅서버(326)와 통신하여 유저(300)와 다른 유저 사이의 채팅기능을 촉진하기도 한다.
도 4는 본 발명에 따라 게임플레이 데이터를 수집하고 크레딧을 쌓는 과정의 순서도이다. 이 과정은 도 3의 소프트웨어 에이전트(301)에서 이루어진다. 도 4에 의하면, 유저가 소프트웨어 에이전트를 다운로드하여 데이터 처리장치나 게임콘솔에 설치할 때 과정이 시작한다(402 단계).
이어서, 게임에 앞서 유저가 소프트웨어 에이전트를 가동한다(404 단계). 소프트웨어 에이전트는 게임 특징들을 모니터한다(406 단계). 게임특징들을 기반으로 게임 상태가 변하는지 여부에 관해 소프트웨어 에이전트가 판단한다(408 단계). 구체적으로, 소프트웨어 에이전트가 판단하는 방법에 대해서는 도 9A~B에서 설명한다. 게임 상태가 변하면, 소프트웨어 에이전트가 게임플레이 데이터를 수집하고(410 단계) 수집데이터를 클라이언트의 게임 데이터파일에 저장한다(412 단계). 소프트웨어 에이전트가 이런 데이터를 수집하는 방법에 대해서는 도 13A~B에서 자 세히 설명한다. 게임상태가 변하지 않으면, 406 단계로 돌아가 게임특징을 계속 모니터하고, 408 단계에서 게임상태가 변했는지 다시 판단한다.
소프트웨어 에이전트는 게임플레이 데이터를 수집해 클라이언트 게임 데이터파일에 저장한다. 카운트나 주기를 업데이트하는 임계값이 충족되면(413 단계), 유저가 현재 온라인 상태인지 판단한다(414 단계). 이 판단은 도 3의 데이터 처리장치(302)나 게임콘솔(310)에서 네트웍접속이 가능한지 여부를 근거로 한다. 유저가 현재 온라인 상태이면, 소프트웨어 에이전트는 서버와 통신하여 수집데이터를 저장하고 처리한다(416 단계). 오프라인 상태이면 410 단계로 돌아가 계속 데이터를 수집하고 412 단계에서 수집데이터를 저장한다.
축적된 데이터는 유저 시스템, 즉 데이터 처리장치(302)나 게임콘솔(310)내 클라이언트 게임데이터 파일에 저장된다. 이후, 소프트웨어 에이전트는 유저의 개인계좌의 업데이트를 요구하고 서버로부터 크레딧의 확인을 받는다(418 단계). 이어서, 계좌 업데이트를 유저에게 통보한다(420 단계). 420 단계는 선택적이고 이후 과정은 종료한다.
도 5는 본 발명에 따라 유저 게임플레이 데이터를 처리하는 과정의 순서도로서, 도 3의 서버(320)에서 구현된다. 도 5에 의하면, 소프트웨어 에이전트가 도 4의 416 단계에서 서버와 통신한 뒤 과정이 시작한다. 소프트웨어 에이전트로부터의 통신을 서버가 감지하는데서 과정이 시작한다(502 단계). 이어서, 서버는 수집데이터를 데이터베이스에 업데이트한다(504 단계). 여러 유저의 게임플레이 데이터 이력도 데이터베이스에 저장된다.
데이터베이스가 수집데이터로 업데이트되면, 이 데이터를 근거로 서버가 유저 개인계좌에 크레딧을 입금한다(506 단계). 게임에 투자한 총 시간과 같은 실시간 누적 게임플레이 데이터를 기반으로 유저 개인계좌에 크레딧을 입금할 수도 있고, 유저가 게임을 위해 모은 포인트와 같은 인센티브를 기반으로 입금할 수도 있다. 이어서, 유저는 개인계좌의 업데이트를 요청하고, 서버는 계좌 업데이트를 소프트웨어 에이전트나 웹사이트에 보낸다(508 단계).
유저 개인계좌에 크레딧이 입금되면, 유저는 잔고를 확인하거나 가상쇼핑몰에서 상품이나 서비스 가격을 지불할 수 있다. 본 발명의 다른 특징은 가상쇼핑몰에서 계좌 크레딧의 사용을 관리하는데 있다. 도 6은 유저에 의한 계좌 크레딧의 소비를 관리하는 순서도로서, 도 3의 웹서버(321)에서 이루어진다. 도 6에 의하면 가상쇼핑몰에 로그인하는데서 시작한다(602 단계). 이어서, 웹서버는 데이터베이스에 업데이트된 데이터를 추적하고(604 단계), 계좌정보를 유저에게 보여준다(606 단계). 이 단계에서는 물건구입을 할 크레딧이 있다는 것을 유저에게 알려주는 광고를 디스플레이한다. 예를 들어, 유저가 게임에 소비한 시간이 임계치를 넘었기 때문에 유저에게 크레딧을 지급할 수 있다.
계좌정보를 디스플레이한 뒤, 웹서버는 유저가 가상쇼핑몰에서 구입할 수 있는 상품이나 서비스의 선택을 감지하고(608 단계), 이어서 선택한 상품이나 서비스 가격을 지불한다(610 단계). 따라서, 과정은 종료한다.
도 7은 게이머, 소프트웨어 에이전트, 데이터베이스 서버, 웹서버, 채팅서버의 실행과정의 블록도이다. 게이머(700)는 조이스틱, 키보드, 마우스를 포함한 입 력기(702)를 사용해 게임을 시작하지만, 게임컨트롤러를 포함한 다른 게임기를 사용하기도 한다.
에이전트(708)가 작동되면 게이머(700)가 게임을 시작한다(701). 에이전트(708)는 입력기의 동작을 모니터하여 게임을 하고있는지 판단한다. 이런 특성이 유저 입력으로 알려진 것이고, 소프트웨어 에이전트에 의한 유저 입력 판단을 위한 케이스를 엔트로피 확인(710)이라 한다. 엔트로피 확인(710) 이외에, 에이전트(708)는 유저가 게임을 하고있는지 판단하기 위해 다른 게임 특성들을 추적하기도 하는데, 구체적으로 활성 프로세스(712), 메모리사용(714), CPU 활용(716) 등이다. 이들 특성들은 게이머(700)가 현재 사용중인 도 3의 데이터 처리장치(302)나 게임콘솔(310)의 운용시스템이 제공하는 인터페이스에서 얻어진다.
유저가 활동중인지, 휴식중인지, 비활동인지 판단할 때, 에이전트(708)는 룰셋(ruleset) 파일의 소정 알고리즘과 인공지능을 이용한다. 룰셋파일은 에이전트(708)가 쉽게 인터페이스할 수 있는 범용 플러그인으로 구현될 수 있다. 룰셋은 소프트웨어 에이전트가 모니터하는 속성이나 특성의 임계치를 정의한다. 이런 정의에 의해, 게임사나 리소스는 유저 행동을 모니터하기 위한 각각의 기준을 정할 수 있다.
룰셋은 GameName, GameID#, threshold_0, threshold_1,...,threshold_N으로 정의될 수 있다. GameName은 모니터하는 게임명이고, GameID#는 모니터하는 게임의 랜덤 게임코드인 "태그"이며, threshold_0, threshold_1,...,threshold_N은 각각 attribute_0, attribute_1,...,attribute_N의 포인트웨이트(point weight)이다.
룰셋의 일례로 "h12.exe", 4, 40, 2, 6, 7, 10...이 있을 수 있는데, GameID#4, attribute_0의 임계치 40, attribute_1의 임계치 2..인 "h12.exe"란 게임을 말한다. 애트리뷰트 각각은 특정 사이클에 대해 좋은지 나쁜지 여부를 판단하는 방법을 알고 있는 기능에 매핑된다. 예를 들어, 윈도우 환경에서, WindowZorder 애트리뷰트는 프로그램이 윈도우 환경에 있음을 나타내는데 사용된다. WindowZorder 애트리뷰트는 "calWindowZorderWin32"란 기능에 매핑되고, 애트리뷰트의 임계 포인트점수를 총 포인트점수에 추가해야 하면 "참"으로, 추가해서는 안되면 "거짓"으로 돌아간다. 유저가 "활동중"이라고 간주하기 위해 모든 게임이 얻어야 하는 정적 포인트 점수가 총 포인트점수이다. "calWindowZorderWin32" 기능이 거짓으로 돌아가면, 유저는 "비활동"으로 간주된다. 그러나, 엔트로피 확인(710)에서 아무런 유저 입력도 감지되지 않으면, 유저가 "휴식"이라고 간주된다. "비활동" 상태는 "휴식" 상태보다 우선권을 갖는다.
룰셋과 엔트로피 확인(710)을 기반으로, 에이전트(708)는 유저가 활동, 휴식, 비활동인지 판단한 다음, 게임상태(718)를 설정하고 클라이언트 게임데이터를 업데이트한다(720). 이상의 과정은 수집된 게임데이터가 임계값에 이를 때까지 반복되는데, 에이전트는 클라이언트가 온라인이면 업데이트를 보내고 오프라인이면 계속해서 클라이언트 게임데이터를 수집한다. 에이전트(708)는 업데이트를 보낸 뒤 로컬클라이언트 타임데이터를 리셋하고(732) 웹서버(734)는 클라이언트 타임데이터를 리셋한다. 에이전트가 요청한 동적 통계데이터를 데이터베이스 서버(728)가 로컬클라이언트에 보낸다(730). 또, 게이머(700)가 유저 크레딧 업데이트를 요청하기 도 한다(736). 이 경우, 에이전트는 현재의 축적된 로컬클라이언트 게임데이터를 웹서버(734)에 보내고 현재 계좌잔고를 게이머(700)에게 보여주도록 요청한다.
게이머(700)는 에이전트 구성을 바꿀 수 있는데(722), 예를 들면 게이머(700)가 할 수 있는 기능이나 옵션을 바꾼다. 게이머(700)는 게임리스트를 업데이트하여(724) 에이전트가 모니터할 수 있는 게임을 규정하기도 한다. 에이전트 구성이 바뀌거나(722) 게임리스트가 바뀌면(724), 에이전트 기능도 업데이트되고(726), 이는 데이터베이스 서버(728)에 보내진 데이터에 영향을 준다. 또, 게이머(700)가 채팅을 요청할 때(740) 에이전트(708)는 채팅기능을 관리한다(738). 채팅기능은 채팅서버(744)에 의핸 채팅메시지 처리(742)와, 채팅 게이트웨이(748)를 통한 외부 채팅서버와의 통신에 의한 외부채팅 처리(746)를 포함한다.
도 8A~B는 게이머, 소프트웨어 에이전트, 서버, 채팅서버의 활동들을 보여주는 블록도로서, 도 7에서 설명한 케이스들을 실행할 때 관련된 활동을 반영한다. 도 8A에서, 게이머(800)는 먼저 소프트웨어 에이전트를 시작하고(804), 클라이언트/에이전트(802)는 게이머(800)가 서버(808)에 접속했는지 접속을 확인한다(806). 서버(808)에 접속한 게이머(800)는 서버에 로그인한다(812). 그러나, 게이머가 서버에 접속하지 못했으면, 게이머가 계속 로그인하는지 물어보는 프롬프트가 디스플레이된다(814). 게이머(800)가 로그인하면, 클라이언트/에이전트(802)는 게이머(800)의 자격증을 확인하는데(816), 오프라인이면 로컬로 확인하고 온라인이면 원격으로 확인한다.
로그인한 게이머(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)에 각각 관련된다.
게이머(800)는 온라인 상태에서 수동으로 클라이언트/에이전트(802)를 작동시켜 개인계좌에 대한 크레딧 업데이트를 요청한다(832). 이 요청을 받은 클라이언트/에이전트(802)는 서버(808)에 크레딧 업데이트를 전송하고(834), 서버는 데이터베이스를 업데이트하여 크레딧 업데이트를 처리한다(838). 크레딧 업데이트를 처리한 서버(808)는 크레딧 업데이트 성공 메시지를 클라이언트/에이전트(802)에 보내고, 클라이언트/에이전트는 수신된 크레딧 업데이트를 로컬로 디스플레이한다(836). 이들 활동(832,834,836,838)는 도 7의 736 활동과 관련된다.
도 8B에서 게이머(800)가 서버(808)에 접속되면 게임리스트 업데이트를 요청한다(840). 유저는 온라인 프로필의 웹브라우저를 통해 게임리스트 업데이트를 실 행한다. 일단 게임리스트가 업데이트되면, 서버(808)는 서버에 저장된 지원 게임리스트를 업데이트하고(846) 클라이언트/에이전트(802)에 업데이트된 게임리스트를 보내고, 이 게임리스트는 업데이트 게임리스트 파일에 로컬로 저장된다(844). 이런 활동(840,844,846)은 도 7의 724, 726 프로세스와 관련된다.
게이머(800)가 서버(808)에 에이전트를 동조시키길 요청한 뒤, 서버(808)는 동조요청을 받고(850), 클라이언트/에이전트(802)에 정적 데이터를 보내면, 정적 데이터를 받는다(854). 정적데이터는 룰셋, 게임리스트, 기타 구성파일을 포함한다. 정적데이터 요청 외에, 클라이언트/에이전트(802)는 서버(808)에 동적데이터를 요청할 수도 있다(856). 동적데이터는 스트리밍 통계, 채팅친구 리스트, 친구 상태, 로컬 유저 상태, 실시간 성능통계를 포함한다. 동적데이터 요청을 받은 서버(808)는 클라이언트/에이전트(802)에 동적데이터를 보내고(858), 클라이언트/에이전트는 동적데이터를 받는다(860). 이런 활동(856~860)은 도 7의 동적데이터 보내기(730)에 관련된 것이다.
또, 클라이언트/에이전트(802)가 채팅활동을 촉진하기도 한다. 게이머(800)가 채팅을 위해 로그인하면(862), 클라이언트/에이전트는 서버(808)에 신규 패스워드를 요청한다(864). 서버(808)가 신규 패스워드를 클라이언트/에이전트(802)에 보내면(866), 클라이언트/에이전트에서 신규 패스워드를 받고(868), 이를 클라이언트/에이전트(802)에서 타이핑한 것처럼 해서 채팅서버(810)에 보낸다. 이 패스워드를 클라이언트/에이전트(802)의 현재 채팅 패스워드라 한다. 채팅서버(810)는 신규 패스워드를 확인해(870) 채팅이 준비되었음을(872) 클라이언트/에이전트에 통보한다. 이어서, 클라이언트/에이전트(802)는 각종 채팅기능을 관리하고(874), 채팅서버(810)는 채팅을 진행한다(876). 이들 활동(862~876)은 도 7의 738~742 케이스에 관련된다.
클라이언트/에이전트(802)의 구성을 바꾸고 싶으면(878), 게이머(800)는 언제라도 구성 옵션, 예를 들어 에이전트 스킨파일을 로컬로 변경할 수 있다. 로컬 구성옵션(880)은 네트웍 접속상태에 무관하게 바꿀 수 있고 유저의 온라인 프로필에 접속할 필요도 없다. 클라이언트/에이전트(802)의 대부분의 구성옵션들은 게이머의 온라인 프로필을 통해 접속된다. 변화가 있을 때 서버(808)는 구성 업데이트를 처리하고(882) 구성변화를 저장한다(884). 이들 활동(878~884)은 도 7의 에이전트 구성 변화(722) 및 에이전트 프로세스 업데이트(726)에 관련된다.
도 9는 게임상태를 판단하는 순서도로서, 도 3의 소프트웨어 에이전트(301)에서 구현된다. 소프트웨어 에이전트가 유저 시스템의 운용시스템의 스냅숏(snapshot)을 취하면서 과정을 시작한다(900 단계). 소프트웨어 에이전트는 게임을 하는 동안 이 단계를 주기적으로, 예컨대 1분마다 실행하고, 유저의 시스템 메모리에 스냅숏을 저장한다.
다음, 소프트웨어 에이전트가 카테고리 집합의 룰셋을 구한다(902 단계). 이들 카테고리에는 프로세서 사용, 메모리 사용, 네트웍 접속, 윈도우 Z 주문, 다른 유저 입력값들이 포함된다. 룰셋은 모니터중인 각 카테고리의 임계치를 정의한다. 운용시스템의 스냅숏을 이용해, 소프트웨어 에이전트는 다음 카테고리에 할당된 개별 포인트점수를 추적한다(904 단계). 각각의 카테고리마다, 개별 포인트점수가 할 당되는바, 예컨대 프로세서 사용에는 40점이 할당되고 윈도우 Z 주문에는 35점이 할당되는 식이다.
이어서, 소프트웨어 에이전트는 개별 포인트점수가 각각의 카테고리에 규정된 임계치에 도달했는지 판단한다(906 단계). 개별 포인트점수가 임계치에 이르면, 이 점수를 현재의 누적점수에 합한다(908 단계). 그러나, 임계치에 이르지 못하면 914 단계로 진행한다.
908 단계 이후, 소프트웨어 에이전트는 현재 누적점수가 활동상태에 규정된 포인트점수보다 높거나 같은지 판단한다(910 단계). 이 포인트점수는 소정 포인트점수로서, 어떤 게임에서도 유저가 "활동"중이라고 간주하는 점수이다. 현재 누적점수가 활동상태에 대한 소정 포인트점수 이상이면, 게임상태를 "활동"이라고 설정하고(912 단계) 과정을 종료한다. "활동" 상태란 유저가 적극적으로 게임에 참여하고 있음을 말한다. 현재 누적점수가 소정 포인트점수보다 크지 않으면, 과정은 914 단계로 진행한다.
914 단계에서 소프트웨어 에이전트가 카테고리 집합에 추가 카테고리가 있는지 여부를 판단한다. 있다면 904로 돌아가 다음 카테고리를 추적하고, 없다면 유저의 활성창이 전면에 있는지 판단한다(916 단계). 이 단계는 운용시스템의 스냅숏을 검사하면 된다. 활성창이 전면에 있으면, 게임상태를 "휴식"으로 설정한다(918 단계). "휴식" 상태의 예를 들면, 유저가 레벨을 완성했을 때 수분동안 클립이 보일 수 있다. 따라서, 프로세서와 메모리는 수분동안 활성상태에 있지만, 유저에 의한 움직임이 전혀 없을 수 있다. 활성창이 전면에 없으면, 소프트웨어 에이전트는 게 임상태를 "비활동"으로 설정한다(920 단계). "비활동" 상태는 유저가 현재 게임을 하지 않음을 의미한다. 따라서, 과정은 종료한다.
도 10A~C는 유저 게임플레이 데이터 확인, 저장, 전송할 때 관련된 활동들과 데이터를 설명하는 블록도로서, 도 10A의 데이터 흐름은 로컬 클라이언트측이다.
도 10A에서 에이전트(1000)가 과정을 시작한다. 에이전트(1000)는 이몬 엔진(Eamonn engine)을 시작하고(1002), 이몬엔진은 새로운 게임을 조사하여, 로컬 데이터 스토어(108)에 저장된 유저 지정 게임리스트를 룰셋 파일(1016)에서 끌어온다. 유저 지정 게임리스트는 유저가 자신의 온라인 프로필에 게임리스트를 업데이트하면서 바뀐다. 게임리스트가 바뀌면, 에이전트(1000)는 새 정보를 지원하도록 동조되어야 한다. 도 8B에서 설명한 동조된 에이전트 활동(848)에 의해 필요에 따라 로컬 룰셋 파일을 동적으로 업데이트한다.
새 게임을 추적하고(1004), 게이머(1010)가 새 게임을 시작했음을 감지한다(1012). 새 게임이 시작되면, 에이전트(1000)는 게임상태 일부 확인을 위해(1022) 룰셋 파일(1016)내 알고리즘과 인공지능을 이용해 새 게임 오브젝트를 생성한다(1014). 나머지 확인은 에이전트(1000)에 의한 엔트로피 수확(1020)에서 온다. 엔트로피 수확(1020)은 게이머(1010)가 게임을 하는 동안 유저 행위(1018)를 감시하는데, 구체적으로는 키보드, 조이스틱, 마우스 등의 움직임을 감시한다. 엔트로피 수확(1020)과 룰셋 파일(1016)의 변수들을 조합해 게임상태(1022)를 판단한다. 게임상태(1022)가 바뀌면 에이전트(1000)는 언제라도 클라이언트 게임데이터를 암호화하고(1024) 이 데이터를 클라이언트 게임데이터 파일(1026)에 저장한다. 이 런 확인과정은 유저 게임데이터가 일정 임계치에 이를 때까지 반복된다.
클라이언트 게임데이터(1026)가 모이는 동안, 에이전트(1000)는 별도의 과정으로 이 게임데이터(1026)가 서버에 전송되는 방법과 시기를 결정한다. 이 과정이 도 10B의 로컬데이터 전송(1030) 과정이다. 도 10B에서, 로컬데이터 전송(1030)을 게이머(1010)가 수동으로 활성화시키거나 정기적으로 자동으로 활성화시켜 크레딧을 업데이트한다(1028). 에이전트(1000)는 먼저 네트웍상태를 획득한다(1032). 과정이 수동으로 활성화되고 게이머(1010)가 오프라인이면, 개인계좌에 크레딧을 업데이트하려면 인터넷접속이 필요하다는 경고메시지를 에이전트(1000)가 게이머(1010)에게 보내고 과정을 나간다. 에이전트에 의해 자동으로 로컬데이터 전송(1030)이 활성화되고 게이머(1010)가 오프라인이면, 에이전트(1000)는 아무 메시지 없이 과정을 나가지만, 게이머가 온라인이면, 클라이언트 게임데이터 임계치를 점검하고(1034) 임계치에 이르렀는지 판단한다. 임계치에 이르렀으면 측정제어된 사이즈와 빈도로 서버 업데이트를 보낸다(1036). 클라이언트 게임데이터(1026)에서 더 많은 업데이트를 할 수 있으면 로컬데이터 전송(1030)이 반복되지만, 임계치에 이르지 않으면 에이전트(1000)가 과정을 나간다.
도 10C는 서버에서의 게임플레이 데이터의 흐름도로서, 클라이언트나 에이전트가 클라이언트 게임데이터 업데이트를 보낼 준비가 되었다 가정한다. 이 과정은 클라이언트 헬로(1042; client hello) 메시지를 웹서버(1040)로 보내는 것으로 시작해 서버가 헬로를 확인한다(1044). 웹서버(1040)와 에이전트(1000)는 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)에 굿바이 메시지를 보낸 다음 과정을 나간다.
이상 설명한대로, 데이터베이스(1051)의 데이터는 각종 비즈니스 기능에 사용되는데, 예컨대 동적 통계를 에이전트(1000)에 보내거나(1062), 게이머의 은행계좌 크레딧을 관리하거나(1064), 쇼핑카트(1060)를 사용해 가상 쇼핑몰에서 크레딧을 소비하는 것을 관리한다.
도 11A~B는 본 발명을 구현하는데 사용되는 클래스의 블록도이다. 도 11B에서, 게이머는 론치게임(launchGame; 1118) 기능을 발동해 유저 인터페이스(userInterface; 1124)를 통해 게임을 시작하고, 채팅(1108)의 인보크챗(invokeChat; 1114) 기능을 이용해 채팅을 시작하며, 채팅(1108)의 뷰버디(viewBiddies; 1110) 기능을 발동해 친구 리스트를 보여준다. 또, 게이머는 유저 인터페이스(1124)에서 가능한 모든 옵션을 업데이트할 수 있다. 게이머가 소프트웨 어 에이전트와 동조되면, 소프트웨어 에이전트에 의해 스태틱콘텐트(StaticContent; 1170)나 다이나믹콘텐트(DynamicContent; 1172)에 대한 업데이트가 요청되어 도 10C의 웹서버(1040)에 의해 전송된다.
이몬유저(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)와 같은 속성의 임계치를 정의한다.
이몬엔진(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)에 데이터를 업데이트한다.
도 12A~B는 본 발명의 채팅기능을 설명하는 순서도이다. 도 12A에 도시된 바와 같이, 에이전트는 유저 선호도를 점검하여 처음에 사인할지 여부를 판단한다. 사인한다고 표시되면, 웹서버에 패스워드를 요청하고(1200), 아니면 채팅클라이언트가 계속 휴식 상태에 머물고(1202) 유저는 직접 웹서버에 로그인하여 패스워드를 요청한다(1200).
웹서버가 에이전트에 패스워드를 보내고(1204), 클라이언트는 패스워드를 받는다(1206). 에이전트가 웹서버로부터 새 패스워드를 받으면, 이 패스워드를 인증을 위해 클라이언트가 타이핑한 것처럼 채팅서버에 보낸다(1208). 이 패스워드는 클라이언트의 현재 채팅 패스워드로 본다. 인증이 성공되면, 에이전트와 채팅서버 사이에 핸드세이크(handshake)가 완성된다(1212). 에이전트는 채팅서버를 로그오프해 채팅을 멈추거나(1214) 채팅기능을 선택할 수 있다. 그러나, 인증이 실패하면, 유저에게 에러메시지가 돌아가고(1216) 재시도를 한다.
본 발명은 여러가지 채팅기능을 갖는다. 도 12B에 의하면, 그룹채팅 합류(1218), 그룹채팅 개시(1220), 타유저 차단(1222), 가입자에서 친구 제거(1224), 타유저의 새로운 가입요청 수락(1226), 타유저를 가입자에 추가(1228), 타유저에 메시지 전송(1230), 타유저의 메시지 수신(1232) 등이 있다.
유저가 타유저의 메시지를 받으면(1232), 타유저가 차단되었는지, 명단에 있는지 여부를 에이전트가 판단한다. 차단자이면 메시지를 버리고(1234), 명단에 있으면 메시지를 디스플레이하며(1238), 명단에 없으면 유저가 메시지를 받기를 원하는지를 묻는 프롬프트를 디스플레이한다(1236). 유저가 메시지를 받길 원하면, 메시지를 디스플레이하고(1238), 그렇지 않으면 메시지를 버린다.
도 13A는 본 발명에 따라 서버의 관점에서 유저의 게임플레이 데이터를 수집하는 순서도로서, 도 3의 서버(320)에서 구현된다. 서버는 유저의 온라인 프로필에 있는 각각의 게임리스트의 유저 업데이트를 검색하고(1300 단계), 이어서 서버에서 유저의 게임리스트 데이터를 업데이트한다(1302 단계). 동조화 요청이 에이전트로부터 수신된다(1304 단계). 에이전트는 새 게임리스트를 로컬로 얻기 위해 동조요청을 한다. 서버는 게임리스트의 업데이트된 게임들과 관련된 동적 라이브러리와 함께 게임리스트를 에이전트에 보낸다(1306 단계). 지원되는 게임마다 동적 라이브러리가 다를 가능성은 충분하다. 에이전트가 동조되지 않으면, 새 게임리스트와 새 동적 라이브러리는 결코 보내지지 않는다. 이어서, 서버는 소프트웨어 에이전트로부터 통신요청을 검색한다(1308 단계). 서버는 업데이트된 게임리스트에 대한 지정 게임들을 지원하면서 에이전트로부터 클라이언트 게임데이터 업데이트들을 받는다(1310 단계).
이어서, 서버는 누적 포인트와 같은 인센티브를 기초로 유저의 개인계좌에 크레딧을 입금할 수 있다(1312 단계). 또, 유저가 게임에 소비한 시간과 같은 누적 실시간 게임플레이 데이터를 기초로 크레딧을 추가할 수도 있다. 이어서, 서버는 유저의 요청에 의해서나 동적통계를 위해 소프트웨어 에이전트에 계좌 업데이트를 보내고(1314 단계), 이 경우 유저는 계좌의 상태를 볼 수 있고, 과정은 종료한다.
도 13B는 도 3의 소프트웨어 에이전트(301) 관점에서 유저 게임플레이 데이터를 수집하는 순서도이다. 먼저 유저가 새 게임을 시작하는지 판단한다(1320 단계). 다음, 해당 동적 라이브러리와 이 게임을 위한 게임변수 리스트를 메모리에 저장한다(1322 단계). 게임변수 리스트에는 게임을 지속적으로 모니터하는 변수들이 들어있다. 이 리스트는 게임개발자가 공급한다.
변수를 메모리에 저장한 뒤, 소프트웨어 에이전트는 게임변수 리스트를 사용해 추가 기능들을 메모리에 저장한다(1324 단계). 각각의 게임변수는 이 변수를 계산할 수 있는 동적 라이브러리에 해당 기능을 갖는다. 게임변수와 해당기능의 일례는 전술한 바와 같은 WindowZorder와 "calWindowZorderWin32"가 있다.
간격을 두고, 소프트웨어 에이전트는 해당 기능을 호출해 이 기능으로 수집된 데이터를 저장한다(1326 단계). 이 데이터는 암호화되어 클라이언트 게임데이터 파일이나 별도의 파일에 저장된다. 네트웍접속이 가능하고 임계치에 이르면, 클라이언트 게임데이터를 서버로 보내는데(1328 단계), 이 데이터는 상기 기능에 의해 수집된 데이터를 포함한다. 따라서, 이후 과정이 종료된다.
도 14는 본 발명에 따라 온라인 환경에서 동작할 소프트웨어 에이전트를 구성하는 과정의 순서도이다. 이 과정은 도 3의 소프트웨어 에이전트(301)를 이용해 구현되고, 이 에이전트는 데이터 처리장치에 위치하여 실행되고, 데이터 처리장치는 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이들 둘다 모두 포함한다. 클라이언트 데이터처리장치의 예로는 도 1의 클라이언트(110,112,114)가 있는데, 클라이언트는 로컬 데이터처리장치이기도 하다. 서버 데이터처리장치의 예로는 도 1의 서버(104,106)가 있다. 이와 같은 예들은 PDA, 휴대폰, 랩탑컴퓨터, 기타 다른 데이터처리장치에서 구현될 수도 있다. 로컬 데이터처리장치는 온라인게임의 엔드유저가 운용하는 데이터처리장치이다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 10A~C의 에이전트(1000)처럼 게임정보를 받는데서 과정이 시작한다(1400 단계). 도 11B의 유저인터페이스(1124)를 통해 유저가 게임정보를 입력하고, 소프트웨어 에이전트는 유저인터페이스에서 게임정보를 받을 수 있다. 온라인게임에 사용되는 원격 게임서버에서 게임정보를 받기도 한다. 게임의 명칭, 소프트웨어 에이전트가 사용하는 게임의 특징, 연결정보 등이 게임정보에 포함된다.
이어서, 소프트웨어 에이전트는 설정파일, 예컨대 도 10A와 같이 이몬엔진의 EamonnConfig 파일을 업데이트한다(1402 단계). 이런 식으로, 소프트웨어 에이전트는 플레이할 계임으로 작업을 할 수 있다. 이후 과정이 종료한다.
도 15는 본 발명에 따라 온라인 환경에서 운용할 소프트웨어 에이전트의 토너먼트 모드에 들어가는 과정의 순서도이다. 이 과정은 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑 컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
소프트웨어 에이전트가 토너먼트 모드를 시작할 때 과정이 시작한다(1504 단계). 이 시점에, 소프트웨어 에이전트는 게임이 토너먼트 모드나 온라인 모드로 플 레이될 것이라는 명령어를 받는다. 소프트웨어 에이전트는 유저가 토너먼트모드를 확인한 입력을 유저인터페이스를 통해 받는데, 이런 확인은 온라인게임을 윤용하는데 사용되는 원격 게임서버로부터 받을 수도 있다.
다음, 소프트웨어 에이전트는 소프트웨어 에이전트, 크레딧 수령 과정, 소프트웨어 에이전트를 통해 제공되는 기타 서비스의 변동에 관한 정보를 위해 설정파일을 체크하고(1506 단계), 이어서 서비스계약서의 변동에 동의할지 여부를 유저에게 프롬프트로 보여준다(1508 단계). 유저에게 프롬프트를 보여주었으면, 소프트웨어 에이전트는 서비스계약의 변동사항을 디스플레이하고(1510 단계), 유저가 그 변동사항에 동의할지 여부를 유저에게 프롬프트로 제시한다(1512). 유저가 동의하지 않으면, 과정은 종료하고; 동의하면 1514 단계로 진행한다.
서비스계약서는 토너먼트의 승자나 규정된 당사자만이 유저가 번 크레딧을 받는다는 계약서로, 온라인게임이나 소프트웨어 에이전트 제공자에 관한 서비스계약서이기도 하다. 본 실시에에서는, 유저가 "don't show me this agreement again"의 선택을 체크할 수 있다. 이 선택이 체크되면 "yes"가 된 것으로 보아, 1506~1514 단계를 생략할 수 있다.
1508 단계로 돌아가 서비스계약서 변동사항에 대한 프롬프트가 없다고 결정되거나 유저가 1512 단계에서 동의하면, 소프트웨어 에이전트가 다시 토너먼트 모드에 관련된 정보의 설정파일을 체크한다(1514 단계). 이어서, 소프트웨어 에이전트는 온라인 토너먼트모드 정보가 로컬에 저장되었는지 결정한다(1516 단계). 저장되지 않았으면 유저는 게임정보를 프롬프트로 받는다(1518 단계). 게임정보는 도 14의 1400 단계에 관련해 전술한 바 있는 게임정보일 수 있다. 한편, 온라인게임에 관련된 서버가 이런 게임정보를 제공하도록 소프트웨어 에이전트가 요청할 수도 있다. 이어서, 소프트웨어 에이전트는 게임정보를 받았는지 여부를 결정한다(1520 단계). 게임정보를 받지 못했으면, 과정이 종료되고; 그렇지 않고 받았으면 1522 단계로 진행한다.
1516 단계로 돌아가, 게임정보가 자정되거나 1520 단계에서 게임정보를 받았으면, 소프트웨어 에이전트는 데이터베이스의 액티브 세션테이블을 업데이트한다. 데이터베이스는 로컬 데이터처리장치에 저장되거나, 게임에 관련된 원격 게임서버나 다른 원격 서버에 저장된다.
액티브 세션테이블은 전술한 게임정보는 물론 ID 매핑정보도 저장한다. ID 매핑정보에는 소프트웨어 에이전트가 유저명에 게임명을 매핑토록 하는 정보가 포함된다. 많은 유저들은 여러개의 게임명을 보유한다. 예를 들어, 한명의 유저가 첫번째 게임에 대해 3개의 게임명과, 두번째 게임에 2개의 게임명과, 4개의 다른 게임에 대해 각각 하나씩의 게임명을 가질 수 있다. ID 매핑정보는 소프트웨어 에이전트로 하여금 이런 게임명들을 유저명에 매핑하여 각각의 게임명을 하나의 유저명에 연결한다.
이어서, 소프트웨어 에이전트는 유저나 게임서버에 확인메시지를 보내고(1524 단계), 액티브 세션을 시작한 다음(1526 단계), 토너먼트형 운용을 계약한다(1528 단계). 그 결과, 소프트웨어 에이전트는 클라이언트 데이터, 예컨대 도 11A의 ClientGameData(1152)를 토머넌트 모드 상태로 바꾼다(1530 단계). 또, 토너 먼트 모드가 계약된 사실을 근거로 크레딧을 수여하는 방식을 바꾼다. 예를 들어, 승자에게 크레딧을 주거나, 최고경쟁자들에게 나눠주거나, 다른 방식을 채택한다. 따라서, 플레이어는 허가를 받은 뒤 크레딧을 벌 수는 있어도, 플레이어가 게임에서 패하면 소프트웨어 에이전트는 이들 크레딧을 게임 승자에게 전달할 수 있다.
세션을 활성화시킴과 동시에(1526 단계), 소프트웨어 에이전트가 세션체크를 한다(1532 단계). 세션체크를 통해 미리 정해지거나 랜덤하게 결정된 여러 인터벌로 게임연결을 확인한다. 이어서, 세션이 OK인지 결정한다(1534 단계). 클라이언트 컴퓨터와 게임서버 사이가 연결되면 세션이 OK이다. 한편, 연결이 되고 액티브 세션이 위반되지 않았을 경우에만 세션이 OK되는 경우도 있다. 세션이 OK임이 결정되면 다른 보안체크사항을 추가할 수 있다. 세션이 OK이면 클라이언트가 1532 단계에서 세션체크를 반복한다. 세션이 OK가 아니면, 즉 세션이 종료되지 않거나 파괴되었으면, 과정이 종료한다.
도 16은 본 발명에 따른 온라인 환경에 게임플레이 데이터를 수집하는 과정의 순서도이다. 이 과정은 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치 는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 16의 과정은 도 15의 과정 도중이나 이후에 일어난다. 따라서, 소프트웨어 에이전트는 계속해서 세션체크를 실행하면서(도 15 참조) 도 16의 과정을 실시한다. 또, 도 16의 과정은 온라인게임 환경의 서버측에서 일어나는 것으로, 게임서버에서 돌아가는 플러그인 소프트웨어에 의해 구현된다.
먼저 플러그인 소프트웨어 에이전트가 게임연결을 한다(1600 단계). 게임연결이란 로컬 클라이언트 컴퓨터에 탑재되어 실행되는 게임 소프트웨어와 해당 게임서버 사이의 연결을 말한다. 이어서, 플러그인 소프트웨어 에이전트는 액티브세션 테이블의 게임정보를 요청하고(1602), 패스워드, 서버정보, 인터넷 프로토콜 어드레스 등의 게임정보를 받는데, 이런 게임정보는 도 14의 1400 단계와 관련해 설명된 다른 타입의 정보일 수도 있다(1604 단계). 이 시점에서 저장되거나 수신된 게임정보가 원격 게임서버에서 실행된 게임에 관련되어 플러그인 소프트웨어 에이전트가 추적한 게임정보와 일치하는지 여부를 결정한다(1606 단계). 일치하지 않으면 유저에게 문제를 해결하라는 프롬프트를 보여준다(1608 단계). 유저는 게임정보를 수정하거나 원격 게임서버에 제공된 유저정보를 업데이트하는 등의 방법으로 문제를 해결할 수 있다.
플러그인 소프트웨어 에이전트가 요청한 게임정보를 받았는지 체크하고(1610 단계), 받지 않았으면 과정을 종료하며, 받았으면 제공된 게임정보로 업데이트한다(1612 단계).
이어서, 수신된 게임정보와 온라인 게임정보 사이의 리체크를 실행하고, 유효 게임연결 체크가 성공적인지 결정하는데(1614 단계), 리체크가 실패면 문제를 해결하라는 프롬프트를 유저에게 보여주고(1608), 리체크가 성공이면 게임 진입을 허용한다(1616 단계).
게임을 하는 동안, 유저의 행위에 맞춰 게임 이벤트가 생성된다(1618 단계). 플러그인 소프트웨어는 게임플레이 데이터를 결정하고 게임중에 유저 크레딧을 만 들기 위해 도 1~13B에서 설명한 방법과 장치에 의해 게임이벤트를 처리한다. 또, 유저 크레딧을 게임서버나 다른 원격서버로 보내 유저의 은행계좌 테이블을 업데이트한다(1622 단계). 토너먼트 모드가 작동될 때 시스템내의 다른 유저에게 크레딧이 전달될 수도 있는데, 예를 들면 어떤 유저가 벌어들인 크레딧의 일부나 전부가 토너먼트 승자에게 전달되거나, 승자 팀의 유저들에게 분배되거나, 다른 방식으로 나눠질 수 있다. 일단 분배가 결정되면, 적당한 유저 계좌에 크레딧이 송금된다.
본 실시에에서는 데이터 수집을 위해 게임상태가 반드시 토너먼트 모드일 필요는 없다. 또, 특정 게임 순간에, 예컨대 라운드 끝이나 몇명을 죽였을 때나 다른 벤치마크에 도달했을 때 데이터를 수집할 수 있다.
한편, 로컬 게임서버에 플러그인 애플리케이션을 탑재해 운용할 수도 있다. 로컬 게임서버란 게임서버로 동작하도록 설정된 컴퓨터, LAN의 서버, 또는 1대의 컴퓨터의 운용체계로 실행되는 소프트웨어 장치일 수도 있다. 본 실시예에서는 플러그인 소프트웨어 에이전트가 유저의 게임 특징들을 모니터해, 이를 기초로 게임상태를 확인한다. 플러그인 애플리케이션은 게임이 진행되는 동안 게임상태가 바뀌면 게임플레이 데이터를 수집하고, 제3의 원격서버나 저장장치에서 처리하기 위해 이 데이터를 보고하기도 한다.
사용 중에, 많은 유저들이 원격 게임서버를 통해 온라인에서 함께 플레이한다. 각 유저의 로컬 컴퓨터나 다른 데이터 처리장치가 각각의 게임 특징과 게임상태를 모니터한다. 원격 게임서버의 플러그인 애플리케이션은 각 유저의 게임플레이 데이터를 수집해 보고한다. 따라서, 본 실시예에서, 경쟁 유저들이 게임룰에 맞게 공정하게 게임플레이 데이터가 수집되었음을 보증할 수 있다. 요컨대, 본 실시예는 사기를 방지할 수 있다.
도 16의 과정으로 돌아가, 소프트웨어 에이전트는 세션이 활동중인지 여부도 결정할 수 있다(1624 단계). 로컬컴퓨터와 원격 게임서버 사이의 연결이 있으면 세션이 활동중이고, 이 경우 게임플레이와 소프트웨어 에이전트의 동작이 계속되지만, 활동중이 아니면 과정은 종료한다.
도 17은 본 발명에 따른 도전 프롬프트를 위한 프롬프트 룰을 저장하는 과정의 순서도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서 의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 17의 과정은 도 14~16의 과정 동안 실행된다. 예컨대, 유저가 게임을 실행하고 원격 게임서버의 소프트웨어 에이전트나 플러그인 애플리케이션이 게임플레이 데이터를 수집하는 동안 도전 프롬프트를 유저에게 제공하는 과정을 실행할 수 있다. 도 17의 과정은 원격 게임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 17의 방법을 실행한다.
도 17의 과정은 도 1~13B의 과정과 전술한 다른 과정을 하는 동안 실행될 수도 있다. 따라서, 도전 프롬프트를 위한 룰을 저장하는 과정은 1대의 로컬컴퓨터에서 게임하는 1명의 플레이어, 로컬 네트웍에서 게임하는 1명 이상의 플레이어, 또는 한대 이상의 게임서버와 교류하면서 온라인 게임을 하는 대량의 플레이어에 대 해 실행될 수 있다. 도 17의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다. 도 17의 과정은 도 18의 과정 직전에 실행되거나, 함께 실행될 수 있다.
소프트웨어 에이전트를 개시한다(1700), 소프트웨어 에이전트는 프롬프트 룰세트를 구하기 위해 로컬데이터 저장을 요청한다(1702). 프롬프트 룰세트는 게임을 하는 동안의 유저 프롬프트에 관한 인자들을 설명한다. 이런 프롬프트는 도전 프롬프트로 설명될 수 있다. 관련 인자에는 게임 시작 이후의 시간, 최종 프롬프트 이후의 시간, 게임중에 반복행동이 일어나는지 여부, 프롬프트에서 어떤 질문을 해야 하는지, 프롬프트 반응으로 키스트록을 입력하는 것, 프롬프트 반응으로 다른 컨트롤러 입력을 하는 것, 음성이나 오디오 입력, 기타 도전 프롬프트를 통제하는 여러 다른 룰이 포함된다.
응답시, 소프트웨어 에이전트는 프롬프트 룰세트를 받아(1704) 저장한다(1706). 프롬프트 룰세트가 게임을 하는 동안 이용할 수 있도록 프롬프트 룰세트가 저장된다. 따라서, 프롬프트 룰세트는 게임서버에 저장되거나 로컬에 저장된다.
도 18은 본 발명에 따른 게임을 하는 동안 유저에서 도전 프롬프트를 보여주는 과정의 순서도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 18의 과정은 도 15 과정 동안 실행된다. 예컨대, 유저가 게임을 실행하고 원격 게임서버의 소프트웨어 에이전트나 플러그인 애플리케이션이 게임플레이 데이터를 수집하는 동안 도전 프롬프트를 유저에게 제공하는 과정을 실행할 수 있다. 도 18의 과정은 원격 게임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 18의 방법을 실행한다.
도 18의 과정은 도 1~13B의 과정과 전술한 다른 과정을 하는 동안 실행될 수도 있다. 따라서, 도전 프롬프트를 제공하는 과정은 1대의 로컬컴퓨터에서 게임하는 1명의 플레이어, 로컬 네트웍에서 게임하는 1명 이상의 플레이어, 또는 한대 이상의 게임서버와 교류하면서 온라인 게임을 하는 대량의 플레이어에 대해 실행될 수 있다. 도 18의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다. 도 18의 과정은 도 18의 과정 직후에 실행되거나, 함께 실행될 수 있다.
소프트웨어 에이전트는 유저가 게임을 시작했는지 조사하고(1800), 프롬프트 룰세트를 체크한 다음(1802), 현 상태와 프롬프트룰이 일치하는지 결정한다(1804). 현상태가 게임 시작부터 경과한 실제 시간, 이전 도전 프롬프트부터의 경과 시간, 게임플레이내의 반복 액션의 감지, 랜덤 인자, 또는 프롬프트 룰세트에 관한 다른 상태일 수 있다. 랜덤 인자는 랜덤 경과시간, 게임을 시작한 랜덤 횟수 등등이다. 일치하지 않으면, 소프트웨어 에이전트가 1802 단계에서 프롬프트 룰세트를 체크한다.
그러나, 1804 단계에서 현상태와 프롬프트룰이 일치하지 않으면, 소프트웨어 에이전트는 게임플레이 동안 유저에게 프롬프트를 발급한다(1806). 이 프롬프트는 게임의 안이나 밖에 나타나는 동적인 창에 유저가 이해할 수 있도록 보여진다. 이동창이란 게임 내부에 나타나지만 게임 외부의 과정에 의해 나타나는 창을 말한다. 특히, 소프트웨어 에이전트가 이동창과 이 창에 보이는 것을 제어한다. 이동창은 도 25에 도시된 것과 같은 클래스를 이용해 구현될 수 있다. “게임의 밖”은 게임이 배경에서 운용중인데 게임 외부에 이동창이 나타난다는 의미이다. “게임의 안”이나 “게임중”이란 게임이 플레이되고 있는 동안 이동창이 나타나고 게임코드와 같이 동작하는 코드를 포함할 수 있음을 의미한다.
도전 프롬프트는 질문이나 명령문 형태를 취하고, 텍스트나 아이콘이나 이들의 조합으로 나타날 수 있으며, 텍스트나 아이콘은 가능한 게임을 방해하지 않는 형태를 취하지만, 유저는 프롬프트를 알아채고 이에 응답하는 방법을 이해할 수 있어야 한다. 예를 들어, 도전프롬프트 질문이 “What number precedes 32?"일 경우, 유저에게 신속하고 쉽게 제시될 수 있는 올바른 답은 ”31“이다. 또, 도전 프롬프트 명령어가 ”Please type the word 'game"과 같은 간단한 문장이거나 이동창에 나타난 특정 아이콘을 클릭하라고 요청할 수도 있다. 필요하다면, 도전 프롬프트가 게임플레이를 중단시킬 수도 있다. 또는, 질문에 대한 답변이나 게임 리뷰와 같이 사용자에게서 추가 정보를 얻을 수도 있다.
본 실시예에서, 소프트웨어 에이전트는 프롬프트를 발급하기 전에 질문에 대한 답을 미리 선정할 수 있다. 실제 답변이 유저에게 제시되지도, 룰세트와 비교되 지도 않는 대신, 선택 초이스의 정지점으로 표시되어 소프트웨어 에이전트에 저장된 답변과 비교된다.
유저는 게임플레이의 중단 없이 프롬프트를 받으므로, 도전 프롬프트는 마우스나 키보드나 조이스틱이나 게임컨트롤러 기능을 간섭하지 않는다. 유저가 일정 시간내에 도전 프롬프트에 답변을 해야만 한다는 통보를 받는다. 이후, 액티브 유저가 신속하고 쉽게 키보드나 마우스나 컨트롤러나 기타 입출력기를 사용해 도전 문제창을 사용해 옳은 답변을 선택하고 게임과 승인된 크레딧 축적을 계속한다. 도전 프롬프트는 따라서 로보틱한 기기, 프로그래머블 하드웨어, 소프트웨어 오토메이션 툴, 기타 소프트웨어 인텔리전스를 통해 멈출 수 없는 속임수에 관한 다른 기술을 배제한다.
소프트웨어 에이전트는 프롬프트 답변을 받는다(1808). 프롬프트 답변은 텍스트 응답, 키스트록 조합, 마우스 클릭, 게임컨트롤러의 입력, 음성이나 오디오 응답, 포인터나 게임컨트롤러의 빛과 같은 형태일 수 있다. 소프트웨어 에이전트는 이 답변을 소프트웨어 객체에 보내는데(1810), 이 객체는 소프트웨어 에이전트의 일부분일 수 있다. 소프트웨어 객체는 이 답변이나 응답을 저장된 답변과 배교하여 처리한다(1812).
소프트웨어 에이전트나 객체는 답변이 유효한지 결정한다(1814). 답변이 유효하면, 프롬프트는 성공적이라고 표시되고(1816) 1802 단계로 돌아가 과정을 계속한다. 또, 게임을 하는 동안 생긴 유저 크레딧의 처리도 허용된다. 그러나, 답변이 유효하지않을 수도 있는데, 무효 답변이란 틀린 답변을 말한다. 소프트웨어 에이전 트나 객체가 일정 기간내에 답변을 받지 못해도 무효 답변이 생긴다. 일정 기간은 30분 정도의 시간일 수 있다. 이런 식으로, 게임을 하는 유저는 도전 프롬프트에 응답하기 위해 게임을 바로 중단하지 않아도 되고, 자신이 가장 유리한 시간에 답변을 하면 된다. 답변이 1814 단계에서 유효하지 않으면 프롬프트에 제대로 응답하지 못했다고 후속 단계(1818)에서 표시된다. “표시”란 응답못함을 나타내는 데이터 패킷이 생기거나 다른 데이터패킷이 변경되어 이를 표시하는 것을 의미한다. 따라서, 본 실시예에서는 도전 프롬프트에 대한 잘못된 응답이나 응답실패로 이루어진 군에서 선택된 이벤트에 반응해 도전실패를 표시한다.
이때 소프트웨어 에이전트는 보안조치를 작동시킨다(1820). 보안조치는 게임데이터 수집, 크레딧 축적 등의 소프트웨어 에이전트의 일부 기능을 정지시키거나, 이런 정지에 앞서 두 번째 도전 프롬프트를 생성하는 것일 수 있다. 추가 도전프롬프트 실패는 소프트웨어 에이전트 기능의 정지에 앞서 필요할 수 있다. 또다른 보안조치로는 게임플레이의 정지나 게임의 종료가 있는데, 이는 유저가 베타테스트를 하거나 게임중에 게임데이터를 수집해야 할 때, 또는 사기를 금하는 환경(예; 온라인 게임환경)에 있을 때에 필요하다. 필요하다면, 보안조치가 작동된 뒤 생긴 데이터패킷에 표시를 하고 게임플레이와 소프트웨어 에이전트의 기능을 정상적으로 계속하도록 할 수도 있다. 어떤 경우에도, 소프트웨어 에이전트가 보안조치를 취한 뒤, 과정은 종료한다. 보안조치가 침해되거나 액티브 세션이 끝나거나 오류가 생겼을 경우 도 18의 과정을 하는 동안 언제라도 과정을 종료할 수 있다. 이런 식으로, 이상 설명한 방법에서는 도전실패에 대해 보한조치를 취할 수 있다. 일례로, 소프 트웨어의 기능정지, 두 번째 도전프롬프트 생성, 게임플레이 정지, 게임종료, 도전실패 뒤 생긴 데이터패킷 표시와 같은 보안조치가 취해진다.
도 19는 본 발명에 따라 온라인 환경에서 게임한 결과로 유저에게 크레딧을 제공하는 과정의 순서도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 19의 과정은 도 15 과정 동안 실행된다. 예컨대, 유저가 게임을 실행하고 원격 게임서버의 소프트웨어 에이전트나 플러그인 애플리케이션이 게임플레이 데이터를 수집하는 동안 도전 프롬프트를 유저에게 제공하는 과정을 실행할 수 있다. 도 19의 과정은 원격 게임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 18의 방법을 실행한다.
도 19의 과정은 도 1~13B의 과정과 전술한 다른 과정을 하는 동안 실행될 수도 있다. 따라서, 유저에게 크레딧을 제공하는 과정은 1대의 로컬컴퓨터에서 게임하는 1명의 플레이어, 로컬 네트웍에서 게임하는 1명 이상의 플레이어, 또는 한대 이상의 게임서버와 교류하면서 온라인 게임을 하는 대량의 플레이어에 대해 실행될 수 있다. 도 19의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다.
소프트웨어 에이전트는 유저 크레딧을 업데이트할지 결정한다(1900). 도 7, 8A~B, 13A 등에서 설명한대로, 유저 크레딧이란 게임 시간, 게임 내부의 성능 등과 같은 다양한 인자에 따라 플레이어에게 제공되는 포인트이다. 유저 크레딧을 업데이트해야 하면, 소프트웨어 에이전트는 업데이트하라는 수동 요청을 받는다(1902). 이런 수동 요청은 사용자가 한다. 동시에, 소프트웨어 에이전트는 자동으로 유저 크레딧을 업데이트한다(1904). 크레딧 업데이트가 1904 단계에서 자동으로 개시되거나, 1902 단계에서 수동 요청을 받지만, 둘중 적어도 한 단계는 일어난다.
유저 크레딧을 업데이트하라는 수동 요청을 받거나 자동 업데이트가 시작되면, 소프트웨어 에이전트가 크레딧 처리를 실행하고(1906), 크레딧 처리는 도 7, 8A-B, 13A에서 소개한 방법으로 실행된다. 따라서, 소프트웨어 에이전트는 크레딧 처리를 위해 웹 데이터베이스에 유저 크레딧을 보낼 수 있다.
다음, 소프트웨어 에이전트는 데이터가 유효한지 결정한다(1908). 모든 보안 알고리즘, 암호 또는 체크섬이 데이터패킷에서 바뀌지 않는 한 데이터는 유효하다. 따라서, 유저가 데이터파일을 바꾸려고만 해도, 소프트웨어 에이전트는 데이터가 무효하다는 것을 알게된다. 데이터가 유효하면, 소프트웨어 에이전트에 관련된 플러그인이 해당 유저를 위해 유저 크레딧을 업데이트한다(1910). 본 실시예에서는 소프트웨어 에이전트가 데이터 유무효에 상관없이 데이터를 보내려고 한다. 다른 실시예에서는, 소프트웨어 에이전트 자체가 1910 단계를 실행해 유저 크레딧을 업데이트한다. 1900 단계로 돌아가 전체 과정을 반복한다. 그러나, 데이터가 유효하지 않으면, 소프트웨어 에이전트는 해당 유저를 위한 크레딧 업데이트를 거부한다(1912). 또, 1900 단계로 돌아가 전체 과정을 반복한다. 어떤 경우에도, 1900 단 계에서 크레딧이 업데이트되지 않으면 과정이 종료된다.
도 20은 본 발명에 따라 게임을 하는 동안 유저에게 게임 안내데이터를 제공하도록 소프트웨어 에이전트를 설정하는 과정의 순서도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 20의 과정은 도 15 과정 동안 실행된다. 예컨대, 유저가 게임을 실행하고 원격 게임서버의 소프트웨어 에이전트나 플러그인 애플리케이션이 게임플레이 데이터를 수집하는 동안 게임 안내데이터를 유저에게 제공하는 과정을 실행할 수 있다. 도 20의 과정은 원격 게임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 20의 방법을 실행한다.
도 20의 과정은 도 1~13B의 과정과 전술한 다른 과정을 하는 동안 실행될 수도 있다. 따라서, 게임을 하는 동안 유저에게 게임 안내데이터를 제공하는 과정은 1대의 로컬컴퓨터에서 게임하는 1명의 플레이어, 로컬 네트웍에서 게임하는 1명 이상의 플레이어, 또는 한대 이상의 게임서버와 교류하면서 온라인 게임을 하는 대량의 플레이어에 대해 실행될 수 있다. 도 20의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다.
소프트웨어 에이전트가 동작을 시작하고(2000), 게임 안내데이터에 관한 선 호도를 점검한다(2002). 선호도에는 유저가 디스플레이될 게임 안내데이터와 게임 안내데이터를 포함한 데이터 소스를 원하는지 여부 등이 포함된다. 선호도는 게임 안내데이터의 디스플레이를 통제하도록 선택할 수 있는 옵션 메뉴를 통해 유저에게 제시되기도 한다. 이어서, 게임 안내데이터가 존재하는지 결정한다(2004). 존재하지 않으면 과정이 종료하지만, 존재하면 초기 게임안내데이터를 요구한다(2006). 초기 안내데이터는 유저 인터페이스에 디스플레이되는 기초 게임정보일 수 있는데, 구체적으로는 게임명이나 다른 정보가 있다.
일례로, 안내데이터를 포함한 데이터 소스가 로컬 데이터베이스로서 소프트웨어 에이전트에 초기 안내데이터를 제공한다(2008). 한편, 이런 데이터소스가 원격데이터베이스, 유저제공 데이터, 로컬파일, 원격파일, 웹사이트, 서치결과, 인터넷 서치결과 등일 수도 있다. 어떤 경우에도, 소프트웨어 에이전트는 초기 게임안내데이터를 로딩하고(2010), 과정은 종료한다.
도 21은 본 발명에 따라 게임을 하는 동안 안내데이터를 디스플레이하는 과정의 순서도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인 게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 21의 과정은 도 20의 과정 이후에 실행되지만, 도 20의 과정이 반드시 도21의 과정보다 먼저 실행되어야 한다는 것은 아니다. 예컨대, 소프트웨어 에이전트가 이미 안내데이터를 로딩했거나 초기 안내데이터가 전혀 불필요하면, 도 20의 과정이 도 21의 과정보다 먼저 실행되지 않아도 된다.
도 21의 과정은 도 15의 과정이 진행되는 동안 실행될 수 있다. 예컨대, 유저가 게임을 실행하고 원격 게임서버의 소프트웨어 에이전트나 플러그인 애플리케이션이 게임플레이 데이터를 수집하는 동안 게임 안내데이터를 유저에게 제공하는 과정을 실행할 수 있다. 도 21의 과정은 원격 게임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 21의 방법을 실행한다.
도 21의 과정은 도 1~13B의 과정과 전술한 다른 과정을 하는 동안 실행될 수도 있다. 따라서, 게임을 하는 동안 유저에게 게임 안내데이터를 제공하도록 소프트웨어 에이전트를 설정하는 과정은 1대의 로컬컴퓨터에서 게임하는 1명의 플레이어, 로컬 네트웍에서 게임하는 1명 이상의 플레이어, 또는 한대 이상의 게임서버와 교류하면서 온라인 게임을 하는 대량의 플레이어에 대해 실행될 수 있다. 도 20의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다.
유저안내가 가능한지 결정한다(2100). 한편, 단축키, 키스트록 조합, 기타 컨트롤러 입력을 이용해 유저가 유저안내를 작동시키거나 정지시킬 수도 있다. 유저안내는 텍스트 명령어에 의해서나, 소프트웨어 에이전트나 게임 내부의 표시창내 박스를 체크하여 작동되거나 정지되기도 한다. 유저안내가 정지되면, 과정이 종료한다.
본 실시예의 유저안내는 모든 안내문, 정보, 헬프데이터, 기타 게임을 하는 동안 유저가 사용할 수 있는 모든 데이터를 말한다. 안내데이터의 예로는 힌트, 팁, 워크스루(walk-throughs), 유저 매뉴얼 데이터, 게임관련정보 테이블, 지도, 헬프파일, 단축키 지도, 유저매뉴얼, 라이브채팅을 하는 동안 게임사의 사원이나 다른 유저의 질문에 대한 답변, 치트(cheat), 기타 관심 안내데이터가 있다. 안내데이터의 소스는 로컬에 저장된 게임파일의 일부나 다르게 저장된 파일의 일부이고, 또 외부 소스로는 게임에 포장되지 않은 모든 데이터소스이고, 웹사이트나 원격 데이터베이스를 통해 원격으로 제공된다. 따라서, 예를 들어, 게임데이터를 관련 웹사이트에서 가져오기도 하는데, 공식적으로 게임사나 디자이너의 지원을 받지 않는 웹사이트도 있다. 게임 안내데이터는 채팅이나 유저정의 파일이나 기타 게임원을 통해 실시간으로 제공되기도 한다.
유저안내가 되면 이동창이 가동된다(2102). 소프트웨어 에이전트는 이동창을 유저에게 보낸다(2104). 이동창이란 게임의 안팎에 나타나지만 게임 외부의 과정으로 진행되는 창을 말한다. 특히, 소프트웨어 에이전트가 이동창은 물론 이동창에 나타나는 것을 제어한다. 따라서, 소프트웨어 에이전트는 유저의 입력에 대응하여 이동창에 나타나는 게임 안내데이터를 제어한다. 이동창은 도 25와 같은 클래스 객체를 이용해 구현될 수 있다. 게임 안내데이터는 가능한 게임을 방해하지 않는 형태의 텍스트나 그림 형태로 나타나되, 유저가 안내데이터를 이해하고 사용할 수 있도록 나타나야 하는데, 아이콘, 그림, 지도, 기타 정보를 보여주는 그림 형태로 나타난다. 물론, 이동창도 마우스, 키보드 조이스틱, 기타 게임제어수단을 방해하지 않는다. 경우에 따라서는 이동창에 의해 게임이 방해될 수도 있지만, 이 경우 유저 가 이동창과 게임안내를 요청하는 것이 좋다. 이런 식으로, 유저는 게임이 잠시 정지된 동안 게임 안내데이터를 조사하거나 리뷰할 수 있다.
이동창을 2104 단계에서 유저에게 보낸 뒤, 소프트웨어 에이전트는 옵션의 선택에 관한 유저의 입력을 받는다(2106). 일례로, 유저의 선택을 위해 게임안내 옵션 메뉴가 이동창에 표시될 수 있다. 이런 옵션에는 사용자가 받고자하는 게임 안내데이터의 종류를 특정하는 것도 있는데, 예를 들어 사용자가 치트(cheat)나 다른 정보 말고 지도만 보고자 할 수 있다. 유저는 특정 레벨을 위한 워크스루, 게임의 특정 방해를 물리치기 위한 팁, 게임관련 전술전략 등의 정보를 옵션으로 사용할 수 있다.
소프트웨어 에이전트는 게임안내 옵션을 처리한다(2108). 일례로, 로컬 데이터베이스에 게임데이터를 제공하도록 요청한다(2110). 한편, 게임안내데이터를 포함한 데이터의 소스가 원격 데이터베이스, 사용자제공 데이터, 로컬파일, 원격파일, 웹사이트, 서치 결과, 인터넷 서치결과, 채팅이나 즉삭 메시지 기법을 이용해 라이브 유저에게 질문 전달, 유저정의 입력 수신, 로컬이나 원격 위치한 다른 파일의 수신이나 요청일 수도 있다. 어떤 경우에도, 소프트웨어 에이전트는 게임안내데이터에 대한 질문의 결과를 디스플레이하여(2114) 유저에게 게임안내데이터를 제공한다(2112). 유저는 디스플레이 창 안에 있는 게임안내데이터를 볼 수 있다(2116).
이어서, 소프트웨어 에이전트는 여러 가지 액선들을 동시에 취한다. 예를 들어, 1206 단계에서 설명된 게임안내 옵션을 바꿀지 여부를 결정한다(2118). 옵션을 바꿔야 한다면 2106 단계로 돌아가고, 바꾸지 않는다면 2116 단계로 돌아가 반복한 다. 따라서, 본 실시예에서는 게임을 하는 동안이나 게임 밖에서 이동창에 게임안내데이터가 디스플레이되는 것을 유저가 바꿀 수 있다.
동시에, 소프트웨어 에이전트는 이동창을 변경할지 여부를 결정한다(2120). 소프트웨어 에이전트가 이동창을 변경하라는 입력을 받으면 이동창을 적절히 업데이트한다(2122). 이 경우 2116 단계로 돌아가 과정을 반복한다. 따라서, 여기서는 게임을 하는 동안이나 게임 밖에서 이동창을 유저가 바꾸거나 변경할 수 있다. 예를 들어, 이동창의 크기나 모양을 바꾸거나, 이동창을 배경으로 돌리거나, 이동창을 원하는대로 바꿀 수 있다.
동시에, 소프트웨어 에이전트는 게임안내를 정지할지 결정할 수 있다(2124). 정지되지 않으면 2116 단계로 돌아가 모든 관련 과정을 계속하고, 정지되면 과정이 종료된다. 본 실시예에서, 유저가 단축키, 키스트록 조합, 텍스트 명령어, 음성이나 오디오 입력, 기타 컨트롤러 입력에 의해 게임안내와 이동창을 정지할 수 있다. 따라서, 게임을 하는 동안이나 게임 밖에서 게임안내와 이동창을 유저가 1회 이상 작동정지시킬 수 있다.
도 22는 본 발명에 따라 게임 유저, 소프트웨어 에이전트, 서버 및 데이터저장에 의해 실행되는 사용례를 설명하는 사용례 블록도로서, 도 3의 소프트웨어 에이전트(301)와 같은 에이전트에 의해 구현되고, 이 에이전트는 데이터처리장치에 탑재되어 실행되며, 클라이언트 데이터처리장치, 서버 데이터처리장치 또는 이 두가지의 조합을 포함한다. 클라이언트 데이터처리장치로는 도 1의 클라이언트(110,112,114)가 있고, 이 클라이언트는 로컬 데이터처리장치일 수도 있다. 서버 데이터처리장치로는 도 1의 서버(104,106)이 있다. 본 실시예는 PDA, 휴대폰, 랩탑컴퓨터 등등의 데이터 처리장치에서 구현되기도 하지만, 물론 이에 한정되지도 않는다. 이 실시예에서 로컬 데이터처리장치는 온라인게임의 엔드유저가 사용하는 데이터처리장치를 말한다.
게임서버란 소프트웨어 에이전트나 관련 플러그인을 로딩할 수 있는 데이터 처리장치를 말한다. 예시된 실시예에 한정되지 않지만, 소프트웨어 에이전트와 관련된 플러그인만 게임서버에 로딩되고 소프트웨어 자체는 로컬 데이터 처리장치에 로딩된다.
예시된 실시예에서, 원격 게임서버란 원격서버나 원격 데이터 처리장치로서의 게임서버를 말하고, 온라인 게임서버라고도 한다. 원격 서버란 로컬 데이터 처리장치에서 떨어져 지리적으로 다른 장소에 있는 모든 서버를 말한다.
그러나, 다른 실시예에서는 게임서버가 로컬 게임서버일 수도 있다. 로컬 게임서버란 로컬영역 네트웍의 서버이거나, 단일 로컬컴퓨터의 운용체계로 실행되는 소프트웨어 구성일 수 있다. 본 실시예에서는, 로컬컴퓨터가 도 23A의 소프트웨어 에이전트(2300)와, 도 23B의 플러그인 소자인 서버게임(2306) 둘다를 포함한다.
따라서, 서버 세션은 로컬세션을 실행중인 데이터 처리장치에서 실행될 수 있다. 이 경우, 로컬세션이 로컬 데이터처리장치에서 실행되고 서버세션은 원격 데이터처리장치나 원격 게임서버에서 실행되는 경우와 같은 방식으로 소프트웨어 에이전트와 관련 플러그인이 작동한다.
도 22의 사용례는 도 14~21의 과정의 오버뷰이다. 도 22의 사용례는 원격 게 임서버에 탑재된 플러그인 애플리케이션에 의해 전체나 일부가 실행되는데, 이 경우 플러그인 애플리케이션은 소프트웨어 에이전트와 통신하면서 도 22의 사용례를 실행한다. 도 22의 소프트웨어 에이전트란 로컬 컴퓨터에 탑재되어 실행되는 소프트웨어 에이전트, 원격서버에 탑재되어 실행되는 관련 플러그인 애플리케이션, 또는 이 둘의 조합을 말한다.
여기서는 유저가 게이머(2200)로서 로컬 데이터처리장치에서 게임(2202)을 시작해 토너먼트 모드(2204)를 작동시키며, 로컬 컴퓨터에 온라인 서버정보(2206)를 저장한다. 토너먼트 모드는 소프트웨어 에이전타나 원격 게임서버나 다른 수단에 의해 자동으로 작동되기도 한다. 토너먼트 모드는 소프트웨어 에이전트의 특별 작동모드로서, 이 모드에서는 게이머(2200)의 로컬컴퓨터에서 동작하는 소프트웨어 에이전트가 원격 게임서버에서 동작하는 플러그인 애플리케이션과 함께 동작한다(도 14~21 참조).
도 22의 실시예에서, 소프트웨어 에이전트의 상품명은 이몬(Eamonn)이고, 온라인 서버 정보는 이몬컨피그(EamonnConfig) 파일(2208)로서 이몬 소프트웨어 에이전트의 일부분이다. 이몬컨피그 파일(2208)은 도 15에서 설명한 소프트웨어 에이전트 시동과정의 일부분으로서 체크설정정보 기능(2210)에 의해 사용된다. 소프트웨어 에이전트의 체크설정정보 기능(2210)은 도 15에서 설명한 바와 같이 소프트웨어 에이전트를 설정할 때 토너먼트 모드(2204)가 시작되었다는 사실을 포함할 수도 있다.
또, 이몬 소프트웨어 에이전트의 센드 접속정보 기능(2212)는 데이터베이스 서버(2214)에 접속정보를 보낼 때 토너먼트 모드(2204)가 시작되었다는 사실을 포함한다. 데이터베이스 서버(2214)는 게임플레이 데이터를 처리하고 유저크레딧을 업데이트하는 원격서버이다. 따라서, 데이터베이스 서버(2214)는 도 3의 서버(320), 도 7의 데이터베이스 서버(728), 도 8의 서버(808), 도 10C의 데이터베이스 서버(1041), 도 15~21의 서버를 모두 포함한다. 또, 이몬 소프트웨어 에이전트는 유효 접속상태 기능(2216)을 통해 접속상태를 유효화한다(도 15 참조).
온라인 게임서버에서 트래픽 인터셉터나 릴레이 기능(2222)이 게임트래픽을 확인한다. 게임트래픽은 게임특성, 게임플레이 데이터, 게임을 하는 유저의 수와 ID를 포함한다. 트래픽 인터셉터나 릴레이 기능(2222)은 이런 정보를 데이터베이스 서버(2214)에 보낸다. 또, 온라인 게임서버에서, 크레딧 유저기능(2218)은 유저크레딧을 생성해 데이터베이스 서버(2214)에 보낸다(도 19 참조).
도 23A~B은 본 발명에 따라 발명의 특징을 구현하는데 사용된 클래스들을 보여주는 블록도로서, 도 11A~B와 같은 객체에는 같은 번호를 붙이고, 도 11A~B에서 한 설명도 적용된다.
도 23B와 같이, 게이머는 유저 인터페이스(1124)를 이용해 런치게임(launchGame; 1118) 기능으로 게임을 시작하고, 인보크채트(invokeChat; 1114) 기능으로 채팅을 시작하며, 뷰버디(viewBuddies; 1110) 기능을 통해 친구명단을 본다. 또, 게이머는 유저 인터페이스(1124)에서 사용할 수 있는 모든 옵션을 업데이트할 수 있다. 게이머가 소프트웨어 에이전트와 동기할 때, 스태틱콘텐트(StaticContent; 1170)나 다이나믹콘텐트(DynamicContent; 1172)에 대한 업데이 트가 요청되어 도 10C의 웹서버(1040)에 의해 전송된다.
또, 도23B의 이몬컨피그 기능(2304)은 유저인터페이스(1124)와 통신한다. 이몬컨피그 기능(2304)에 의해 이몬 소프트웨어 에이전트가 토너먼트 모드로 설정된다. 도 14~18에서 설명한대로, 토너먼트 모드에서 소프트웨어 에이전트는 원격 게임서버에 로딩된 플러그인과 교류할 수 있다.
도23B의 서버게임(ServerGame) 기능(2306)은 원격 게임서버에서 운용되는 플러그인으로서, 지소웁(gSoap; 1174)이나 유저인터페이스(1124)와 같은 통신기능을 통해 유저 컴퓨터와 교류한다. 서버게임 기능(2306)에 의해 유저크레딧이 생기고 보고되며 원격 게임서버에서 곧바로 게임성능 데이터의 추적이 가능하다.
도 24는 본 발명에 따라 온라인 환경에서 본 발명의 특징을 구현하는데 사용되는 클래스들을 보여주는 블록도로서, 도 24의 클래스들은 도23B의 서버게임(2306)의 일부분이거나 이에 추가된 것이다. 따라서, 도 24는 도 14~21에서 설명된 소프트웨어 에이전트의 플러그인 부분이고, 예시된 클래스들은 컴퓨터 매체에 저장된 프로그램 코드를 사용해 하드웨어나 소프트웨어에서 구현될 수 있다.
서버게임유저(ServerGameUser; 2400)는 원격 서버에서 동작하는 게임 부위의 특정 유저를 나타내는 클래스이다. 서버게임유저는 보안모드에서 유저를 확인할 수 있도록 유저의 ID(2402)와 패스워드(2404)를 포함한다. 서버게임유저(2400)가 유효한 유저 ID(2402)와 패스워드(2404)를 수신한 뒤, 서버게임(2406)이 제시된다. 서버게임(2406)은 서버게임ID(serverGameId; 2408), 서버게임유저리스트(serverGameUserList; 2410), 서버게임라운드리스트(serverGameRoundList; 2412), 및 서버게임룰세트(serverGameRuneset, 2414)는 물론, 겟룰세트(getRuleset; 2416)와 오센티케이트서버게임유즈(authenticateServerGameUse; 2418)를 포함한다. 또, 서버게임이벤트(ServerGameEvent; 2420) 기능도 생성된다. 서버게임이벤트(2420) 기능은 이벤트타입(eventType; 2422), 이벤트유저(eventUsers; 2424) 및 이벤트리절트(eventResult; 2426)를 포함한다.
서버게임이벤트(2420)과 서버게임(2406) 둘다 서버게임라운드(2428)와 교류한다. 서버게임라운드(2428)는 서버게임이벤트리스트(serverGameEventList; 2430), 컬렉트게임이벤트(collectGameEvents; 2432), 프로세스게임이벤트(processGameEvent; 2434), 디스플레이리절트(displayResults; 2436) 및 리포트리절트(reportResults) 기능들을 포함한다.
서버게임(2406)와 서버게임라운드(2428) 둘다 도 11A~B의 것과 비슷한 지소웁(1174) 클래스와 교류한다. 지소웁(1174) 클래스는 오젠티케이트서버게임유저(2440) 및 센드서버게임리절트(2442) 기능들을 포함하고, 도 11B의 데이터베이스(1176)와 교류한다.
도 25는 본 발명에 따라 게임을 하는 동안 이동창을 구현하는데 사용되는 클래스들의 블록도로서, 이들 클래스는 도14~21에서 설명한 게임안내나 도전 프롬프트를 보여주는 이동창을 구현하는데 사용되고, 컴퓨터 명령어들을 구현하는 모든 수단을 이용하거나 컴퓨터매체에 저장된 프로그램코드를 이용해 하드웨어나 소프트웨어에서 구현될 수 있다. 디스플레이란 도 14~21에서 설명한 이동창을 말하기도 한다.
이몬리모트디스플레이모듈(EamonnRemoteDisplayModule; 2500)은 게임에서 디스플레이 창을 만들기 위한 소프트웨어 에이전트용 모듈을 설명하는 클래스로서, 인스톨(2502), 언인스톨(2504) 및 디스플레이업데이트(displayUpdate; 2506) 기능들을 포함한다. 이들 기능은 소프트웨어 에이전트의 디스플레이창 기능을 인스톨, 언인스톨, 업데이트하는 기능이다. 이몬리모트디스플레이모듈(2500)은 이몬리모트디스플레이커넥터(EamonnRemoteDisplayConnector; 2508)와 공조해 디스플레이 모듈을 인스톨하고, 디스플레이창의 진입법을 선택하며, 디스플레이에 데이터를 보내고, 디스플레이 모듈을 언인스톨한다. 따라서, 이몬리모트디스플레이커넥터(2508)는 인스톨디스플레이모듈(installDisplayModule; 2510), 츄스인젝션메소드(chooseInjectionMethod; 2512), 센드투디스플레이(sendToDisplay; 2514) 및 언인스톨디스플레이모듈(uninstallDisplayModule; 2516) 기능들을 포함한다.
이어서, 이몬리모트디스플레이커넥터(2508) 클래스는 이몬리모트디스플레이매니저(EamonnRemoteDisplayManager; 2518) 클래스와 공조해 도전프롬프트나 게임 안내데이터를 디스플레이한다. 이몬리모트디스플레이매니저(2518) 클래스는 테이크디스플레이컨트롤(takeDisplayControl; 2520), 디스플레이프롬프트옵션(displayPromptOptions; 2522), 세트유저핫키(setUserHotKeys; 2524), 매니저센즈(managerSends; 2526) 및 테이크리퀘스트(takeRequests; 2528) 기능들을 포함하고, 챌린지프롬프트(ChallangePrompt; 2530) 및 게임가이드(GameGuide; 2540) 클래스들과 공조한다.
챌린지프롬프트(2530) 클래스는 무브퍼워드(moveForward; 2532), 무브 백(moveBack; 2534), 겟커런트뷰(getCurrentView; 2536) 및 파이널앤서(finalAnswer; 2538) 기능들을 포함한 여러 기능을 하므로, 디스플레이창에 표시된 프롬프트에 대한 답변에 관한 입력을 디스플레이창에서 받을 수 있다.
게임가이드(2540) 클래스는 로드데이터(loadData; 2542) 및 쿼리데이터(queryData; 2544) 기능들을 할 수 있어, 유저가 게임자체가 제공한 헬프파일 이외의 다른 소스의 데이터를 로딩하고 게임을 하면서 로딩데이터를 요청 및 디스플레이하도록 한다.
따라서, 도 14~25에 도시된 방법과 클래스들은 온라인 게임환경에서 유저의 게임행위를 감시하기 위해 컴퓨터에서 구현되는 방법으로서, 게임행위가 게임플레이 데이터이다. 게임플레이 데이터는 게임을 하는 방법을 반영하는 데이터이다. 컴퓨터로 구현된 방법은 게임의 검출에 응답해 유저의 게임특징을 감시하는 방법을 포함한다. 소프트웨어 에이전트가 감시하는 게임특징은 마우스나 조이스틱이나 키보드의 용법, 유저의 CPU 활용도, 유저의 활성창, 유저의 메모리 활용도, 유저의 네트웍 연결 등을 포함한다. 본 실시예에서는 원격서버에서 게임이 이루어진다. 이 방법은 또한 게임특징을 근거로 한 게임상태를 확인하는 방법도 포함한다. 게임상태란 게임의 상태로서, 활성, 비활성, 아이들, 잠시정지, 부분활성 등의 게임상태를 포함한다. 이 방법은 또한 게임을 하는 동안 게임상태가 바뀌면 유저의 게임플레이 데이터를 수집하는 방법과, 게임상태가 바뀌지 않을 경우에도 토너먼트 모드에서 게임플레이 데이터를 수집하는 방법도 포함하는데, 후자의 경우 게임플레이 데이터는 킬(kill), 성취도, 벤치마크 등을 근거로 게임플레이 데이터가 축적되기 도 한다.
한편, 이 방법은 게임플레이 데이터를 보고하는 방법을 포함하기도 하는데, 게임플레이 데이터를 보고한다는 것은 이 데이터를 다른 데이터처리장치에 보내는 것을 의미하지만, 경우에 따라서는 저장장치에 데이터를 저장하는 것을 의미하기도 한다. 또, 로컬 데이터처리장치의 소프트웨어 에이전트에서 감시확인 단계를 실행하고, 원격서버의 플로그인 애플리케이션에서 수집단계를 실행하기도 하는데, 이 경우에는 플로그인이 소프트웨어 에이전트와 통신한다.
요컨대, 본 발명은 온라인과 오프라인으로 유저 게임플레이 데이터를 수집하고 이 데이터에 맞게 유저에게 크레딧을 지급하는 모델을 제공한다. 유저의 게임플레이 데이터는 판매후의 시장조사 데이터로서, 판매 전이었다면 편향되고 편파적인 데이터일 것이다. 또, 유저 계좌관리, 채팅관리, 게임리스트 관리 등등의 각종 기능을 수행하는 소프트웨어 에이전트도 제공한다. 또, 편향되지 않은 싱글-플레이어 게이머를 위한 게임플레이 데이터도 제공한다. 또, 유저들을 위한 양방향 환경을 개시할 동적데이터, 유저들 사이의 경쟁적 분석은 물론, 라이브게임에서 효과적인 표적광고를 하는데 사용되는 데이터와 같이, 고유 서비스를 제공하는 데이터의 특징을 회사에서 활용하는 방법도 제공할 수 있다.
본 발명은 완전 하드웨어나, 완전 소프트웨어나, 양자를 포함하는 형태를 취할 수 있다. 또, 소프트웨어 형태로 구현될 경우, 펌웨어, 상주 소프트웨어, 마이크로코드를 포함할 수 있는데, 물론 이는 예로 든 것일 뿐이다.
또, 본 발명은 컴퓨터나 기타 명령실행장치에서 사용할 프로그램코드를 제공하는 컴퓨터용 매체로 접근할 수 있는 컴퓨터 프로그램 제품 형태를 취할 수 있다. 이를 위해, 컴퓨터용 매체는 컴퓨터에서 사용할 프로그램을 저장 또는 전송할 수 있는 모든 장치를 포함한다.
이런 컴퓨터 매체는 전자식, 자기식, 광학식, 전기자기식, 적외선 또는 반도체 형식의 전송매체일 수 있다. 컴퓨터 리더블 매체의 예로는 반도체나 고체상태 메모리, 자기테이프, 컴퓨터 디스켓, RAM, ROM, 자기디스크, 광학디스크가 있다. 현재의 광학디스크는 CD-ROM, CD-R/W, DVD를 포함한다. 이런 매체는 상황에 따라 유형이거나 무형일 수 있다.
프로그램코드를 저장하거나 실행하기 위한 데이터 처리장치로는 버스를 통해 메모리에 직간접적으로 연결된 프로세서를 포함한다. 메모리는 프로그램코드를 실제 실행하는 동안 사용하는 로컬메모리, 대용량 저장장치, 및 일부 프로그램을 임시로 저장할 캐시메모리를 포함한다.
(키보드, 디스플레이, 포인터 등을 포함한) 입출력 기기를 I/O 컨트롤러를 통해서나 직접 시스템에 연결할 수 있다.
네트웍 어댑터를 이 시스템에 연결하면, 사설이나 공공 네트웍을 통해 데이터 처리장치를 다른 데이터 처리장치나 원격 프린터나 저장장치에 연결할 수 있다. 모뎀, 케이블모뎀, 이더넷카드가 현재 사용되는 네트웍 어댑터이다.

Claims (40)

  1. 게임기에서 실행되는 유저의 게임플레이 데이터를 수집하기 위해 컴퓨터로 구현되는 방법에 있어서:
    게임의 실행을 감지하면, 게임기에서 소프트웨어 에이전트의 과정을 개시하되, 소프트웨어 에이전트는 게임기 외부에 있고, 소프트웨어 에이전트의 과정은 게임 밖에서 게임과 상호작용하는 단계;
    마우스 움직임, 조이스틱 움직임, 키보드 입력, 게임기의 메모리 사용량, 게임기의 프로세서 활용도, 컨트롤러 입력, 및 게임중에 게임기가 사용하는 데이터처리장치 리소스로 이루어진 군에서 선택된 게임특징들을 측정하는 단계;
    게임특징을 기반으로 게임기가 작동상태인지 정지상태인지 결정하되, 게임특징이 임계값보다 높으면 게임기는 작동하고 임계값보다 낮으면 정지하는 단계;
    게임기의 작동에 응답해, 소프트웨어 에이전트 과정을 통해 게임플레이 데이터를 수집하는 단계;
    게임기 정지에 응답해, 게임플레이 데이터 수집을 정지하는 단계;
    게임기 재작동에 응답해, 게임플레이 데이터 수집을 재개하는 단계;
    모든 수집된 게임플레이 데이터를 데이터파일에 저장하는 단계;
    데이터파일을 서버에 전송하는 단계; 및
    데이터파일을 저장하는 단계;를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 게임기의 작동에 응답해 유저계좌에 크레딧을 발급하는 단계와, 게임기의 정지에 응답해 크레딧 발급을 정지하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 가상 쇼핑몰의 제품과 서비스에 대해 유저 계좌에 크레딧을 보내는 것을 관리하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 2가지 이상의 게임특징을 선택하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 게임이 유저의 소유이고, 게임플레이 데이터는 게임을 구매한 뒤의 유저의 행위를 표시하는 판매후 데이터를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 판매후 데이터가 게임이 작동중인 동안에만 유저가 게임을 한 기간과, 게임이 작동중인 동안에만 유저가 게임을 한 횟수인 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 게임을 하는 동안 소프트웨어 에이전트에 의해 창이 생성되는 단계와, 창에 정보를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 정보가 계좌의 크레딧의 현재 잔고를 포함하는 것을 특징으로 하는 방법.
  9. 제7항에 있어서, 상기 창이 유저 인터페이스를 더 포함하고, 정보는 액션을 하도록 유저에게 하는 질문과 명령문을 갖는 도전 프롬프트를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    게임기의 작동에 응답해 유저에게 계좌 크레딧을 발급하는 단계;
    게임기 정지에 응답해 크레딧 발급을 정지하는 단계;
    도전 프롬프트에 대한 옳은 응답을 받으면 크레딧 발급을 계속하는 단계; 및
    도전 프롬프트에 대해 틀린 응답을 받거나 일정 시간내 아무 응답을 받지 못하면 크레딧 발급을 중단하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    도전 프롬프트에 대해 틀린 응답을 받거나 일정 시간내 아무 응답을 받지 못하면 아래의 보안조치를 취하는 단계를 더 포함하는 것을 특징으로 하는 방법.
    - 소프트웨어 에이전트의 기능들을 보류;
    - 두 번째 도전 프롬프트 생성;
    - 게임플레이 보류;
    - 게임 실행 종료; 또는
    - 도전실패 뒤 생긴 데이터패킷 마킹.
  12. 제9항에 있어서, 상기 도전프롬프트가 게임을 하는 동안의 반복적 행위의 검출 또는 랜덤 인자를 근거로 생성되는 것을 특징으로 하는 방법.
  13. 제9항에 있어서, 상기 도전 프롬프트가 게임 시작 이후의 경과 시간, 이전 도전 프롬프트의 제시 이후의 경과 시간, 게임을 하는 동안 반복적 행위의 검출 또는 임의의 인자를 근거로 생성되는 것을 특징으로 하는 방법.
  14. 제7항에 있어서, 상기 창이 유저 인터페이스를 포함하고, 소프트웨어 에이전트는 소프트웨어 에이전트에 대한 응답을 입력하라는 프롬프트를 유저에게 보여주는 것을 특징으로 하는 방법.
  15. 제14항에 있어서, 상기 응답이 질문에 대한 답변이나 입력 요청에 대한 답변인 것을 특징으로 하는 방법.
  16. 제7항에 있어서, 상기 정보가 게임 플레이에 관한 정보를 디스플레이하는 게 임 안내데이터를 포함하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서, 상기 창이 유저 인터페이스를 더 포함하고, 아래 단계들을 더 포함하는 것을 특징으로 하는 방법.
    - 유저 인터페이스를 통해, 게임에 대응하는 게임 안내데이터를 포함한 게임 외부의 데이터 소스를 문의하는 단계; 및
    - 게임이 실행되는 동안 이동창을 통해 게임 안내데이터를 유저에게 제시하는 단계.
  18. 제1항에 있어서, 개시, 측정, 결정 및 수집 단계들이 오프라인에서 실행되고, 전송에 앞서 서버에 온라인 연결을 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 게임기에서 실행되는 유저의 게임플레이 데이터를 수집하기 위한 컴퓨터 구현 방법을 프로세서로 구현하는 프로그램을 저장하는 컴퓨터 리더블 저장매체에 있어서:
    게임의 실행을 감지하면, 게임기에서 소프트웨어 에이전트의 과정을 개시하되, 소프트웨어 에이전트는 게임기 외부에 있고, 소프트웨어 에이전트의 과정은 게임 밖에서 게임과 상호작용하는 단계;
    마우스 움직임, 조이스틱 움직임, 키보드 입력, 게임기의 메모리 사용량, 게 임기의 프로세서 활용도, 컨트롤러 입력, 및 게임중에 게임기가 사용하는 데이터처리장치 리소스로 이루어진 군에서 선택된 게임특징들을 측정하는 단계;
    게임특징을 기반으로 게임기가 작동상태인지 정지상태인지 결정하되, 게임특징이 임계값보다 높으면 게임기는 작동하고 임계값보다 낮으면 정지하는 단계;
    게임기의 작동에 응답해, 소프트웨어 에이전트 과정을 통해 게임플레이 데이터를 수집하는 단계;
    게임기 정지에 응답해, 게임플레이 데이터 수집을 정지하는 단계;
    게임기 재작동에 응답해, 게임플레이 데이터 수집을 재개하는 단계;
    모든 수집된 게임플레이 데이터를 데이터파일에 저장하는 단계;
    데이터파일을 서버에 전송하는 단계; 및
    데이터파일을 저장하는 단계;를 포함하는 것을 특징으로 하는 컴퓨터 리더블 저장매체.
  20. 버스;
    버스에 연결된 프로세서;
    게임기에서 실행되는 유저의 게임플레이 데이터를 수집하기 위한 컴퓨터 구현 방법을 프로세서로 구현하는 프로그램을 저장하도록 버스에 연결된 메모리;를 포함하고,
    상기 컴퓨터 구현 방법은 아래 단계들을 포함하는 것을 특징으로 하는 게임기.
    - 게임의 실행을 감지하면, 게임기에서 소프트웨어 에이전트의 과정을 개시하되, 소프트웨어 에이전트는 게임기 외부에 있고, 소프트웨어 에이전트의 과정은 게임 밖에서 게임과 상호작용하는 단계;
    - 마우스 움직임, 조이스틱 움직임, 키보드 입력, 게임기의 메모리 사용량, 게임기의 프로세서 활용도, 컨트롤러 입력, 및 게임중에 게임기가 사용하는 데이터처리장치 리소스로 이루어진 군에서 선택된 게임특징들을 측정하는 단계;
    - 게임특징을 기반으로 게임기가 작동상태인지 정지상태인지 결정하되, 게임특징이 임계값보다 높으면 게임기는 작동하고 임계값보다 낮으면 정지하는 단계;
    - 게임기의 작동에 응답해, 소프트웨어 에이전트 과정을 통해 게임플레이 데이터를 수집하는 단계;
    - 게임기 정지에 응답해, 게임플레이 데이터 수집을 정지하는 단계;
    - 게임기 재작동에 응답해, 게임플레이 데이터 수집을 재개하는 단계;
    - 모든 수집된 게임플레이 데이터를 데이터파일에 저장하는 단계;
    - 데이터파일을 서버에 전송하는 단계; 및
    - 데이터파일을 저장하는 단계.
  21. 제1항에 있어서,
    게임의 실행을 감지하면, 게임기에서 소프트웨어 에이전트의 과정을 개시하되, 소프트웨어 에이전트는 게임기 외부에 있고, 소프트웨어 에이전트의 과정은 게임 밖에서 게임과 상호작용하는 단계;
    마우스 움직임, 조이스틱 움직임, 키보드 입력, 게임기의 메모리 사용량, 게임기의 프로세서 활용도, 컨트롤러 입력, 및 게임중에 게임기가 사용하는 데이터처리장치 리소스로 이루어진 군에서 선택된 게임특징들을 측정하는 단계;를 포함하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서, 게임기의 작동에 응답해 유저계좌에 크레딧을 발급하는 단계와, 게임기의 정지에 응답해 크레딧 발급을 정지하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  23. 제21항에 있어서, 가상 쇼핑몰의 제품과 서비스에 대해 유저 계좌에 크레딧을 보내는 것을 관리하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  24. 제23항에 있어서, 2가지 이상의 게임특징을 선택하는 것을 특징으로 하는 방법.
  25. 제23항에 있어서, 게임이 유저의 소유이고, 게임플레이 데이터는 게임을 구매한 뒤의 유저의 행위를 표시하는 판매후 데이터를 포함하는 것을 특징으로 하는 방법.
  26. 제21항에 있어서, 상기 판매후 데이터가 게임이 작동중인 동안에만 유저가 게임을 한 기간과, 게임이 작동중인 동안에만 유저가 게임을 한 횟수인 것을 특징으로 하는 방법.
  27. 제21항에 있어서, 게임을 하는 동안 소프트웨어 에이전트에 의해 창이 생성되는 단계와, 창에 정보를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  28. 제21항에 있어서, 상기 정보가 계좌의 크레딧의 현재 잔고를 포함하는 것을 특징으로 하는 방법.
  29. 제27항에 있어서, 상기 창이 유저 인터페이스를 더 포함하고, 정보는 액션을 하도록 유저에게 하는 질문과 명령문을 갖는 도전 프롬프트를 포함하는 것을 특징으로 하는 방법.
  30. 제21항에 있어서,
    게임기의 작동에 응답해 유저에게 계좌 크레딧을 발급하는 단계;
    게임기 정지에 응답해 크레딧 발급을 정지하는 단계;
    도전 프롬프트에 대한 옳은 응답을 받으면 크레딧 발급을 계속하는 단계; 및
    도전 프롬프트에 대해 틀린 응답을 받거나 일정 시간내 아무 응답을 받지 못하면 크레딧 발급을 중단하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  31. 제1항에 있어서,
    도전 프롬프트에 대해 틀린 응답을 받거나 일정 시간내 아무 응답을 받지 못하면 아래의 보안조치를 취하는 단계를 더 포함하는 것을 특징으로 하는 방법.
    - 소프트웨어 에이전트의 기능들을 보류;
    - 두 번째 도전 프롬프트 생성;
    - 게임플레이 보류;
    - 게임 실행 종료; 또는
    - 도전실패 뒤 생긴 데이터패킷 마킹.
  32. 제31항에 있어서, 상기 도전프롬프트가 게임을 하는 동안의 반복적 행위의 검출 또는 랜덤 인자를 근거로 생성되는 것을 특징으로 하는 방법.
  33. 제32항에 있어서, 상기 도전 프롬프트가 게임 시작 이후의 경과 시간, 이전 도전 프롬프트의 제시 이후의 경과 시간, 게임을 하는 동안 반복적 행위의 검출 또는 임의의 인자를 근거로 생성되는 것을 특징으로 하는 방법.
  34. 제31항에 있어서, 상기 창이 유저 인터페이스를 포함하고, 소프트웨어 에이전트는 소프트웨어 에이전트에 대한 응답을 입력하라는 프롬프트를 유저에게 보여주는 것을 특징으로 하는 방법.
  35. 제34항에 있어서, 상기 응답이 질문에 대한 답변이나 입력 요청에 대한 답변인 것을 특징으로 하는 방법.
  36. 제34항에 있어서, 상기 정보가 게임 플레이에 관한 정보를 디스플레이하는 게임 안내데이터를 포함하는 것을 특징으로 하는 방법.
  37. 제31항에 있어서, 상기 창이 유저 인터페이스를 더 포함하고, 아래 단계들을 더 포함하는 것을 특징으로 하는 방법.
    - 유저 인터페이스를 통해, 게임에 대응하는 게임 안내데이터를 포함한 게임 외부의 데이터 소스를 문의하는 단계; 및
    - 게임이 실행되는 동안 이동창을 통해 게임 안내데이터를 유저에게 제시하는 단계.
  38. 제31항에 있어서, 개시, 측정, 결정 및 수집 단계들이 오프라인에서 실행되고, 전송에 앞서 서버에 온라인 연결을 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  39. 제38항에 있어서, 개시, 측정, 결정 및 수집 단계들이 오프라인에서 실행되고, 전송에 앞서 서버에 온라인 연결을 하는 단계를 더 포함하는 것을 특징으로 하 는 방법.
  40. 제31항에 있어서, 개시, 측정, 결정 및 수집 단계들이 오프라인에서 실행되고, 전송에 앞서 서버에 온라인 연결을 하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020097020818A 2007-03-08 2008-03-05 게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치 KR20090119925A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/683,773 US20080220854A1 (en) 2007-03-08 2007-03-08 Method and apparatus for collecting user game play data and crediting users in an online gaming environment
US11/683,773 2007-03-08

Publications (1)

Publication Number Publication Date
KR20090119925A true KR20090119925A (ko) 2009-11-20

Family

ID=39738775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097020818A KR20090119925A (ko) 2007-03-08 2008-03-05 게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치

Country Status (4)

Country Link
US (1) US20080220854A1 (ko)
EP (1) EP2125126A1 (ko)
KR (1) KR20090119925A (ko)
WO (1) WO2008109680A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138340A (ko) * 2013-04-03 2015-12-09 킹.컴 리미티드 게임 데이터 수집을 위한 방법 및 시스템

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090156297A1 (en) * 2007-07-20 2009-06-18 Aristocrat Technologies Australia Pty Limited System and method for managing game specific meter information in a gaming system
US8176159B2 (en) * 2007-08-16 2012-05-08 Avaya Inc. Habit-based authentication
US8204983B2 (en) * 2007-10-30 2012-06-19 Sony Computer Entertainment America Inc. Allocation of on-line monitoring resources
US8409010B2 (en) * 2009-05-05 2013-04-02 Microsoft Corporation Massively multiplayer game with shared gameplay experience
EP2482946A1 (en) * 2009-09-30 2012-08-08 Zynga Inc. Apparatuses, methods and systems for an engagement-tracking game modifier
US9430909B2 (en) 2014-04-08 2016-08-30 Micro-Gaming Ventures, LLC Location-based wagering via remote devices
US8545311B2 (en) * 2010-08-20 2013-10-01 Michael W. Shore Systems and methods for enabling remote device users to wager on micro events of games in a data network accessible gaming environment
US8632392B2 (en) 2010-08-20 2014-01-21 Micro-Gaming Ventures, LLC Systems and methods for enabling remote device users to wager on micro events of games in a data network accessible gaming environment
US8734231B2 (en) 2010-08-20 2014-05-27 Micro-Gaming Ventures, LLC Systems and methods for enabling remote device users to wager on micro events of games in a data network accessible gaming environment
US9483908B2 (en) 2010-08-20 2016-11-01 Micro-Gaming Ventures, LLC Methods and systems for conducting a competition within a gaming environment
US9978218B2 (en) 2010-08-20 2018-05-22 Micro-Gaming Ventures, LLC Systems and methods for enabling remote device users to wager on micro events of games in a data network accessible gaming environment
US9509521B2 (en) 2010-08-30 2016-11-29 Disney Enterprises, Inc. Contextual chat based on behavior and usage
US9713774B2 (en) * 2010-08-30 2017-07-25 Disney Enterprises, Inc. Contextual chat message generation in online environments
KR102000618B1 (ko) * 2010-09-13 2019-10-21 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
US9552353B2 (en) 2011-01-21 2017-01-24 Disney Enterprises, Inc. System and method for generating phrases
US20130035989A1 (en) * 2011-08-05 2013-02-07 Disney Enterprises, Inc. Conducting market research using social games
US20130035981A1 (en) * 2011-08-05 2013-02-07 Disney Enterprises, Inc. Social networks games configured to elicit research data as part of game play
US9176947B2 (en) 2011-08-19 2015-11-03 Disney Enterprises, Inc. Dynamically generated phrase-based assisted input
US9245253B2 (en) 2011-08-19 2016-01-26 Disney Enterprises, Inc. Soft-sending chat messages
KR101246361B1 (ko) * 2011-12-30 2013-04-04 (주)네오위즈게임즈 릴레이 서버를 이용한 렉발생 어뷰징 방지 서비스를 제공하는 방법, 서버 및 기록매체
US20150073987A1 (en) 2012-04-17 2015-03-12 Zighra Inc. Fraud detection system, method, and device
JP6022214B2 (ja) * 2012-05-31 2016-11-09 任天堂株式会社 プログラム、情報処理方法、情報処理装置及び表示システム
US9165329B2 (en) 2012-10-19 2015-10-20 Disney Enterprises, Inc. Multi layer chat detection and classification
US9569466B1 (en) 2013-01-30 2017-02-14 Kabam, Inc. System and method for offline asynchronous user activity in a player versus player online game
US10303762B2 (en) 2013-03-15 2019-05-28 Disney Enterprises, Inc. Comprehensive safety schema for ensuring appropriateness of language in online chat
US10742577B2 (en) 2013-03-15 2020-08-11 Disney Enterprises, Inc. Real-time search and validation of phrases using linguistic phrase components
CN104836714A (zh) * 2014-02-08 2015-08-12 湖北金像无人航空科技服务有限公司 一种避免网络棋牌类游戏文字聊天作弊的办法
US11783679B2 (en) 2014-04-08 2023-10-10 Micro-Gaming Ventures, LLC Location-based wagering via remote devices
US10187799B2 (en) 2014-08-19 2019-01-22 Zighra Inc. System and method for implicit authentication
US20160162900A1 (en) 2014-12-09 2016-06-09 Zighra Inc. Fraud detection system, method, and device
US10554676B2 (en) 2015-03-03 2020-02-04 Zighra Inc. System and method for behavioural biometric authentication using program modelling
WO2017034471A1 (en) * 2015-08-21 2017-03-02 Razer (Asia-Pacific) Pte. Ltd. Information distribution methods, computer readable media, and information distribution servers
US10888788B2 (en) * 2016-06-30 2021-01-12 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) control mode for playing specific tasks during gaming applications
US10195531B2 (en) * 2016-06-30 2019-02-05 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) personal assistant
WO2018067600A1 (en) * 2016-10-03 2018-04-12 App Onboard, Inc. Video-tree system for interactive media reproduction, simulation, and playback
CN108268886B (zh) * 2017-01-04 2020-10-30 中国移动通信集团四川有限公司 用于识别外挂操作的方法及系统
JP6802733B2 (ja) * 2017-03-06 2020-12-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、サーバシステムおよびステータス管理方法
JP7015462B2 (ja) * 2017-05-23 2022-02-03 株式会社セガ 情報処理装置及びプログラム
CN108654091B (zh) * 2018-05-14 2021-05-14 网易(杭州)网络有限公司 用于游戏中作弊校验的方法、介质、装置和计算设备
US10825303B2 (en) * 2018-06-25 2020-11-03 Brett Dwain McDonald System and method for using artificial intelligence to create live, mobile, betting system offering time-sensitive, curated and player-restricted bets on sub-outcomes of sports and esport events
JP6997386B2 (ja) * 2019-04-12 2022-01-17 株式会社カプコン ゲーム関連サービス提供プログラムならびにサーバ装置
US11224803B2 (en) 2019-11-22 2022-01-18 Roblox Corporation Prominent display of targeted game in search results
CN112044057B (zh) * 2020-09-17 2024-06-25 网易(杭州)网络有限公司 一种游戏状态监测方法和装置
US11498007B2 (en) * 2020-12-17 2022-11-15 Nvidia Corporation Measuring and detecting idle processing periods and identifying root causes thereof in cloud-based, streaming applications
JP7140996B2 (ja) * 2021-01-14 2022-09-22 株式会社カプコン ゲーム関連サービス提供プログラムならびにサーバ装置
US11731048B2 (en) * 2021-05-03 2023-08-22 Sony Interactive Entertainment LLC Method of detecting idle game controller

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
US6110041A (en) * 1996-12-30 2000-08-29 Walker Digital, Llc Method and system for adapting gaming devices to playing preferences
KR100221027B1 (ko) * 1996-05-06 1999-09-15 윤종용 컴퓨터 모니터링장치 및 그의 제어방법
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
US6306035B1 (en) * 1996-11-14 2001-10-23 Arcade Planet, Inc. Graphical user interface for providing gaming and prize redemption capabilities
US6758755B2 (en) * 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
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
US6106395A (en) * 1997-03-04 2000-08-22 Intel Corporation Adaptive gaming behavior based on player profiling
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
AU754046B2 (en) * 1997-05-31 2002-10-31 Robert A. Luciano A method of playing a long-duration multi-step wagering game
JPH1133230A (ja) * 1997-07-16 1999-02-09 Sega Enterp Ltd 通信ゲームシステム
US6142876A (en) * 1997-08-22 2000-11-07 Cumbers; Blake Player tracking and identification system
US6368218B2 (en) * 1998-10-28 2002-04-09 Gtech Rhode Island Corporation Interactive gaming system
JP3695217B2 (ja) * 1999-04-30 2005-09-14 オムロン株式会社 画像処理装置及び画像入力装置
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
US6322446B1 (en) * 1999-12-10 2001-11-27 Elot, Inc. System and a method for operating on-line state lottery games
US20020039921A1 (en) * 2000-02-03 2002-04-04 Rick Rowe Method and apparatus for monitoring player loss in a gaming environment
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 (ja) * 2000-08-08 2002-12-13 System Support:Kk コンピュータ監視システム
US20020037767A1 (en) * 2000-08-17 2002-03-28 Steven Ebin Gambling system and method through a computer network
AU2001282482A1 (en) * 2000-08-27 2002-03-13 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
US7168089B2 (en) * 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US7515718B2 (en) * 2000-12-07 2009-04-07 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
CN102024347A (zh) * 2001-01-09 2011-04-20 托普科德公司 用于编码竞赛的系统和方法
JP3606316B2 (ja) * 2001-06-07 2005-01-05 ソニー株式会社 キャラクタデータ管理システム、キャラクタサーバー、およびキャラクタデータ管理方法、並びにプログラム
US6966832B2 (en) * 2001-07-13 2005-11-22 Gameaccount Limited System and method for providing game advice to a user of a gaming application
US6908387B2 (en) * 2001-08-03 2005-06-21 Igt Player tracking communication mechanisms in a gaming machine
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
US8029360B2 (en) * 2003-05-13 2011-10-04 Multimedia Games, Inc. Dynamically configurable gaming system
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
US8591338B2 (en) * 2003-08-18 2013-11-26 Igt System and method for permitting a tournament game on different computing platforms
CN1853400A (zh) * 2003-09-15 2006-10-25 爱克力斯游戏公司 玩家专用网络
US7887419B2 (en) * 2004-12-07 2011-02-15 Microsoft Corporation Game achievements system
US8425331B2 (en) * 2004-12-07 2013-04-23 Microsoft Corporation User interface for viewing aggregated game, system and personal information
US7621813B2 (en) * 2004-12-07 2009-11-24 Microsoft Corporation Ubiquitous unified player tracking system
US8066568B2 (en) * 2005-04-19 2011-11-29 Microsoft Corporation System and method for providing feedback on game players and enhancing social matchmaking

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150138340A (ko) * 2013-04-03 2015-12-09 킹.컴 리미티드 게임 데이터 수집을 위한 방법 및 시스템

Also Published As

Publication number Publication date
WO2008109680A1 (en) 2008-09-12
EP2125126A1 (en) 2009-12-02
US20080220854A1 (en) 2008-09-11

Similar Documents

Publication Publication Date Title
KR20090119925A (ko) 게임환경에서 유저의 게임-플레이 행동을 모니터하고 게임플레이 데이터를 보고하는 방법 및 장치
US20080220869A1 (en) Method and apparatus for providing game guide data in a gaming environment
US20070077993A1 (en) Method and apparatus for collecting user game play data and crediting users in a gaming environment
US10058787B2 (en) Systems and methods for generating and sharing video clips of cloud-provisioned games
US9566505B2 (en) Systems and methods for generating and sharing video clips of cloud-provisioned games
US10201754B1 (en) Systems and methods for incentivizing user log-in to a user account associated with an online game
KR20080056257A (ko) 게임환경에서 사용자의 게임-플레이 행동을 모니터하고게임플레이 데이터를 보고하는 방법 및 장치
US20080220872A1 (en) Method and apparatus for issuing a challenge prompt in a gaming environment
US10192402B1 (en) Ad serving offers and new game promotions outside the game module with business intelligence based on portfolio of games
JP2013075163A (ja) ゲーム制御装置、アイテム抽選方法、アイテム抽選プログラム、ゲームシステム
JP6383120B1 (ja) 情報処理システム、端末装置、プログラム、及び情報処理方法
JP2009511200A (ja) プレーヤのための望ましいマルチプレーヤ・ゲームを見つけるための方法及び装置
KR20060122236A (ko) 온라인 게임에서 퀘스트 대리 수행 방법 및 시스템
US20120015722A1 (en) Generating reminders for game conditions
WO2014038247A1 (ja) ゲームシステム及びゲーム制御方法
KR101569645B1 (ko) 게임 수행 방법, 게임 서버 및 게임 시스템
KR20030069675A (ko) 다수 사용자용 온라인 게임내의 소규모 게임 운영 방법 및장치
KR20190141484A (ko) 게임 서비스를 제공하기 위한 장치, 방법 및 컴퓨터 프로그램
CA2348616A1 (en) System and method for information and application distribution
KR20040032847A (ko) 컴퓨터 및 개인 휴대 단말기를 이용한 고스톱 게임 서비스방법 및 시스템
KR101196614B1 (ko) 온라인 게임의 아이템 거래정보 제공 시스템 및 그 방법
KR20120039108A (ko) 온라인 게임 시스템의 불량 유저 모니터링 방법 및 온라인 게임 시스템을 위한 불량 유저 모니터링 시스템
KR20230151772A (ko) 게임 서비스를 제공하는 방법 및 장치
KR20240082292A (ko) 게임 컨텐츠를 제공하는 방법 및 장치
KR20200064965A (ko) 게임 서비스를 제공하기 위한 장치, 방법 및 컴퓨터 프로그램

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