CN101369227A - 一种游戏虚拟机及其实现的游戏开发系统和方法 - Google Patents

一种游戏虚拟机及其实现的游戏开发系统和方法 Download PDF

Info

Publication number
CN101369227A
CN101369227A CNA2008101004606A CN200810100460A CN101369227A CN 101369227 A CN101369227 A CN 101369227A CN A2008101004606 A CNA2008101004606 A CN A2008101004606A CN 200810100460 A CN200810100460 A CN 200810100460A CN 101369227 A CN101369227 A CN 101369227A
Authority
CN
China
Prior art keywords
game
thread
client
virtual machine
services end
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CNA2008101004606A
Other languages
English (en)
Other versions
CN101369227B (zh
Inventor
王彭城
李国宏
寇华
李炯
汤闻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cyber Shenzhen Co Ltd
Original Assignee
Tencent Cyber Shenzhen Co Ltd
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 Tencent Cyber Shenzhen Co Ltd filed Critical Tencent Cyber Shenzhen Co Ltd
Priority to CN2008101004606A priority Critical patent/CN101369227B/zh
Publication of CN101369227A publication Critical patent/CN101369227A/zh
Priority to PCT/CN2009/072138 priority patent/WO2009152731A1/zh
Application granted granted Critical
Publication of CN101369227B publication Critical patent/CN101369227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/209Features 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 characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • 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/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种游戏虚拟机,包括管理服务线程和客户端线程;其中,所述管理服务线程,用于管理游戏用户,完成与客户端线程和游戏服务端之间的消息交互,并用于加载游戏服务端;所述客户端线程,用于启动游戏客户端,并通过调用接口实现与游戏客户端的双向通讯。本发明还公开了一种由所述游戏虚拟机、以及游戏客户端和游戏服务端组成的游戏开发系统,所述游戏虚拟机位于游戏客户端和游戏服务端之间,模拟游戏平台和游戏服务器的基本功能;本发明还公开了一种基于所述游戏虚拟机实现的游戏开发方法。采用本发明,能够减少游戏服务端开发、配置及调试的复杂度,降低对开发机器性能和数量的要求、以及资源的占用。

Description

一种游戏虚拟机及其实现的游戏开发系统和方法
技术领域
本发明涉及游戏开发技术,特别是指一种游戏虚拟机以及基于其实现的游戏开发系统和方法。
背景技术
在目前的互联网应用中,随着即时通讯(IM,Instant Messaging)的迅速发展,基于即时通讯的各种应用和服务越来越广泛地被推广使用,比如:多人在线游戏,同时由两个或两个以上用户进入并参与同一个游戏等等。
现有技术中,游戏开发已有一些较为成熟的解决方案,如一些即时通讯游戏中休闲小游戏的开发,目前已有的一种游戏开发系统如图1所示,包括:游戏客户端10、游戏平台20、游戏服务器30、以及游戏服务端40。其中,游戏客户端10,用于为游戏用户提供游戏界面,并实现游戏逻辑;游戏平台20,在实际应用中也称为游戏大厅,用于与游戏客户端10进行通讯,负责游戏用户进入、退出游戏,实现各款游戏的下载、安装、配置、组队、交流、道具购买等功能管理,还用于与游戏服务器30进行网络通讯,获取各种状态,并根据不同状态进行不同处理;游戏服务器30,用于与游戏平台20进行网络通讯,并实现游戏测试、游戏发布、用户状态查询、游戏信息转发、游戏账户认证及管理、账单记录等功能;游戏服务端40,用于负责对应款游戏的游戏逻辑,由游戏服务器30加载运行,每款游戏对应一个游戏服务端。
图1中,游戏客户端10和游戏平台20在Windows环境下运行,游戏服务器30和游戏服务端40在Linux环境下运行;游戏客户端10在游戏平台20中以COM标准接口方式启动,通过COM接口实现游戏客户端10与游戏平台20之间的双向通讯;游戏平台20通过TCP等网络通讯方式,与远程Linux操作系统下的游戏服务器30通讯;游戏服务端40在Linux环境下以共享库(SO,shared object)文件的形式存在,SO文件可以被游戏服务器30调用并加载;游戏服务器30以动态链接库的方式加载游戏服务端40,与游戏服务端40进行接口调用。这里,所述Linux环境下的SO文件类似于Windows环境下的动态链接库(DLL,Dynamic Link Library)文件。
在开发过程中,每次对编辑好代码自测时,游戏服务端40需要将自身在Windows环境下编辑好的代码上传到游戏服务器30所在的Linux机器中,然后用Linux环境下的G++进行编译生成SO文件,最后再启动游戏服务器30运行所生成的SO文件。
现有游戏开发系统在实现过程中存在以下缺陷:
第一,游戏服务端开发繁琐、调试要求高。由于游戏服务端编辑的代码需要先上传到Linux机器编译为SO文件,才能在游戏服务器运行,这样,如果在开发过程中,游戏服务器的运行和预期有差别需要调试时,就需要调试人员对Linux环境以及Linux调试器比较熟悉,这对于Windows程序员来说,难度较大且比较费时。
第二,在开发过程中,游戏服务端处于Linux环境下,对于游戏平台上看到的房间需要在特定服务器上预先配置,这使得每个游戏在开发前都需要配置各自的开发环境,才能使游戏服务器正确的加载游戏服务端,从而导致开发环境的配置非常繁琐、复杂。
第三,由于游戏服务端代码的编译及运行都需要在具有Linux操作系统的服务器上,而这类服务器大都是内部用服务器,只有在开发公司内部才能登录,因此,使游戏开发只能局限在开发公司内部进行,不能随意更换开发地点。
第四,在游戏客户端开发过程中,如果是多人玩的游戏,则需要启动多个游戏平台和多个游戏客户端,游戏平台和游戏客户端的个数与参与游戏的用户数相等,如此,对参与开发的机器的数量和性能有较高要求,增加了资源占用。
发明内容
有鉴于此,本发明的主要目的在于提供一种游戏虚拟机及其实现的游戏开发系统和方法,能够减少游戏服务端开发、配置及调试的复杂度,降低对开发机器性能和数量的要求、以及资源的占用。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种游戏虚拟机,包括管理服务线程和客户端线程;其中,
所述管理服务线程,用于管理游戏用户,完成与客户端线程和游戏服务端之间的消息交互,并用于加载游戏服务端;
所述客户端线程,用于启动游戏客户端,并通过调用接口实现与游戏客户端的双向通讯。
本发明还提供了一种游戏开发系统,包括游戏客户端和游戏服务端;关键是,该系统还包括位于游戏客户端和游戏服务端之间的游戏虚拟机;
所述游戏虚拟机,通过调用接口与游戏客户端和游戏服务端进行双向通讯,实现游戏用户的管理,并加载动态链接库DLL文件形式的游戏服务端。
上述方案中,所述游戏虚拟机包括管理服务线程和客户端线程;其中,所述管理服务线程,用于管理游戏用户,实现游戏用户进入、退出、参与游戏,完成与客户端线程和游戏服务端之间的消息交互,并用于加载游戏服务端;所述客户端线程,用于启动游戏客户端,并通过调用接口实现与游戏客户端的双向通讯。
其中,所述管理服务线程包括主线程和服务端线程;所述主线程,用于实现游戏用户的管理、以及与服务端线程和客户端线程之间的消息交互;所述服务端线程,用于与游戏服务端进行通讯交互,加载游戏服务端。
上述方案中,所述客户端线程为一个以上,所述游戏客户端为一个以上,客户端线程与游戏客户端一一对应。
上述方案中,所述游戏虚拟机开发和运行于Windows环境下。
本发明还提供了一种游戏开发方法,包括,在游戏客户端和游戏服务端之间设置包含一个以上线程的游戏虚拟机;该方法还包括:
游戏虚拟机启动时,启动并初始化游戏虚拟机中的管理服务线程,之后加载DLL文件形式的游戏服务端并运行;
游戏用户在游戏虚拟机中选定自身参与游戏所需座位时,游戏虚拟机启动并初始化对应该游戏用户的客户端线程;
初始化后的客户端线程读取一个游戏标识ClassID,并启动参与所读取游戏标识对应的游戏的游戏客户端,之后与游戏客户端进行通讯交互。
其中,所述管理服务线程包括主线程和服务端线程;相应的,所述启动并初始化游戏虚拟机中的管理服务线程为:启动主线程和服务端线程,并初始化服务端线程;所述加载DLL文件形式的游戏服务端为:由初始化后的服务端线程加载DLL文件形式的游戏服务端。
本发明提供了一种在Windows环境下开发的游戏虚拟机及其实现的游戏开发系统和方法,在游戏客户端和游戏服务端之间设置游戏虚拟机,由游戏虚拟机来模拟完成游戏平台和游戏服务器的基本功能,与游戏客户端和游戏服务端进行交互。由于游戏虚拟机运行在Windows环境下,对于游戏客户端,仍保持通过COM接口实现双向通讯;对于游戏服务端,只需将游戏服务端编辑好的代码编译为Windows环境下的DLL文件加载并运行即可,因此,即使需要对运行的游戏服务端进行调试,只需在Windows环境下,这对Windows程序员来说是非常简单易行的,大大降低了开发复杂度,以及对开发、调试的要求。
由于游戏服务端的开发和运行均在Windows环境下,因此无需在每个游戏开发前单独配置各自的开发环境;并且,因为不需要在编译及运行时将游戏服务端上载到具有Linux操作系统的服务器上,所以可将开发地点延伸到开发公司之外,如在家中,而不必局限于只能在开发公司内进行开发。
本发明的游戏虚拟机通过启动不同的线程,分别实现游戏用户管理、消息转发、以及与游戏客户端和游戏服务端的交互,并且,对于不同的游戏客户端,启动不同的线程与之对应,也就是说,如果有N个游戏用户参与的游戏,只需启动N个线程分别对应N个游戏客户端,无需再启动N个游戏平台。另外,游戏虚拟机还可以跨PC运行,比如:三人参与的游戏,游戏虚拟机可以实现在三个不同的PC上,各启动一个游戏客户端,使三个游戏客户端正常的进行游戏。如此,不仅能降低对开发机器数量和性能的要求,还能减少不必要的资源占用,大大节省成本。
附图说明
图1为现有技术中游戏开发系统的组成结构示意图;
图2为本发明中游戏开发系统的组成结构示意图;
图3为本发明游戏虚拟机的一种实现效果示意图。
具体实施方式
本发明的基本思想是:在游戏客户端和游戏服务端之间设置游戏虚拟机,由游戏虚拟机模拟完成游戏平台和游戏服务器的基本功能,与游戏客户端和游戏服务端进行交互。进一步的,在游戏虚拟机中创建有与游戏客户端交互、与游戏服务端交互、实现游戏用户管理及消息转发的线程。
本发明的游戏开发系统如图2所示,包括游戏客户端10、游戏服务端40,关键在于还包括游戏虚拟机50,位于游戏客户端10和游戏服务端40之间,用于模拟实现原有游戏平台和游戏服务器的基本及常用功能,主要模拟的功能有:游戏用户进入、游戏用户退出、游戏逻辑消息转发、断线重回以及旁观等。
图2中,游戏虚拟机50在Windows环境下开发和运行,游戏客户端10在游戏虚拟机50中以COM标准接口方式启动,通过COM接口实现游戏客户端10与游戏虚拟机50之间的双向通讯;游戏虚拟机50加载DLL文件形式的游戏服务端40,与游戏服务端40进行接口调用。
为了模拟实现原有游戏平台和游戏服务器的基本功能,游戏虚拟机中主要创建有:主线程、服务端线程和客户端线程,其中,主线程用于实现对所有游戏用户的管理,实现游戏用户进入、退出、参与游戏,还用于与服务端线程和客户端线程之间的消息交互;服务端线程用于加载游戏服务端,并通过设置好的接口与游戏服务端相互调用;客户端线程用于启动游戏客户端,并通过调用游戏客户端的COM接口实现与游戏客户端的双向通讯,根据参与游戏的游戏用户个数可以有多个客户端线程,每个客户端线程对应一个游戏客户端。在实际应用中,服务端线程也可以并入主线程中,合并为一个线程,也就是说,由一个线程同时完成基本主线程功能和服务端功能。
可将主线程和服务端线程、或同时具有基本主线程功能和服务端功能的线程统称为管理服务线程,换句话说就是,管理服务线程可以由主线程和服务端线程两个线程组成,也可以仅为同时具有基本主线程功能和服务端功能的一个线程。下面以管理服务线程由主线程和服务端线程组成为例,具体说明每个线程的功能及实现。
对于主线程,游戏虚拟机启动时,主线程先从预先设置好的配置文件中读取游戏用户信息,该配置文件保存有若干个游戏用户最基本的信息,比如:即时通讯号、是否超级游戏用户、积分、游戏币等信息,游戏虚拟机所得到的游戏用户信息,在给客户端线程和服务端线程发送游戏用户进入、退出等消息时会用到。该主线程与客户端线程和服务端线程之间的通讯,可通过消息应用编程接口如PostThreadMessage API实现;反之,客户端线程和服务端线程与主线程之间的通讯,可通过消息应用编程接口如PostMessage API实现。
一般,消息的内容保存在堆中,并且,内容的指针和长度以参数的方式传递,指针参数和长度参数可分别命名为Wparam和Lparam。为保证消息时序的正确性,客户端线程和服务端线程不直接通讯,所有通讯均由主线程按规定方式转发。这里,所述按规定方式转发是指有些消息需要发给某个客户端线程,有些需要发给所有客户端线程,有些需要发给部分客户端线程等等。
基于此,主线程可模拟游戏平台最主要和常用的功能,如:游戏用户进入、游戏用户退出、游戏逻辑消息的转发、以及游戏用户断线重回等功能。对于断线重回功能,主线程先以消息方式通知客户端线程,同时通过消息方式或接口调用方式通知服务端某个游戏用户掉线,并将该游戏用户状态标记为掉线,如果游戏用户在规定时间内点击桌子上相应断线的游戏用户头像,主线程就会通知客户端和服务端相应游戏用户断线重回。这里,如果主线程与服务端线程是两个线程,则主线程通过消息方式通知服务端线程;如果主线程与服务端线程合并为一个线程,则主线程功能通过接口调用方式通知服务端功能。
对于服务端线程,游戏虚拟机启动后就会启动服务端线程,该服务端线程被封装成一个类,这个类可根据需要任意命名,如命名为CSoWorkingThread,该类提供了一个命名为CreateSoWorkingThread的公共(Public)方法。服务端线程需要先初始化,具体实现是:先由主线程创建一个CSoWorkingThread对象,然后调用该对象的CreateSoWorkingThread方法并传入必要的参数,即可初始化好服务端线程。其中,CSoWorkingThread需要继承自ITable接口并实现其接口,该接口是作为游戏服务器必须继承和实现的。
其中,所述ITable接口是指游戏服务器提供给游戏服务端调用的接口,主要有设置积分、发送游戏逻辑消息、获取积分等接口,由于游戏服务端没有网络或数据库操作功能,所以需要游戏服务器提供相应接口。
服务端线程启动并初始化好后,使用加载库应用编程接口LoadLibrary API加载DLL文件形式的游戏服务端,并使用获取过程地址API(GetProcAddressAPI)获得游戏服务端的游戏生成(CreateGame)接口,并将该接口的指针转换为ITable类型的指针,作为参数传入游戏服务端,之后,游戏服务端就可以利用转换后的ITable类指针调用CSoWorkingThread类中实现的ITable接口。其中,所加载的DLL文件形式的游戏服务端是在Windows环境下编译而成的。
对于客户端线程,当游戏用户每次选中游戏虚拟机中游戏桌上某个座位时,游戏虚拟机会启动一个客户端线程,该客户端线程被封装成一个类,这个类可根据需要任意命名,如命名为CClientWorkingThread,该类提供了一个命名为CreateClientWorkingThread的public方法。客户端线程需要先初始化,具体实现是:先由主线程创建一个CClientWorkingThread对象,然后调用该对象的CreateClientWorkingThread方法并传入必要参数,即可初始化好客户端线程。
客户端线程启动并初始化好后,客户端线程会从预先设置好的配置文件中读取一个游戏标识ClassId,每个ClassId对应一个游戏;客户端线程通过COM的方法启动参与所读取ClassId对应的游戏的游戏客户端,此时,客户端线程即可调用游戏客户端的COM接口。客户端线程通过COM方式启动游戏客户端时,由于COM具有位置透明性,所以,在启动前可以选择游戏客户端的启动位置,比如:选择本机或其他PC,相应的当前客户端线程会在所选的位置启动游戏客户端。
客户端线程必须继承并实现IGame接口,并将该接口的指针转换为IGame类型的指针设置给游戏客户端,游戏客户端根据所设置的指针即可调用客户端线程的IGame接口。这里,所述IGame接口主要实现三个功能:发送游戏逻辑消息、发送聊天消息、发送其他消息,由于游戏客户端没有网络功能,如果想要将消息发送出去,只有调用此接口。
当游戏用户离开时,关闭游戏客户端即可,关闭游戏客户端时,游戏客户端会通知游戏虚拟机中对应的客户端线程。
在实际应用中,每选中游戏虚拟机中游戏桌上一个座位就会启动一个客户端线程,也就是说,一个参与游戏的游戏用户对应一个客户端线程、对应一个游戏客户端。
基于上述开发系统,本发明的开发方法包括以下步骤:
首先,在游戏客户端和游戏服务端之间设置包含多类线程的游戏虚拟机;
游戏虚拟机启动时,启动并初始化游戏虚拟机中的管理服务线程;这里,管理服务线程可以由主线程和服务端线程两个线程组成,也可以仅为同时具有基本主线程功能和服务端功能的一个线程;
之后,加载DLL文件形式的游戏服务端并运行;
当游戏用户在游戏虚拟机中选定自身参与游戏所需的座位时,游戏虚拟机启动对应该游戏用户的客户端线程,并初始化所启动的客户端线程;
初始化后的客户端线程读取一个游戏标识ClassID,并启动参与所读取ClassID对应的游戏的游戏客户端,之后与游戏客户端进行通讯交互,实现游戏用户的进入、退出以及参与。
图3为本发明游戏虚拟机的一种实现效果示意图,如图3所示,游戏虚拟机中可包括游戏用户管理、游戏用户信息、游戏用户操作和游戏桌设置几部分。
在具体应用中,游戏用户也可称为玩家,游戏用户管理包括空闲玩家列表、在玩玩家列表和旁观玩家列表,分别给出当前游戏虚拟机中处于空闲状态的、参与游戏的、以及旁观游戏的游戏用户,处于空闲状态的游戏用户通过选择游戏桌上的座位,可以加入到参与游戏状态的游戏用户组中、或加入到旁观游戏状态的游戏用户组中;处于参与游戏或旁观游戏状态的游戏用户如果离开当前所在座位,会自动加入到处于空闲状态的游戏用户组中。通过游戏用户管理可获知各个游戏用户所处的游戏状态,并获知处于各种游戏状态的游戏用户个数。
游戏用户信息给出了游戏用户的基本信息,如:游戏用户的号码、昵称、超级玩家、积分、游戏币等信息,其中,有些信息是可以修改并更新保存的,如:积分、游戏币等信息。
游戏用户操作给出了几种可选的操作,游戏用户可以通过点击相应按钮实现相应功能,如:让该玩家掉线,选择某个游戏用户后点击此按钮,则相应游戏用户掉线,该游戏用户对应的游戏桌上的座位会变为灰色,在预设的时间内,可通过点击该灰色座位让相应游戏用户断线重回,即回到游戏桌继续游戏,如果超出规定时间,游戏虚拟机会给其他游戏用户和游戏服务端发送该游戏用户退出的消息。再如:解散游戏,当前桌子在游戏过程中时,点击此按钮可以解散当前游戏。
游戏桌设置中可以设置每桌最大人数,即某个游戏桌上最多可以有几个人参与游戏,选择后,相应的游戏桌会发生变化,比如:选择2人桌,游戏桌上只有两个座位,选择6人桌,游戏桌上就变为六个座位,最近的选择会保存在配置文件中。游戏桌设置中还可以设置客户端启动的位置,即客户端在本机启动还是在其他机器上启动。
游戏虚拟机中的游戏桌,在游戏没开始时点击某个空闲座位会根据客户端启动位置的选择,在本机或其他机器启动一个参与游戏的游戏客户端;当处于游戏中状态时,点击某个坐有游戏用户的座位会根据客户端启动位置的选择,在本机或其他机器启动一个旁观游戏的游戏客户端。可通过让游戏桌亮起表示游戏在进行中,让游戏桌变灰表示游戏结束。
这里,旁观的游戏用户也对应一个客户端线程,与处于游戏状态的客户端线程主要区别在于游戏状态不同,相应的,游戏的逻辑消息有些只发给处于游戏状态的游戏用户,有些只发给旁观的游戏用户,相应有不同的处理。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种游戏虚拟机,其特征在于,包括管理服务线程和客户端线程;其中,
所述管理服务线程,用于管理游戏用户,完成与客户端线程和游戏服务端之间的消息交互,并用于加载游戏服务端;
所述客户端线程,用于启动游戏客户端,并通过调用接口实现与游戏客户端的双向通讯。
2.根据权利要求1所述的游戏虚拟机,其特征在于,所述管理服务线程包括主线程和服务端线程;
所述主线程,用于实现游戏用户的管理、以及与服务端线程和客户端线程之间的消息交互;
所述服务端线程,用于与游戏服务端进行通讯交互,加载游戏服务端。
3.根据权利要求1或2所述的游戏虚拟机,其特征在于,所述客户端线程为一个以上客户端线程,每个客户端线程对应一个游戏客户端。
4.一种游戏开发系统,包括游戏客户端和游戏服务端;其特征在于,该系统还包括位于游戏客户端和游戏服务端之间的游戏虚拟机;
所述游戏虚拟机,通过调用接口与游戏客户端和游戏服务端进行双向通讯,实现游戏用户的管理,并加载动态链接库DLL文件形式的游戏服务端。
5.根据权利要求4所述的游戏开发系统,其特征在于,所述游戏虚拟机包括管理服务线程和客户端线程;其中,
所述管理服务线程,用于管理游戏用户,实现游戏用户进入、退出、参与游戏,完成与客户端线程和游戏服务端之间的消息交互,并用于加载游戏服务端;
所述客户端线程,用于启动游戏客户端,并通过调用接口实现与游戏客户端的双向通讯。
6.根据权利要求5所述的游戏开发系统,其特征在于,所述管理服务线程包括主线程和服务端线程;
所述主线程,用于实现游戏用户的管理、以及与服务端线程和客户端线程之间的消息交互;
所述服务端线程,用于与游戏服务端进行通讯交互,加载游戏服务端。
7.根据权利要求5或6所述的游戏开发系统,其特征在于,所述客户端线程为一个以上,所述游戏客户端为一个以上,客户端线程与游戏客户端一一对应。
8.根据权利要求4、5或6所述的游戏开发系统,其特征在于,所述游戏虚拟机开发和运行于Windows环境下。
9.一种游戏开发方法,其特征在于,在游戏客户端和游戏服务端之间设置包含一个以上线程的游戏虚拟机;该方法还包括:
游戏虚拟机启动时,启动并初始化游戏虚拟机中的管理服务线程,之后加载DLL文件形式的游戏服务端并运行;
游戏用户在游戏虚拟机中选定自身参与游戏所需座位时,游戏虚拟机启动并初始化对应该游戏用户的客户端线程;
初始化后的客户端线程读取一个游戏标识ClassID,并启动参与所读取游戏标识对应的游戏的游戏客户端,之后与游戏客户端进行通讯交互。
10.根据权利要求9所述的游戏开发方法,其特征在于,所述管理服务线程包括主线程和服务端线程;
相应的,所述启动并初始化游戏虚拟机中的管理服务线程为:启动主线程和服务端线程,并初始化服务端线程;
所述加载DLL文件形式的游戏服务端为:由初始化后的服务端线程加载DLL文件形式的游戏服务端。
11.根据权利要求9或10所述的游戏开发方法,其特征在于,所述客户端线程为一个以上客户端线程,每个客户端线程对应一个游戏客户端。
12.根据权利要求9或10所述的游戏开发方法,其特征在于,所述游戏虚拟机开发和运行于Windows环境下。
CN2008101004606A 2008-06-16 2008-06-16 一种游戏虚拟机及其实现的游戏开发系统和方法 Active CN101369227B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2008101004606A CN101369227B (zh) 2008-06-16 2008-06-16 一种游戏虚拟机及其实现的游戏开发系统和方法
PCT/CN2009/072138 WO2009152731A1 (zh) 2008-06-16 2009-06-05 一种游戏虚拟机及其实现的游戏开发系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101004606A CN101369227B (zh) 2008-06-16 2008-06-16 一种游戏虚拟机及其实现的游戏开发系统和方法

Publications (2)

Publication Number Publication Date
CN101369227A true CN101369227A (zh) 2009-02-18
CN101369227B CN101369227B (zh) 2012-04-25

Family

ID=40413061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101004606A Active CN101369227B (zh) 2008-06-16 2008-06-16 一种游戏虚拟机及其实现的游戏开发系统和方法

Country Status (2)

Country Link
CN (1) CN101369227B (zh)
WO (1) WO2009152731A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009152731A1 (zh) * 2008-06-16 2009-12-23 腾讯科技(深圳)有限公司 一种游戏虚拟机及其实现的游戏开发系统和方法
CN103716405A (zh) * 2013-12-31 2014-04-09 福建天晴数码有限公司 游戏服务器远程共享系统及方法
WO2015090063A1 (en) * 2013-12-16 2015-06-25 Tencent Technology (Shenzhen) Company Limited Systems and methods for data processing for games
CN105721239A (zh) * 2016-01-18 2016-06-29 网易(杭州)网络有限公司 游戏测试方法、装置及游戏系统
CN105912474A (zh) * 2016-04-26 2016-08-31 网易(杭州)网络有限公司 一种游戏在线调试方法、系统及编辑服务端
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN109464806A (zh) * 2018-11-01 2019-03-15 韶关市武江区高骅金属科技服务中心 一种新型棋牌类游戏平台

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897146A (zh) * 2017-02-09 2017-06-27 青岛海信移动通信技术股份有限公司 一种终端的麦克风的数据处理方法和具有麦克风的终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6152824A (en) * 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
CN101021884B (zh) * 2007-03-28 2010-10-13 成都金山互动娱乐科技有限公司 一种网络游戏服务器中动态加载配置档和脚本的方法
CN101068180B (zh) * 2007-06-15 2010-04-07 腾讯科技(深圳)有限公司 网络游戏的主控系统、管理系统及管理方法
CN101369227B (zh) * 2008-06-16 2012-04-25 腾讯数码(深圳)有限公司 一种游戏虚拟机及其实现的游戏开发系统和方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009152731A1 (zh) * 2008-06-16 2009-12-23 腾讯科技(深圳)有限公司 一种游戏虚拟机及其实现的游戏开发系统和方法
WO2015090063A1 (en) * 2013-12-16 2015-06-25 Tencent Technology (Shenzhen) Company Limited Systems and methods for data processing for games
CN103716405A (zh) * 2013-12-31 2014-04-09 福建天晴数码有限公司 游戏服务器远程共享系统及方法
CN103716405B (zh) * 2013-12-31 2017-06-06 福建天晴数码有限公司 游戏服务器远程共享系统及方法
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN106294094B (zh) * 2015-05-13 2020-01-31 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN105721239A (zh) * 2016-01-18 2016-06-29 网易(杭州)网络有限公司 游戏测试方法、装置及游戏系统
CN105912474A (zh) * 2016-04-26 2016-08-31 网易(杭州)网络有限公司 一种游戏在线调试方法、系统及编辑服务端
CN105912474B (zh) * 2016-04-26 2019-09-24 网易(杭州)网络有限公司 一种游戏在线调试方法、系统及编辑服务端
CN109464806A (zh) * 2018-11-01 2019-03-15 韶关市武江区高骅金属科技服务中心 一种新型棋牌类游戏平台

Also Published As

Publication number Publication date
CN101369227B (zh) 2012-04-25
WO2009152731A1 (zh) 2009-12-23

Similar Documents

Publication Publication Date Title
CN101369227B (zh) 一种游戏虚拟机及其实现的游戏开发系统和方法
KR101029425B1 (ko) 멀티 유저 네트워크 게임의 제작 시스템 및 방법
CN100367201C (zh) 用于向软件应用程序动态地添加特征的系统和方法
US20070005704A1 (en) Multi-participant online activities
CN111695827B (zh) 业务流程的管理方法、装置、电子设备及存储介质
CN101576978A (zh) 分布式工作流制定方法、执行方法及执行系统
CN108399331A (zh) 应用进程试用方法和系统
CN113434197A (zh) 资源发布方法、装置、计算机设备及计算机可读存储介质
CN114979029A (zh) 一种虚拟机器人的控制方法、装置、设备及存储介质
CN101364200B (zh) 嵌入式MIDlet调试软件的断点实现方法
Kuuskeri et al. Peer-to-peer collaboration in the Lively Kernel
US7222113B2 (en) Method and system for a software agent control architecture
Greenhalgh et al. Addressing mobile phone diversity in ubicomp experience development
Wallace et al. A situated evaluation of the Object Management Group's (OMG) Object Management Architecture (OMA)
WO2003081389A2 (en) Visual application development system and method
Chen et al. Android stack machine
JPH09160847A (ja) クライアント・サーバ型分散処理システム
Smeele et al. Choreographic programming of isolated transactions
KR100973543B1 (ko) 모바일 응용 애플리케이션의 동적 아키텍처를 모델링하기위한 방법 및 그 장치
CN117085334A (zh) 线上剧本杀模板构建方法和线上剧本杀运行方法及装置
CN106055555A (zh) 一种发表评论的方法及系统
CN116781763A (zh) 信息处理方法及相关产品
Ågren et al. Multi Instant Messaging Client
KR20230030499A (ko) 게임 서비스와 관련된 기능을 제공하기 위한 전자 장치 및 그 방법 및 기록 매체
KR20220053434A (ko) 테스트 자동화 서비스 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant