WO2009152731A1 - Game virtual machine and game development system and method for realizing the same - Google Patents
Game virtual machine and game development system and method for realizing the same Download PDFInfo
- Publication number
- WO2009152731A1 WO2009152731A1 PCT/CN2009/072138 CN2009072138W WO2009152731A1 WO 2009152731 A1 WO2009152731 A1 WO 2009152731A1 CN 2009072138 W CN2009072138 W CN 2009072138W WO 2009152731 A1 WO2009152731 A1 WO 2009152731A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- game
- thread
- client
- server
- virtual machine
- Prior art date
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/71—Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/20—Features 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/209—Features 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods 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
Definitions
- the present invention relates to game development techniques, and more particularly to a game virtual machine and a game development system and method based on reality. Background of the invention
- FIG. 1 A currently existing game development system is shown in FIG. 1, and includes: a game client 10, a game platform 20, a game server 30, and a game month 40.
- the game client 10 is configured to provide a game interface for the game user and implement game logic.
- the game platform 20, also referred to as a game lobby in actual application, is used for communicating with the game client 10, and is responsible for the game user entering, Exit the game, realize the function management of downloading, installing, configuring, assembling, communicating, and props purchasing various games.
- the server 30 is configured to perform network communication with the game platform 20, and implement functions such as game test, game release, user status query, game information forwarding, game account authentication and management, and billing record; and the game server 40 is responsible for the corresponding section.
- the game logic of the game is loaded and run by the game server 30, and each game corresponds to one game terminal.
- the game client 10 and the game platform 20 are run in a Windows environment
- the game server 30 and the game server 40 are operated in a Linux environment
- the game client 10 is started in the game platform 20 by a COM standard interface, and the two-way communication between the game client 10 and the game platform 20 is realized through the COM interface
- 20 communicates with the game server 30 under the remote Linux operating system through a network communication method such as TCP
- the game server 40 exists in the form of a shared library (SO) file in the Linux environment, and the SO file can be called by the game server 30.
- the game server 30 loads the game server 40 in the manner of a dynamic link library, and makes an interface call with the game server 40.
- the SO file in the Linux environment is similar to a dynamic link library (DLL) file in the Windows environment.
- DLL dynamic link library
- the game server 40 needs to upload the code edited by itself in the Windows environment to the Linux machine where the game server 30 is located, and then use G++ in the Linux environment. Compile and generate the SO file, and finally start the game server 30 to run the generated SO file.
- the existing game development system has the following defects in the implementation process:
- the development of the game server is cumbersome and requires high debugging. Since the code edited by the game server needs to be uploaded to a Linux machine and compiled into a SO file, it can be run on the game server. Therefore, if the game server runs and expects to be different during the development process, debugging is required.
- the Linux environment and the Linux debugger are familiar, which is difficult and time consuming for Windows programmers.
- the game server is in the Linux environment, and the rooms seen on the game platform need to be pre-configured on a specific server, which requires each game to be configured with its own development environment before development.
- the game server correctly loads the game server, which makes the configuration of the development environment very cumbersome and complicated.
- the main object of the present invention is to provide a game virtual machine, which can reduce the complexity of development, configuration and debugging of the game server, and reduce the requirements on the performance and quantity of the development machine and the occupation of resources.
- Another object of the present invention is to provide a game development system capable of reducing the complexity of development, configuration, and debugging of a game server, and reducing the requirements on the performance and quantity of the development machine and the occupation of resources.
- the present invention provides a game virtual machine, including a management service thread and a client thread;
- the management service thread is configured to manage a game user, complete message interaction with the client thread and the game server, and is used to load the game server;
- the client thread is used to start the game client, and realizes two-way communication with the game client through the calling interface.
- the invention also provides a game development system, including a game client and a game service
- the key is to further include a game virtual machine between the game client and the game server; the game virtual machine performs two-way communication with the game client and the game service end through the calling interface to realize management of the game user. And load the game server in the form of a dynamic link library DLL file.
- the game virtual machine includes a management service thread and a client thread; wherein the management service thread is used to manage a game user, complete message interaction with the client thread and the game server, and is used for loading
- the game server is configured to start a game client, and implement two-way communication with the game client by calling the interface.
- the management service thread includes a main thread and a server thread; the main thread is used to implement management of a game user, and message interaction with a server thread and a client thread; In communication with the game server, load the game server.
- the client thread is more than one, and each client thread corresponds to one game client.
- the game virtual machine is developed and operated in a Windows environment.
- the present invention also provides a game development method, including: setting a game virtual machine including more than one thread between a game client and a game server; the method further includes:
- the management service thread in the game virtual machine is started and initialized, and the game server in the form of a dynamic link library DLL file is loaded and run by using the management service thread;
- the game virtual machine starts and initializes the client thread corresponding to the game user;
- the initialized client thread reads a game identification ClassID and starts a game client participating in the game corresponding to the read game identification, and then communicates with the game client.
- the management service thread includes a main thread and a server thread; correspondingly, the Starting and initializing the management service thread in the game virtual machine is: starting the main thread and the server thread, and initializing the server thread; the game server in the form of loading the DLL file is: loading the DLL file form by the initialized server thread Game server.
- the invention provides a game virtual machine developed in the Windows environment and a game development system and method thereof.
- the game virtual machine is set between the game client and the game server, and the game virtual machine is used to simulate the game platform and The basic functions of the game server, interacting with the game client and the game server. Since the game virtual machine runs under the Windows environment, for the game client, the two-way communication through the COM interface is still maintained; for the game server, only the code compiled by the game server is compiled into a DLL file in the Windows environment to be loaded and run. That's it, so even if you need to debug the running game server, it only needs to be very easy for Windows programmers in the Windows environment, which greatly reduces the development complexity and development and debugging. Requirements.
- the development location can be extended beyond the development company, such as at home, and not necessarily limited to development within the development company.
- the game virtual machine of the present invention realizes game user management, message forwarding, and interaction with the game client and the game server respectively by starting different threads, and, for different game clients, starts different threads to correspond thereto, that is, Say, if there are N game users participating in the game, only need to start N threads corresponding to N game clients, no need to start N game platforms.
- the game virtual machine can also run across PCs, such as: three-player games, the game virtual machine can be implemented on three different PCs, each launching a game client, so that the three game clients play the game normally. In this way, not only can the requirements on the number and performance of development machines be reduced, but also unnecessary resource occupation can be reduced, resulting in significant cost savings.
- FIG. 1 is a schematic structural diagram of a game development system in the prior art
- FIG. 2 is a schematic structural diagram of a game development system in the present invention.
- FIG. 3 is a schematic diagram of an implementation effect of the game virtual machine of the present invention. Mode for carrying out the invention
- a game virtual machine is set between the game client and the game server, and the basic functions of the game platform and the game server are simulated by the game virtual machine, and interact with the game client and the game server. Further, threads are created in the game virtual machine that interact with the game client, interact with the game server, and implement game user management and message forwarding.
- the game development system of the present invention includes a game client 10 and a game server 40.
- the key is to further include a game virtual machine 50.
- the game virtual machine 50 is located between the game client 10 and the game server 40, and is used for simulating the basic and common functions of the original game platform and the game server.
- the main simulated functions are: game user entry, game user exit, game logic Message forwarding, as well as disconnection and spectator.
- the game virtual machine 50 is developed and run in a Windows environment.
- the game client 10 is started in the game virtual machine 50 in a COM standard interface manner, and the two-way between the game client 10 and the game virtual machine 50 is implemented through the COM interface.
- the game virtual machine 50 loads the game server 40 in the form of a DLL file, and makes an interface call with the game server 40.
- the game virtual machine 50 mainly creates: a main thread, a server thread and a client thread, wherein the main thread is used to implement management of all game users, including games. Users enter, exit, and participate in games Etc., also used for message interaction with the server thread and the client thread; the server thread is used to load the game server 40, and is called by the game server 40 through the set interface; the client thread is used to start
- the game client 10 implements two-way communication with the game client 10 by calling the COM interface of the game client 10. According to the number of game users participating in the game, there may be multiple client threads, and each client thread corresponds to one game client. End 10.
- the server thread can also be merged into the main thread and merged into one thread. That is to say, the main thread function and the server thread function are simultaneously completed by one thread.
- the main thread and the server thread, or the thread having both the main thread function and the server thread function, are collectively referred to as a management service thread.
- the management service thread can be composed of two threads: the main thread and the server thread. It can be just one thread that has both the main thread function and the server thread function.
- the following is an example of the management service thread consisting of the main thread and the server thread, which specifies the function and implementation of each thread.
- the main thread when the game virtual machine 50 is started, the main thread first reads the game user information from the preset configuration file, and the configuration file stores the most basic information of the game users, such as: instant messaging number, super
- the game user information obtained by the game virtual machine 50 such as game users, points, game coins, etc., is used when sending a message such as a game user entering or exiting to the client thread and the server thread.
- the communication between the main thread and the client thread and the server thread can be implemented through a message application programming interface such as the PostThreadMessage API; conversely, the communication between the client thread and the server thread and the main thread can be through the message application programming interface. As implemented by the PostMessage API.
- the content of the message is stored in the heap, and the pointer and length of the content are passed as parameters.
- the pointer parameter and the length parameter can be named Wparam and Lparam, respectively.
- the client thread and the service end thread do not communicate directly, and all communication is forwarded by the main thread in a prescribed manner.
- the forwarding according to the specified manner means that some messages need to be sent to a certain client thread, some need to be sent to all client threads, and some need to be sent. Give some client threads and so on.
- the main thread can simulate the most important and commonly used functions of the game platform, such as: game user entry, game user exit, game logic message forwarding, and game user disconnection.
- the main thread first informs the client thread by message, and notifies the server thread of a game user to drop the line by means of message mode or interface call mode, and marks the game user status as dropped, if the game
- the main thread will notify the client thread and the server thread that the corresponding game user is disconnected.
- the main thread and the server thread are two threads, the main thread notifies the server thread by means of a message; if the main thread and the server thread merge into one thread, the main thread notifies the server thread by the interface calling manner.
- the game virtual machine 50 starts the server thread, and the server thread is encapsulated into a class.
- This class can be arbitrarily named according to requirements, such as named CSoWorkingThread, which provides a name named CreateSoWorkingThread. Public method.
- the server thread needs to be initialized first.
- the specific implementation is as follows: First, create a CSoWorkingThread object by the main thread, then call the CreateSoWorkingThread method of the object and pass in the necessary parameters to initialize the line of the service.
- CSoWorkingThread needs to inherit from the ITable interface and implement its interface, which must be inherited and implemented as a game server.
- the ITable interface refers to an interface that the game server provides to the game server 40 to call, and mainly has an interface for setting points, sending game logic messages, and obtaining points. Since the game server 40 does not have network or database operation functions, the game is required. The server provides the corresponding interface.
- the game server 40 in the form of a DLL file is loaded by using the load library application programming interface LoadLibrary API, and the game generation terminal 40 is generated using the GetProc Address API.
- the (CreateGame) interface converts the pointer of the interface into a pointer of the ITable type and passes it as a parameter to the game server 40.
- the game server 40 can use the converted ITable class pointer to call the ITable interface implemented in the CSoWorkingThread class. .
- the game service terminal 40 in the form of the loaded DLL file is compiled in the Windows environment.
- the game virtual machine 50 launches a client thread, which is encapsulated into a class, which can be Name it arbitrarily according to your needs, such as CClientWorkingThread, which provides a public method named CreateClientWorkingThread.
- the client thread needs to be initialized first.
- the specific implementation is as follows: First, create a CClientWorkingThread object by the main thread, then call the CreateClientWorkingThread method of the object and pass in the necessary parameters to initialize the client thread.
- the client thread After the client thread is started and initialized, the client thread reads a game identifier Classld from the preset configuration file, and each Classld corresponds to a game; the client thread starts the participation of the read Classld corresponding to the COM thread.
- the game client 10 of the game at this time, the client thread can call the COM interface of the game client 10.
- the startup position of the game client 10 can be selected before starting, for example: selecting the local or other PC, the corresponding current client thread The game client 10 will be launched at the selected location.
- the client thread must inherit and implement the IGame interface, and convert the pointer of the interface into a pointer of the IGame type to the game client 10.
- the game client 10 can call the IGame interface of the client thread according to the set pointer.
- the IGame interface mainly implements three functions: sending a game logic message, sending a chat message, and sending other messages. Since the game client 10 does not have a network function, if the message is to be sent out, only the call is made. This interface.
- the game client 10 When the game user leaves, the game client 10 is closed. When the game client 10 is closed, the game client 10 notifies the corresponding client thread in the game virtual machine 50.
- a seat on the game table in each selected game virtual machine 50 initiates a client thread, that is, a game user participating in the game corresponds to a client thread and corresponds to a game client 10.
- the development method of the present invention includes the following steps:
- a game virtual machine including a plurality of types of threads is set between the game client and the game server;
- the game virtual machine When the game virtual machine starts, it starts and initializes the management thread in the game virtual machine; it is only one thread that has both the main thread function and the server thread function;
- the game virtual machine starts the client thread corresponding to the game user, and initializes the activated client thread
- the initialized client thread reads a game identifier ClassID and starts a game client participating in the game corresponding to the read ClassID, and then communicates with the game client to implement entry, exit, and participation of the game user.
- FIG. 3 is a schematic diagram of an implementation effect of the game virtual machine of the present invention.
- the game virtual machine may include game user management, game user information, game user operation, and game table settings.
- the game user may also be referred to as a player
- the game user management includes an idle player list, a play player list, and a bystander player list, respectively giving the game virtual machine in an idle state, participating in the game, and watching the game.
- Game user In an idle state
- the game user can enter the game user group participating in the game state, or join the game user group in the watch game state; if the game user in the participating game or the stand-by game state leaves the current game
- the seat will automatically be added to the game user group in the idle state.
- the game state of each game user can be known, and the number of game users in various game states can be known.
- the game user information gives basic information about the game user, such as: game user's number, nickname, super player, points, game currency, etc., some of the information can be modified and updated, such as: points and coins.
- the user operation of the game gives several optional operations.
- the user can click the corresponding button to implement the corresponding function, such as: let the player drop the line, select a game user and click this button, then the corresponding game user is dropped.
- the seat on the game table corresponding to the game user will be grayed out. In the preset time, the corresponding game user can be disconnected by clicking the gray seat, that is, returning to the game table to continue the game, if the game exceeds the specified time, the game
- the virtual machine sends messages to the other game users and game servers that the game user quits. Another example: Dissolve the game, when the table is in the middle of the game, click this button to dismiss the current game.
- the maximum number of tables per table can be set in the game table setting, that is, a maximum of several people can participate in the game on a game table. After the selection, the corresponding game table will change, for example: Select 2 people table, only two seats on the game table , choose 6-person table, the game table will become six seats, the most recent selection will be saved in the configuration file. In the game table settings, you can also set the location where the client is started, that is, whether the client starts up locally or on another machine.
- the game table in the game virtual machine clicking on a free seat when the game is not started will start a game client participating in the game on the local machine or other machine according to the selection of the client startup position; when in the game state, click A seat with a game user will launch a game client for a bystander game on the local or other machine depending on the client's launch location.
- the game table By letting the game table light up, the game is in progress, and the game table is grayed out to indicate the game knot. Bunch.
- the spectator game user also corresponds to a client thread, and the main difference from the client thread in the game state is that the game state is different. Accordingly, the logic message of the game is only sent to the game user in the game state, and some are only sent to the game user. By-the-go game users, there are different treatments.
- a game virtual machine is set between the game client and the game server, and the basic functions of the game platform and the game server are simulated by the game virtual machine, and the game client and the game service end are performed. Interaction. Because the game virtual machine is running at
- the development location can be extended beyond the development company, such as at home, and not necessarily limited to the development company.
- the game virtual machine of the present invention realizes game user management, message forwarding, and interaction with the game client and the game server respectively by starting different threads, and, for different game clients, starts different threads to correspond thereto, that is, Say, if there are N game users participating in the game, only need to start N threads corresponding to N game clients, no need to start N game platforms.
- the game virtual machine can also run across PCs, such as: three-player games, the game virtual machine can be implemented on three different PCs, each launching a game client, so that the three game clients play the game normally. So, not only can you reduce the gap
- the number of machines and performance requirements can also reduce unnecessary resource consumption and save costs.
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
A game virtual machine and a game development system and method for realizing the same, the virtual machine includes a management service thread and a client thread, the management service thread is applied to manage a game user, complete the information alternation with the client thread and a game service end, and applied to load the game service end; the client thread is applied to startup the game client, and realize two-way communication with a game client through calling an interface; the game development system is composed of the game virtual machine, the game client and the game service end, the game virtual machine is fixed between the game client and the game service end, simulates the primary function of a game platform and a game server.
Description
一种游戏虚拟机及其实现的游戏开发系统和方法 技术领域 Game development system and method for game virtual machine and implementation thereof
本发明涉及游戏开发技术, 特别是指一种游戏虚拟机以及基于其实 现的游戏开发系统和方法。 发明背景 The present invention relates to game development techniques, and more particularly to a game virtual machine and a game development system and method based on reality. Background of the invention
在目前的互联网应用中, 随着即时通讯 ( IM, Instant Messaging ) 的迅速发展, 基于即时通讯的各种应用和服务越来越广泛地被推广使 用, 比如: 多人在线游戏, 即同时由两个或两个以上用户进入并参与的 游戏。 In the current Internet applications, with the rapid development of instant messaging (IM), various applications and services based on instant messaging have been widely used, such as: multiplayer online games, that is, by two A game in which two or more users enter and participate.
现有技术中, 游戏开发已有一些较为成熟的解决方案, 如一些即时 通讯游戏中的休闲小游戏的开发。 目前已有的一种游戏开发系统如图 1 所示, 包括: 游戏客户端 10、 游戏平台 20、 游戏良务器 30以及游戏月良 务端 40。 其中, 游戏客户端 10, 用于为游戏用户提供游戏界面, 并实 现游戏逻辑; 游戏平台 20, 在实际应用中也称为游戏大厅, 用于与游戏 客户端 10进行通讯, 负责游戏用户进入、 退出游戏, 实现各款游戏的 下载、 安装、 配置、 组队、 交流以及道具购买等功能管理, 还用于与游 戏服务器 30进行网络通讯, 获取各种状态, 并根据不同状态进行不同 处理; 游戏服务器 30, 用于与游戏平台 20进行网络通讯, 并实现游戏 测试、 游戏发布、 用户状态查询、 游戏信息转发、 游戏账户认证及管理、 账单记录等功能; 游戏服务端 40, 用于负责对应款游戏的游戏逻辑, 由 游戏 务器 30加载运行, 每款游戏对应一个游戏 务端。 In the prior art, game development has some mature solutions, such as the development of casual games in some instant messaging games. A currently existing game development system is shown in FIG. 1, and includes: a game client 10, a game platform 20, a game server 30, and a game month 40. The game client 10 is configured to provide a game interface for the game user and implement game logic. The game platform 20, also referred to as a game lobby in actual application, is used for communicating with the game client 10, and is responsible for the game user entering, Exit the game, realize the function management of downloading, installing, configuring, assembling, communicating, and props purchasing various games. It is also used for network communication with the game server 30, obtaining various states, and performing different processing according to different states; The server 30 is configured to perform network communication with the game platform 20, and implement functions such as game test, game release, user status query, game information forwarding, game account authentication and management, and billing record; and the game server 40 is responsible for the corresponding section. The game logic of the game is loaded and run by the game server 30, and each game corresponds to one game terminal.
图 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 )文件。 In Figure 1, the game client 10 and the game platform 20 are run in a Windows environment, The game server 30 and the game server 40 are operated in a Linux environment; the game client 10 is started in the game platform 20 by a COM standard interface, and the two-way communication between the game client 10 and the game platform 20 is realized through the COM interface; 20 communicates with the game server 30 under the remote Linux operating system through a network communication method such as TCP; the game server 40 exists in the form of a shared library (SO) file in the Linux environment, and the SO file can be called by the game server 30. And loading; the game server 30 loads the game server 40 in the manner of a dynamic link library, and makes an interface call with the game server 40. Here, the SO file in the Linux environment is similar to a dynamic link library (DLL) file in the Windows environment.
在开发过程中, 每次对编辑好的代码自测时, 游戏服务端 40 需要 将自身在 Windows 环境下编辑好的代码上传到游戏服务器 30 所在的 Linux机器中, 然后用 Linux环境下的 G++进行编译生成 SO文件,最后 再启动游戏服务器 30运行所生成的 SO文件。 During the development process, each time the edited code is self-tested, the game server 40 needs to upload the code edited by itself in the Windows environment to the Linux machine where the game server 30 is located, and then use G++ in the Linux environment. Compile and generate the SO file, and finally start the game server 30 to run the generated SO file.
现有游戏开发系统在实现过程中存在以下缺陷: The existing game development system has the following defects in the implementation process:
第一, 游戏服务端开发繁瑣、 调试要求高。 由于游戏服务端编辑好 的代码需要先上传到 Linux机器编译为 SO文件, 才能在游戏服务器上 运行, 这样, 如果在开发过程中, 游戏服务器的运行和预期有差别需要 调试, 就需要调试人员对 Linux环境以及 Linux调试器比较熟悉, 这对 于 Windows程序员来说, 难度较大且比较费时。 First, the development of the game server is cumbersome and requires high debugging. Since the code edited by the game server needs to be uploaded to a Linux machine and compiled into a SO file, it can be run on the game server. Therefore, if the game server runs and expects to be different during the development process, debugging is required. The Linux environment and the Linux debugger are familiar, which is difficult and time consuming for Windows programmers.
第二, 在开发过程中, 游戏服务端处于 Linux环境下, 对于游戏平 台上看到的房间需要在特定服务器上预先配置, 这使得每个游戏在开发 前都需要配置各自的开发环境, 才能使游戏服务器正确的加载游戏服务 端, 从而导致开发环境的配置非常繁瑣和复杂。 Second, during the development process, the game server is in the Linux environment, and the rooms seen on the game platform need to be pre-configured on a specific server, which requires each game to be configured with its own development environment before development. The game server correctly loads the game server, which makes the configuration of the development environment very cumbersome and complicated.
第三, 由于游戏服务端代码的编译及运行都需要在具有 Linux操作 系统的服务器上进行, 而这类服务器大都是内部服务器, 只有在开发公
司内部才能登录, 因此, 使得游戏开发只能局限在开发公司内部进行, 不能随意更换开发地点。 Third, since the compile and run of the game server code needs to be performed on a server with a Linux operating system, most of these servers are internal servers, only in the development of the public The internal division of the company can be logged in. Therefore, the game development can only be restricted to the development company, and the development location cannot be changed at will.
第四, 在游戏客户端开发过程中, 如果是多人玩的游戏, 则需要启 动多个游戏平台和多个游戏客户端, 游戏平台和游戏客户端的个数与参 与游戏的用户数相等, 如此, 对参与开发的机器的数量和性能有较高要 求, 增加了资源占用。 发明内容 Fourth, in the game client development process, if the game is played by multiple people, it is necessary to start multiple game platforms and multiple game clients, and the number of game platforms and game clients is equal to the number of users participating in the game. , high requirements on the number and performance of the machines involved in the development, increasing the resource consumption. Summary of the invention
有鉴于此, 本发明的主要目的在于提供一种游戏虚拟机, 能够减少 游戏服务端开发、 配置及调试的复杂度, 并降低对开发机器性能和数量 的要求以及资源的占用。 In view of this, the main object of the present invention is to provide a game virtual machine, which can reduce the complexity of development, configuration and debugging of the game server, and reduce the requirements on the performance and quantity of the development machine and the occupation of resources.
本发明的另一目的在于提供一种游戏开发系统, 能够减少游戏服务 端开发、 配置及调试的复杂度, 并降低对开发机器性能和数量的要求以 及资源的占用。 Another object of the present invention is to provide a game development system capable of reducing the complexity of development, configuration, and debugging of a game server, and reducing the requirements on the performance and quantity of the development machine and the occupation of resources.
本发明的又一目的在于提供一种游戏开发方法, 能够减少游戏服务 端开发、 配置及调试的复杂度, 并降低对开发机器性能和数量的要求以 及资源的占用。 It is still another object of the present invention to provide a game development method capable of reducing the complexity of development, configuration, and debugging of a game server, and reducing the requirements on the performance and quantity of development machines and the occupation of resources.
为达到上述目的, 本发明的技术方案是这样实现的: In order to achieve the above object, the technical solution of the present invention is achieved as follows:
本发明提供了一种游戏虚拟机, 包括管理服务线程和客户端线程; 其中, The present invention provides a game virtual machine, including a management service thread and a client thread;
所述管理服务线程, 用于管理游戏用户, 完成与客户端线程和游戏 服务端之间的消息交互, 并用于加载游戏服务端; The management service thread is configured to manage a game user, complete message interaction with the client thread and the game server, and is used to load the game server;
所述客户端线程, 用于启动游戏客户端, 并通过调用接口实现与游 戏客户端的双向通讯。 The client thread is used to start the game client, and realizes two-way communication with the game client through the calling interface.
本发明还提供了一种游戏开发系统, 包括游戏客户端和游戏服务
端; 关键是, 还包括位于游戏客户端和游戏服务端之间的游戏虚拟机; 所述游戏虚拟机, 通过调用接口与游戏客户端和游戏良务端进行双 向通讯, 实现游戏用户的管理,并加载动态链接库 DLL文件形式的游戏 服务端。 The invention also provides a game development system, including a game client and a game service The key is to further include a game virtual machine between the game client and the game server; the game virtual machine performs two-way communication with the game client and the game service end through the calling interface to realize management of the game user. And load the game server in the form of a dynamic link library DLL file.
上述方案中, 所述游戏虚拟机包括管理服务线程和客户端线程; 其 中, 所述管理服务线程, 用于管理游戏用户, 完成与客户端线程和游戏 服务端之间的消息交互, 并用于加载游戏服务端; 所述客户端线程, 用 于启动游戏客户端, 并通过调用接口实现与游戏客户端的双向通讯。 In the above solution, the game virtual machine includes a management service thread and a client thread; wherein the management service thread is used to manage a game user, complete message interaction with the client thread and the game server, and is used for loading The game server is configured to start a game client, and implement two-way communication with the game client by calling the interface.
其中, 所述管理服务线程包括主线程和服务端线程; 所述主线程, 用于实现游戏用户的管理, 以及与服务端线程和客户端线程之间的消息 交互; 所述服务端线程, 用于与游戏服务端进行通讯,加载游戏服务端。 The management service thread includes a main thread and a server thread; the main thread is used to implement management of a game user, and message interaction with a server thread and a client thread; In communication with the game server, load the game server.
上述方案中, 所述客户端线程为一个以上, 每个客户端线程对应一 个游戏客户端。 In the above solution, the client thread is more than one, and each client thread corresponds to one game client.
上述方案中, 所述游戏虚拟机开发和运行于 Windows环境下。 In the above solution, the game virtual machine is developed and operated in a Windows environment.
本发明还提供了一种游戏开发方法, 包括, 在游戏客户端和游戏服 务端之间设置包含一个以上线程的游戏虚拟机; 该方法还包括: The present invention also provides a game development method, including: setting a game virtual machine including more than one thread between a game client and a game server; the method further includes:
游戏虚拟机启动时, 启动并初始化游戏虚拟机中的管理良务线程, 并利用所述管理服务线程加载动态链接库 DLL文件形式的游戏服务端 并运行; When the game virtual machine is started, the management service thread in the game virtual machine is started and initialized, and the game server in the form of a dynamic link library DLL file is loaded and run by using the management service thread;
游戏用户在游戏虚拟机中选定自身参与游戏所需座位时, 游戏虚拟 机启动并初始化对应该游戏用户的客户端线程; When the game user selects the seat required to participate in the game in the game virtual machine, the game virtual machine starts and initializes the client thread corresponding to the game user;
初始化后的客户端线程读取一个游戏标识 ClassID,并启动参与所读 取游戏标识对应的游戏的游戏客户端, 之后与游戏客户端进行通讯交 互。 The initialized client thread reads a game identification ClassID and starts a game client participating in the game corresponding to the read game identification, and then communicates with the game client.
其中, 所述管理服务线程包括主线程和服务端线程; 相应的, 所述
启动并初始化游戏虚拟机中的管理服务线程为: 启动主线程和服务端线 程, 并初始化服务端线程; 所述加载 DLL文件形式的游戏服务端为: 由 初始化后的服务端线程加载 DLL文件形式的游戏服务端。 The management service thread includes a main thread and a server thread; correspondingly, the Starting and initializing the management service thread in the game virtual machine is: starting the main thread and the server thread, and initializing the server thread; the game server in the form of loading the DLL file is: loading the DLL file form by the initialized server thread Game server.
本发明提供了一种在 Windows 环境下开发的游戏虚拟机及其实现 的游戏开发系统和方法, 在游戏客户端和游戏服务端之间设置游戏虚拟 机, 由游戏虚拟机来模拟完成游戏平台和游戏服务器的基本功能, 与游 戏客户端和游戏服务端进行交互。由于游戏虚拟机运行在 Windows环境 下, 对于游戏客户端, 仍保持通过 COM接口实现双向通讯; 对于游戏 服务端,只需将游戏服务端编辑好的代码编译为 Windows环境下的 DLL 文件加载并运行即可, 因此, 即使需要对运行的游戏服务端进行调试, 只需在 Windows环境下, 这对 Windows程序员来说是非常筒单易行的, 大大降低了开发复杂度, 以及对开发和调试的要求。 The invention provides a game virtual machine developed in the Windows environment and a game development system and method thereof. The game virtual machine is set between the game client and the game server, and the game virtual machine is used to simulate the game platform and The basic functions of the game server, interacting with the game client and the game server. Since the game virtual machine runs under the Windows environment, for the game client, the two-way communication through the COM interface is still maintained; for the game server, only the code compiled by the game server is compiled into a DLL file in the Windows environment to be loaded and run. That's it, so even if you need to debug the running game server, it only needs to be very easy for Windows programmers in the Windows environment, which greatly reduces the development complexity and development and debugging. Requirements.
由于游戏服务端的开发和运行均在 Windows环境下,因此无需在每 个游戏开发前单独配置各自的开发环境; 并且, 因为不需要在编译及运 行时将游戏服务端上载到具有 Linux操作系统的服务器上, 所以可将开 发地点延伸到开发公司之外, 如在家中, 而不必局限于只能在开发公司 内进行开发。 Since the game server is developed and run in the Windows environment, there is no need to separately configure the development environment before each game development; and, because there is no need to upload the game server to the server with the Linux operating system at compile and runtime. Therefore, the development location can be extended beyond the development company, such as at home, and not necessarily limited to development within the development company.
本发明的游戏虚拟机通过启动不同的线程, 分别实现游戏用户管 理、 消息转发以及与游戏客户端和游戏服务端的交互, 并且, 对于不同 的游戏客户端, 启动不同的线程与之对应, 也就是说, 如果有 N个游戏 用户参与的游戏,只需启动 N个线程分别对应 N个游戏客户端,无需再 启动 N个游戏平台。 另外, 游戏虚拟机还可以跨 PC运行, 比如: 三人 参与的游戏, 游戏虚拟机可以实现在三个不同的 PC上, 各启动一个游 戏客户端, 使三个游戏客户端正常的进行游戏。 如此, 不仅能降低对开 发机器数量和性能的要求,还能减少不必要的资源占用, 大大节省成本。
附图简要说明 The game virtual machine of the present invention realizes game user management, message forwarding, and interaction with the game client and the game server respectively by starting different threads, and, for different game clients, starts different threads to correspond thereto, that is, Say, if there are N game users participating in the game, only need to start N threads corresponding to N game clients, no need to start N game platforms. In addition, the game virtual machine can also run across PCs, such as: three-player games, the game virtual machine can be implemented on three different PCs, each launching a game client, so that the three game clients play the game normally. In this way, not only can the requirements on the number and performance of development machines be reduced, but also unnecessary resource occupation can be reduced, resulting in significant cost savings. BRIEF DESCRIPTION OF THE DRAWINGS
下面将通过参照附图详细描述本发明的示例性实施例, 使本领域的 普通技术人员更清楚本发明的上述及其它特征和优点, 附图中: The above and other features and advantages of the present invention will become more apparent to those skilled in the <
图 1为现有技术中游戏开发系统的组成结构示意图; 1 is a schematic structural diagram of a game development system in the prior art;
图 2为本发明中游戏开发系统的组成结构示意图; 2 is a schematic structural diagram of a game development system in the present invention;
图 3为本发明游戏虚拟机的一种实现效果示意图。 实施本发明的方式 FIG. 3 is a schematic diagram of an implementation effect of the game virtual machine of the present invention. Mode for carrying out the invention
本发明所述方案中, 在游戏客户端和游戏服务端之间设置游戏虚拟 机, 由游戏虚拟机模拟完成游戏平台和游戏服务器的基本功能, 与游戏 客户端和游戏服务端进行交互。 进一步地, 在游戏虚拟机中创建有与游 戏客户端交互、 与游戏服务端交互, 以及实现游戏用户管理及消息转发 的线程。 In the solution of the present invention, a game virtual machine is set between the game client and the game server, and the basic functions of the game platform and the game server are simulated by the game virtual machine, and interact with the game client and the game server. Further, threads are created in the game virtual machine that interact with the game client, interact with the game server, and implement game user management and message forwarding.
本发明的游戏开发系统如图 2所示, 包括游戏客户端 10、 游戏月良务 端 40 , 关键在于还包括游戏虚拟机 50。 游戏虚拟机 50位于游戏客户端 10和游戏服务端 40之间, 用于模拟实现原有游戏平台和游戏服务器的 基本及常用功能, 主要模拟的功能有: 游戏用户进入、 游戏用户退出、 游戏逻辑消息转发, 以及断线重回和旁观等。 The game development system of the present invention, as shown in FIG. 2, includes a game client 10 and a game server 40. The key is to further include a game virtual machine 50. The game virtual machine 50 is located between the game client 10 and the game server 40, and is used for simulating the basic and common functions of the original game platform and the game server. The main simulated functions are: game user entry, game user exit, game logic Message forwarding, as well as disconnection and spectator.
图 2中, 游戏虚拟机 50在 Windows环境下开发和运行, 游戏客户 端 10在游戏虚拟机 50中以 COM标准接口方式启动, 通过 COM接口 实现游戏客户端 10与游戏虚拟机 50之间的双向通讯; 游戏虚拟机 50 加载 DLL文件形式的游戏服务端 40, 与游戏服务端 40进行接口调用。 In FIG. 2, the game virtual machine 50 is developed and run in a Windows environment. The game client 10 is started in the game virtual machine 50 in a COM standard interface manner, and the two-way between the game client 10 and the game virtual machine 50 is implemented through the COM interface. The game virtual machine 50 loads the game server 40 in the form of a DLL file, and makes an interface call with the game server 40.
为了模拟实现原有游戏平台和游戏服务器的基本功能, 游戏虚拟机 50中主要创建有: 主线程、 服务端线程和客户端线程, 其中, 主线程用 于实现对所有游戏用户的管理, 包括游戏用户进入、 退出以及参与游戏
等, 还用于与服务端线程和客户端线程之间的消息交互; 服务端线程用 于加载游戏服务端 40,并通过设置好的接口与游戏服务端 40相互调用; 客户端线程用于启动游戏客户端 10,并通过调用游戏客户端 10的 COM 接口实现与游戏客户端 10 的双向通讯, 根据参与游戏的游戏用户个数 可以有多个客户端线程, 每个客户端线程对应一个游戏客户端 10。 在实 际应用中, 服务端线程也可以并入主线程中, 合并为一个线程, 也就是 说, 由一个线程同时完成主线程功能和服务端线程功能。 In order to simulate the basic functions of the original game platform and the game server, the game virtual machine 50 mainly creates: a main thread, a server thread and a client thread, wherein the main thread is used to implement management of all game users, including games. Users enter, exit, and participate in games Etc., also used for message interaction with the server thread and the client thread; the server thread is used to load the game server 40, and is called by the game server 40 through the set interface; the client thread is used to start The game client 10 implements two-way communication with the game client 10 by calling the COM interface of the game client 10. According to the number of game users participating in the game, there may be multiple client threads, and each client thread corresponds to one game client. End 10. In practical applications, the server thread can also be merged into the main thread and merged into one thread. That is to say, the main thread function and the server thread function are simultaneously completed by one thread.
可将主线程和服务端线程、 或同时具有主线程功能和服务端线程功 能的线程统称为管理服务线程, 换句话说就是, 管理服务线程可以由主 线程和服务端线程两个线程组成, 也可以仅为同时具有主线程功能和服 务端线程功能的一个线程。 下面以管理服务线程由主线程和服务端线程 组成为例, 具体说明每个线程的功能及实现。 The main thread and the server thread, or the thread having both the main thread function and the server thread function, are collectively referred to as a management service thread. In other words, the management service thread can be composed of two threads: the main thread and the server thread. It can be just one thread that has both the main thread function and the server thread function. The following is an example of the management service thread consisting of the main thread and the server thread, which specifies the function and implementation of each thread.
对于主线程, 游戏虚拟机 50启动时, 主线程先从预先设置好的配 置文件中读取游戏用户信息, 该配置文件保存有若干个游戏用户最基本 的信息, 比如: 即时通讯号、 是否超级游戏用户、 积分、 游戏币等, 游 戏虚拟机 50所得到的游戏用户信息, 会在给客户端线程和服务端线程 发送游戏用户进入或退出等消息时用到。 该主线程与客户端线程和服务 端线程之间的通讯, 可通过消息应用编程接口如 PostThreadMessage API 实现; 反之, 客户端线程和服务端线程与主线程之间的通讯, 可通过消 息应用编程接口如 PostMessage API实现。 For the main thread, when the game virtual machine 50 is started, the main thread first reads the game user information from the preset configuration file, and the configuration file stores the most basic information of the game users, such as: instant messaging number, super The game user information obtained by the game virtual machine 50, such as game users, points, game coins, etc., is used when sending a message such as a game user entering or exiting to the client thread and the server thread. The communication between the main thread and the client thread and the server thread can be implemented through a message application programming interface such as the PostThreadMessage API; conversely, the communication between the client thread and the server thread and the main thread can be through the message application programming interface. As implemented by the PostMessage API.
一般, 消息的内容保存在堆中, 并且, 内容的指针和长度以参数的 方式传递, 指针参数和长度参数可分别命名为 Wparam和 Lparam。 为保 证消息时序的正确性, 客户端线程和良务端线程不直接通讯, 所有通讯 均由主线程按规定方式转发。 这里, 所述按规定方式转发是指有些消息 需要发给某个客户端线程, 有些需要发给所有客户端线程, 有些需要发
给部分客户端线程等等。 Generally, the content of the message is stored in the heap, and the pointer and length of the content are passed as parameters. The pointer parameter and the length parameter can be named Wparam and Lparam, respectively. In order to ensure the correctness of the message sequence, the client thread and the service end thread do not communicate directly, and all communication is forwarded by the main thread in a prescribed manner. Here, the forwarding according to the specified manner means that some messages need to be sent to a certain client thread, some need to be sent to all client threads, and some need to be sent. Give some client threads and so on.
基于此, 主线程可模拟游戏平台最主要和常用的功能, 如: 游戏用 户进入、 游戏用户退出、 游戏逻辑消息的转发, 以及游戏用户断线重回 等。 对于断线重回功能, 主线程先以消息方式通知客户端线程, 同时通 过消息方式或接口调用方式通知服务端线程某个游戏用户掉线, 并将该 游戏用户状态标记为掉线, 如果游戏用户在规定时间内点击桌子上相应 断线的游戏用户头像, 主线程就会通知客户端线程和服务端线程相应游 戏用户断线重回。 这里, 如果主线程与服务端线程是两个线程, 则主线 程通过消息方式通知服务端线程; 如果主线程与服务端线程合并为一个 线程, 则主线程通过接口调用方式通知服务端线程。 Based on this, the main thread can simulate the most important and commonly used functions of the game platform, such as: game user entry, game user exit, game logic message forwarding, and game user disconnection. For the disconnection re-entry function, the main thread first informs the client thread by message, and notifies the server thread of a game user to drop the line by means of message mode or interface call mode, and marks the game user status as dropped, if the game When the user clicks on the corresponding game user avatar on the desk within the specified time, the main thread will notify the client thread and the server thread that the corresponding game user is disconnected. Here, if the main thread and the server thread are two threads, the main thread notifies the server thread by means of a message; if the main thread and the server thread merge into one thread, the main thread notifies the server thread by the interface calling manner.
对于服务端线程, 游戏虚拟机 50 启动后就会启动服务端线程, 该 服务端线程被封装成一个类, 这个类可根据需要任意命名, 如命名为 CSoWorkingThread, 该类提供了一个命名为 CreateSoWorkingThread 的 公共 ( Public ) 方法。 服务端线程需要先初始化, 具体实现是: 先由主 线程创建一个 CSoWorkingThread 对象, 然后调用该对象的 CreateSoWorkingThread方法并传入必要的参数, 即可初始化好良务端线 程。 其中, CSoWorkingThread需要继承自 ITable接口并实现其接口, 该 接口是作为游戏服务器必须继承和实现的。 For the server thread, the game virtual machine 50 starts the server thread, and the server thread is encapsulated into a class. This class can be arbitrarily named according to requirements, such as named CSoWorkingThread, which provides a name named CreateSoWorkingThread. Public method. The server thread needs to be initialized first. The specific implementation is as follows: First, create a CSoWorkingThread object by the main thread, then call the CreateSoWorkingThread method of the object and pass in the necessary parameters to initialize the line of the service. Among them, CSoWorkingThread needs to inherit from the ITable interface and implement its interface, which must be inherited and implemented as a game server.
其中, 所述 ITable接口是指游戏服务器提供给游戏服务端 40调用 的接口, 主要有设置积分、 发送游戏逻辑消息、 获取积分等接口, 由于 游戏服务端 40 没有网络或数据库操作功能, 所以需要游戏服务器提供 相应接口。 The ITable interface refers to an interface that the game server provides to the game server 40 to call, and mainly has an interface for setting points, sending game logic messages, and obtaining points. Since the game server 40 does not have network or database operation functions, the game is required. The server provides the corresponding interface.
服务端线程启动并初始化好后, 使用加载库应用编程接口 LoadLibrary API加载 DLL文件形式的游戏服务端 40, 并使用获取过程 地址 API ( GetProc Address API ) 获得游戏 良务端 40 的游戏生成
( CreateGame )接口, 并将该接口的指针转换为 ITable类型的指针, 作 为参数传入游戏服务端 40 , 之后, 游戏服务端 40就可以利用转换后的 ITable类指针调用 CSoWorkingThread类中实现的 ITable接口。其中,所 加载的 DLL文件形式的游戏良务端 40是在 Windows环境下编译而成 的。 After the server thread is started and initialized, the game server 40 in the form of a DLL file is loaded by using the load library application programming interface LoadLibrary API, and the game generation terminal 40 is generated using the GetProc Address API. The (CreateGame) interface converts the pointer of the interface into a pointer of the ITable type and passes it as a parameter to the game server 40. After that, the game server 40 can use the converted ITable class pointer to call the ITable interface implemented in the CSoWorkingThread class. . Among them, the game service terminal 40 in the form of the loaded DLL file is compiled in the Windows environment.
对于客户端线程, 当游戏用户每次选中游戏虚拟机 50 中的游戏桌 上的某个座位时, 游戏虚拟机 50会启动一个客户端线程, 该客户端线 程被封装成一个类, 这个类可根据需要任意命名, 如命名为 CClientWorkingThread , 该 类 提 供 了 一 个 命 名 为 CreateClientWorkingThread的 public方法。 客户端线程需要先初始化, 具体实现是: 先由主线程创建一个 CClientWorkingThread对象, 然后调 用该对象的 CreateClientWorkingThread方法并传入必要参数, 即可初始 化好客户端线程。 For the client thread, each time the game user selects a seat on the game table in the game virtual machine 50, the game virtual machine 50 launches a client thread, which is encapsulated into a class, which can be Name it arbitrarily according to your needs, such as CClientWorkingThread, which provides a public method named CreateClientWorkingThread. The client thread needs to be initialized first. The specific implementation is as follows: First, create a CClientWorkingThread object by the main thread, then call the CreateClientWorkingThread method of the object and pass in the necessary parameters to initialize the client thread.
客户端线程启动并初始化好后, 客户端线程会从预先设置好的配置 文件中读取一个游戏标识 Classld, 每个 Classld对应一个游戏; 客户端 线程通过 COM的方法启动参与所读取 Classld对应的游戏的游戏客户端 10, 此时, 客户端线程即可调用游戏客户端 10的 COM接口。 客户端线 程通过 COM方式启动游戏客户端 10时, 由于 COM具有位置透明性, 所以, 在启动前可以选择游戏客户端 10 的启动位置, 比如: 选择本机 或其它 PC,相应的当前客户端线程会在所选的位置启动游戏客户端 10。 After the client thread is started and initialized, the client thread reads a game identifier Classld from the preset configuration file, and each Classld corresponds to a game; the client thread starts the participation of the read Classld corresponding to the COM thread. The game client 10 of the game, at this time, the client thread can call the COM interface of the game client 10. When the client thread starts the game client 10 through COM mode, since the COM has location transparency, the startup position of the game client 10 can be selected before starting, for example: selecting the local or other PC, the corresponding current client thread The game client 10 will be launched at the selected location.
客户端线程必须继承并实现 IGame接口,并将该接口的指针转换为 IGame类型的指针设置给游戏客户端 10, 游戏客户端 10根据所设置的 指针即可调用客户端线程的 IGame接口。这里,所述 IGame接口主要实 现三个功能: 发送游戏逻辑消息、 发送聊天消息以及发送其它消息, 由 于游戏客户端 10没有网络功能, 如果想要将消息发送出去, 只有调用
此接口。 The client thread must inherit and implement the IGame interface, and convert the pointer of the interface into a pointer of the IGame type to the game client 10. The game client 10 can call the IGame interface of the client thread according to the set pointer. Here, the IGame interface mainly implements three functions: sending a game logic message, sending a chat message, and sending other messages. Since the game client 10 does not have a network function, if the message is to be sent out, only the call is made. This interface.
当游戏用户离开时, 关闭游戏客户端 10即可, 关闭游戏客户端 10 时, 游戏客户端 10会通知游戏虚拟机 50中对应的客户端线程。 When the game user leaves, the game client 10 is closed. When the game client 10 is closed, the game client 10 notifies the corresponding client thread in the game virtual machine 50.
在实际应用中, 每选中游戏虚拟机 50 中的游戏桌上的一个座位就 会启动一个客户端线程, 也就是说, 一个参与游戏的游戏用户对应一个 客户端线程、 对应一个游戏客户端 10。 In a practical application, a seat on the game table in each selected game virtual machine 50 initiates a client thread, that is, a game user participating in the game corresponds to a client thread and corresponds to a game client 10.
基于上述开发系统, 本发明的开发方法包括以下步骤: Based on the above development system, the development method of the present invention includes the following steps:
首先, 在游戏客户端和游戏服务端之间设置包含多类线程的游戏虚 拟机; First, a game virtual machine including a plurality of types of threads is set between the game client and the game server;
游戏虚拟机启动时, 启动并初始化游戏虚拟机中的管理良务线程; 仅为同时具有主线程功能和服务端线程功能的一个线程; When the game virtual machine starts, it starts and initializes the management thread in the game virtual machine; it is only one thread that has both the main thread function and the server thread function;
之后, 加载 DLL文件形式的游戏良务端并运行; After that, load the game console in the form of a DLL file and run it;
当游戏用户在游戏虚拟机中选定自身参与游戏所需的座位时, 游戏 虚拟机启动对应该游戏用户的客户端线程, 并初始化所启动的客户端线 程; When the game user selects the seat required to participate in the game in the game virtual machine, the game virtual machine starts the client thread corresponding to the game user, and initializes the activated client thread;
初始化后的客户端线程读取一个游戏标识 ClassID,并启动参与所读 取 ClassID对应的游戏的游戏客户端, 之后与游戏客户端进行通讯, 实 现游戏用户的进入、 退出以及参与。 The initialized client thread reads a game identifier ClassID and starts a game client participating in the game corresponding to the read ClassID, and then communicates with the game client to implement entry, exit, and participation of the game user.
图 3为本发明游戏虚拟机的一种实现效果示意图, 如图 3所示, 游 戏虚拟机中可包括游戏用户管理、 游戏用户信息、 游戏用户操作和游戏 桌设置等几部分。 FIG. 3 is a schematic diagram of an implementation effect of the game virtual machine of the present invention. As shown in FIG. 3, the game virtual machine may include game user management, game user information, game user operation, and game table settings.
在具体应用中, 游戏用户也可称为玩家, 游戏用户管理包括空闲玩 家列表、 在玩玩家列表和旁观玩家列表, 分别给出当前游戏虚拟机中处 于空闲状态的、 参与游戏的以及旁观游戏的游戏用户。 处于空闲状态的
游戏用户通过选择游戏桌上的座位, 可以力口入到参与游戏状态的游戏用 户组中, 或加入到旁观游戏状态的游戏用户组中; 处于参与游戏或旁观 游戏状态的游戏用户如果离开当前所在座位, 会自动加入到处于空闲状 态的游戏用户组中。 通过游戏用户管理可获知各个游戏用户所处的游戏 状态, 并获知处于各种游戏状态的游戏用户个数。 In a specific application, the game user may also be referred to as a player, and the game user management includes an idle player list, a play player list, and a bystander player list, respectively giving the game virtual machine in an idle state, participating in the game, and watching the game. Game user. In an idle state By selecting a seat on the game table, the game user can enter the game user group participating in the game state, or join the game user group in the watch game state; if the game user in the participating game or the stand-by game state leaves the current game The seat will automatically be added to the game user group in the idle state. Through the game user management, the game state of each game user can be known, and the number of game users in various game states can be known.
游戏用户信息给出了游戏用户的基本信息, 如: 游戏用户的号码、 昵称、 超级玩家、 积分、 游戏币等, 其中, 有些信息是可以修改并更新 保存的, 如: 积分和游戏币等。 The game user information gives basic information about the game user, such as: game user's number, nickname, super player, points, game currency, etc., some of the information can be modified and updated, such as: points and coins.
游戏用户操作给出了几种可选的操作, 游戏用户可以通过点击相应 按鈕实现相应功能, 如: 让该玩家掉线, 选择某个游戏用户后点击此按 鈕, 则相应游戏用户掉线, 该游戏用户对应的游戏桌上的座位会变为灰 色,在预设的时间内,可通过点击该灰色座位让相应游戏用户断线重回, 即回到游戏桌继续游戏, 如果超出规定时间, 游戏虚拟机会给其它游戏 用户和游戏服务端发送该游戏用户退出的消息。 再如: 解散游戏, 当前 桌子在游戏过程中时, 点击此按鈕可以解散当前游戏。 The user operation of the game gives several optional operations. The user can click the corresponding button to implement the corresponding function, such as: let the player drop the line, select a game user and click this button, then the corresponding game user is dropped. The seat on the game table corresponding to the game user will be grayed out. In the preset time, the corresponding game user can be disconnected by clicking the gray seat, that is, returning to the game table to continue the game, if the game exceeds the specified time, the game The virtual machine sends messages to the other game users and game servers that the game user quits. Another example: Dissolve the game, when the table is in the middle of the game, click this button to dismiss the current game.
游戏桌设置中可以设置每桌最大人数, 即某个游戏桌上最多可以有 几个人参与游戏, 选择后, 相应的游戏桌会发生变化, 比如: 选择 2人 桌, 游戏桌上只有两个座位, 选择 6人桌, 游戏桌上就变为六个座位, 最近的选择会保存在配置文件中。 游戏桌设置中还可以设置客户端启动 的位置, 即客户端在本机启动还是在其它机器上启动。 The maximum number of tables per table can be set in the game table setting, that is, a maximum of several people can participate in the game on a game table. After the selection, the corresponding game table will change, for example: Select 2 people table, only two seats on the game table , choose 6-person table, the game table will become six seats, the most recent selection will be saved in the configuration file. In the game table settings, you can also set the location where the client is started, that is, whether the client starts up locally or on another machine.
游戏虚拟机中的游戏桌, 在游戏没开始时点击某个空闲座位会根据 客户端启动位置的选择, 在本机或其它机器启动一个参与游戏的游戏客 户端; 当处于游戏中状态时, 点击某个坐有游戏用户的座位会根据客户 端启动位置的选择, 在本机或其它机器启动一个旁观游戏的游戏客户 端。 可通过让游戏桌亮起表示游戏在进行中, 让游戏桌变灰表示游戏结
束。 The game table in the game virtual machine, clicking on a free seat when the game is not started will start a game client participating in the game on the local machine or other machine according to the selection of the client startup position; when in the game state, click A seat with a game user will launch a game client for a bystander game on the local or other machine depending on the client's launch location. By letting the game table light up, the game is in progress, and the game table is grayed out to indicate the game knot. Bunch.
这里, 旁观的游戏用户也对应一个客户端线程, 与处于游戏状态的 客户端线程主要区别在于游戏状态不同, 相应地, 游戏的逻辑消息有些 只发给处于游戏状态的游戏用户, 有些只发给旁观的游戏用户, 相应有 不同的处理。 Here, the spectator game user also corresponds to a client thread, and the main difference from the client thread in the game state is that the game state is different. Accordingly, the logic message of the game is only sent to the game user in the game state, and some are only sent to the game user. By-the-go game users, there are different treatments.
总之, 采用本发明的技术方案, 在游戏客户端和游戏服务端之间设 置游戏虚拟机, 由游戏虚拟机来模拟完成游戏平台和游戏服务器的基本 功能, 与游戏客户端和游戏良务端进行交互。 由于游戏虚拟机运行在 In summary, with the technical solution of the present invention, a game virtual machine is set between the game client and the game server, and the basic functions of the game platform and the game server are simulated by the game virtual machine, and the game client and the game service end are performed. Interaction. Because the game virtual machine is running at
Windows环境下, 对于游戏客户端, 仍保持通过 COM接口实现双向通 讯; 对于游戏服务端, 只需将游戏服务端编辑好的代码编译为 Windows 环境下的 DLL文件加载并运行即可, 因此, 即使需要对运行的游戏服务 端进行调试, 只需在 Windows环境下, 这对 Windows程序员来说是非 常筒单易行的, 大大降低了开发复杂度, 以及对开发和调试的要求。 In the Windows environment, for the game client, it still maintains two-way communication through the COM interface; for the game server, simply compile the compiled code of the game server to the DLL file in the Windows environment, and then run it, so even It is necessary to debug the running game server. In the Windows environment, this is very easy for Windows programmers, which greatly reduces the development complexity and requirements for development and debugging.
由于游戏良务端的开发和运行均在 Windows环境下,因此无需在每 个游戏开发前单独配置各自的开发环境; 并且, 因为不需要在编译及运 行时将游戏服务端上载到具有 Linux操作系统的服务器上, 所以可将开 发地点延伸到开发公司之外, 如在家中, 而不必局限于只能在开发公司 内部。 Since the game development and operation are all in the Windows environment, there is no need to separately configure the respective development environment before each game development; and, because there is no need to upload the game server to the Linux operating system at compile and runtime. On the server, the development location can be extended beyond the development company, such as at home, and not necessarily limited to the development company.
本发明的游戏虚拟机通过启动不同的线程, 分别实现游戏用户管 理、 消息转发以及与游戏客户端和游戏服务端的交互, 并且, 对于不同 的游戏客户端, 启动不同的线程与之对应, 也就是说, 如果有 N个游戏 用户参与的游戏,只需启动 N个线程分别对应 N个游戏客户端,无需再 启动 N个游戏平台。 另外, 游戏虚拟机还可以跨 PC运行, 比如: 三人 参与的游戏, 游戏虚拟机可以实现在三个不同的 PC上, 各启动一个游 戏客户端, 使三个游戏客户端正常的进行游戏。 如此, 不仅能降低对开
发机器数量和性能的要求,还能减少不必要的资源占用, 大大节省成本。 以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡 在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均 应包含在本发明的保护范围之内。
The game virtual machine of the present invention realizes game user management, message forwarding, and interaction with the game client and the game server respectively by starting different threads, and, for different game clients, starts different threads to correspond thereto, that is, Say, if there are N game users participating in the game, only need to start N threads corresponding to N game clients, no need to start N game platforms. In addition, the game virtual machine can also run across PCs, such as: three-player games, the game virtual machine can be implemented on three different PCs, each launching a game client, so that the three game clients play the game normally. So, not only can you reduce the gap The number of machines and performance requirements can also reduce unnecessary resource consumption and save costs. The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention. Any modifications, equivalents, improvements, etc., which are made within the spirit and principles of the present invention, should be included in the present invention. Within the scope of protection.
Claims
1、 一种游戏虚拟机, 其特征在于, 包括管理服务线程和客户端线 程; 其中, A game virtual machine, comprising: a management service thread and a client thread; wherein
所述管理服务线程, 用于管理游戏用户, 完成与客户端线程和游戏 服务端之间的消息交互, 并用于加载游戏服务端; The management service thread is configured to manage a game user, complete message interaction with the client thread and the game server, and is used to load the game server;
所述客户端线程, 用于启动游戏客户端, 并通过调用接口实现与游 戏客户端的双向通讯。 The client thread is used to start the game client, and realizes two-way communication with the game client through the calling interface.
2、 根据权利要求 1 所述的游戏虚拟机, 其特征在于, 所述管理服 务线程包括主线程和服务端线程; 2. The game virtual machine according to claim 1, wherein the management service thread comprises a main thread and a server thread;
所述主线程, 用于实现游戏用户的管理, 以及与服务端线程和客户 端线程之间的消息交互; The main thread is used to implement management of a game user, and message interaction with a server thread and a client thread;
所述服务端线程, 用于与游戏服务端进行通讯, 加载游戏服务端。 The server thread is configured to communicate with the game server and load the game server.
3、 根据权利要求 1或 2所述的游戏虚拟机, 其特征在于, 所述客 户端线程为一个以上, 每个客户端线程对应一个游戏客户端。 The game virtual machine according to claim 1 or 2, wherein the client thread is more than one, and each client thread corresponds to one game client.
4、 一种游戏开发系统, 包括游戏客户端和游戏服务端; 其特征在 于, 还包括位于游戏客户端和游戏良务端之间的游戏虚拟机; 4. A game development system, comprising a game client and a game server; characterized in that the game virtual machine is further located between the game client and the game service end;
所述游戏虚拟机, 通过调用接口与游戏客户端和游戏良务端进行双 向通讯, 实现游戏用户的管理,并加载动态链接库 DLL文件形式的游戏 服务端。 The game virtual machine performs bidirectional communication with the game client and the game service end by calling the interface, realizes management of the game user, and loads the game server in the form of a dynamic link library DLL file.
5、 根据权利要求 4所述的游戏开发系统, 其特征在于, 所述游戏 虚拟机包括管理服务线程和客户端线程; 其中, The game development system according to claim 4, wherein the game virtual machine includes a management service thread and a client thread;
所述管理服务线程, 用于管理游戏用户, 完成与客户端线程和游戏 服务端之间的消息交互, 并用于加载游戏服务端; The management service thread is configured to manage a game user, complete message interaction with the client thread and the game server, and is used to load the game server;
所述客户端线程, 用于启动游戏客户端, 并通过调用接口实现与游
戏客户端的双向通讯。 The client thread is used to start a game client, and implements a tour by calling an interface Two-way communication between the client and the client.
6、 根据权利要求 5 所述的游戏开发系统, 其特征在于, 所述管理 服务线程包括主线程和服务端线程; 6. The game development system according to claim 5, wherein the management service thread comprises a main thread and a server thread;
所述主线程, 用于实现游戏用户的管理, 以及与服务端线程和客户 端线程之间的消息交互; The main thread is used to implement management of a game user, and message interaction with a server thread and a client thread;
所述服务端线程, 用于与游戏服务端进行通讯, 加载游戏服务端。 The server thread is configured to communicate with the game server and load the game server.
7、 根据权利要求 5或 6所述的游戏开发系统, 其特征在于, 所述 客户端线程为一个以上, 每个客户端线程对应一个游戏客户端。 The game development system according to claim 5 or 6, wherein the client thread is more than one, and each client thread corresponds to one game client.
8、 根据权利要求 4、 5或 6所述的游戏开发系统, 其特征在于, 所 述游戏虚拟机开发和运行于 Windows环境下。 The game development system according to claim 4, 5 or 6, wherein the game virtual machine is developed and operated in a Windows environment.
9、 一种游戏开发方法, 其特征在于, 在游戏客户端和游戏服务端 之间设置包含一个以上线程的游戏虚拟机; 该方法还包括: A game development method, characterized in that a game virtual machine including more than one thread is set between a game client and a game server; the method further comprises:
游戏虚拟机启动时, 启动并初始化游戏虚拟机中的管理良务线程, 并利用所述管理服务线程加载动态链接库 DLL文件形式的游戏服务端 并运行; When the game virtual machine is started, the management service thread in the game virtual machine is started and initialized, and the game server in the form of a dynamic link library DLL file is loaded and run by using the management service thread;
游戏用户在游戏虚拟机中选定自身参与游戏所需座位时, 游戏虚拟 机启动并初始化对应该游戏用户的客户端线程; When the game user selects the seat required to participate in the game in the game virtual machine, the game virtual machine starts and initializes the client thread corresponding to the game user;
初始化后的客户端线程读取一个游戏标识 ClassID,并启动参与所读 取游戏标识对应的游戏的游戏客户端, 之后与游戏客户端进行通讯。 The initialized client thread reads a game identification ClassID and starts a game client participating in the game corresponding to the read game identification, and then communicates with the game client.
10、 根据权利要求 9所述的游戏开发方法, 其特征在于, 所述管理 服务线程包括主线程和服务端线程; 10. The game development method according to claim 9, wherein the management service thread comprises a main thread and a server thread;
相应的, 所述启动并初始化游戏虚拟机中的管理服务线程为: 启动 主线程和服务端线程, 并初始化服务端线程; Correspondingly, the starting and initializing the management service thread in the game virtual machine is: starting the main thread and the server thread, and initializing the server thread;
所述利用所述管理服务线程加载 DLL文件形式的游戏服务端为:由 初始化后的服务端线程加载 DLL文件形式的游戏服务端。
The game server in the form of loading the DLL file by using the management service thread is: loading the game server in the form of a DLL file by the initialized server thread.
11、根据权利要求 9或 10所述的游戏开发方法, 其特征在于, 所述 客户端线程为一个以上, 每个客户端线程对应一个游戏客户端。 The game development method according to claim 9 or 10, wherein the client thread is more than one, and each client thread corresponds to one game client.
12、 根据权利要求 9或 10所述的游戏开发方法, 其特征在于, 所 述游戏虚拟机开发和运行于 Windows环境下。
The game development method according to claim 9 or 10, characterized in that the game virtual machine is developed and operated in a Windows environment.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810100460.6 | 2008-06-16 | ||
CN2008101004606A CN101369227B (en) | 2008-06-16 | 2008-06-16 | Game virtual machine and game development system and method implemented by same |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009152731A1 true WO2009152731A1 (en) | 2009-12-23 |
Family
ID=40413061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2009/072138 WO2009152731A1 (en) | 2008-06-16 | 2009-06-05 | Game virtual machine and game development system and method for realizing the same |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101369227B (en) |
WO (1) | WO2009152731A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897146A (en) * | 2017-02-09 | 2017-06-27 | 青岛海信移动通信技术股份有限公司 | The data processing method and the terminal with microphone of a kind of microphone of terminal |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369227B (en) * | 2008-06-16 | 2012-04-25 | 腾讯数码(深圳)有限公司 | Game virtual machine and game development system and method implemented by same |
CN104715131A (en) * | 2013-12-16 | 2015-06-17 | 腾讯科技(深圳)有限公司 | Data processing method and device for internet game |
CN103716405B (en) * | 2013-12-31 | 2017-06-06 | 福建天晴数码有限公司 | Game server long-range sharing system and method |
CN106294094B (en) * | 2015-05-13 | 2020-01-31 | 腾讯科技(成都)有限公司 | Test method, client, server and system of game server |
CN105721239A (en) * | 2016-01-18 | 2016-06-29 | 网易(杭州)网络有限公司 | Game test method, device and game system |
CN105912474B (en) * | 2016-04-26 | 2019-09-24 | 网易(杭州)网络有限公司 | A kind of game on-line debugging method, system and editing service end |
CN109464806A (en) * | 2018-11-01 | 2019-03-15 | 韶关市武江区高骅金属科技服务中心 | A kind of novel chess and card games platform |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6152824A (en) * | 1997-03-06 | 2000-11-28 | Mpath Interactive, Inc. | Online gaming architecture |
CN101021884A (en) * | 2007-03-28 | 2007-08-22 | 成都金山互动娱乐科技有限公司 | Method for dynamic loading configuration files and script in network game server |
CN101068180A (en) * | 2007-06-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | Network game main controlling system, management system and managing method |
CN101369227A (en) * | 2008-06-16 | 2009-02-18 | 腾讯数码(深圳)有限公司 | Game virtual machine and game development system and method implemented by the same |
-
2008
- 2008-06-16 CN CN2008101004606A patent/CN101369227B/en active Active
-
2009
- 2009-06-05 WO PCT/CN2009/072138 patent/WO2009152731A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6152824A (en) * | 1997-03-06 | 2000-11-28 | Mpath Interactive, Inc. | Online gaming architecture |
CN101021884A (en) * | 2007-03-28 | 2007-08-22 | 成都金山互动娱乐科技有限公司 | Method for dynamic loading configuration files and script in network game server |
CN101068180A (en) * | 2007-06-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | Network game main controlling system, management system and managing method |
CN101369227A (en) * | 2008-06-16 | 2009-02-18 | 腾讯数码(深圳)有限公司 | Game virtual machine and game development system and method implemented by the same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897146A (en) * | 2017-02-09 | 2017-06-27 | 青岛海信移动通信技术股份有限公司 | The data processing method and the terminal with microphone of a kind of microphone of terminal |
Also Published As
Publication number | Publication date |
---|---|
CN101369227B (en) | 2012-04-25 |
CN101369227A (en) | 2009-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2009152731A1 (en) | Game virtual machine and game development system and method for realizing the same | |
US10628294B2 (en) | Mock services for software infrastructures | |
CN103316472B (en) | A kind of Android device game platform system based on Bluetooth handle and its implementation | |
US8944917B2 (en) | Multi-tier online game play | |
US8556713B2 (en) | Single to multi-user synchronous application conversion | |
JP2023545143A (en) | Video signal reproduction methods, devices and equipment for multi-user interaction | |
US20050245317A1 (en) | Voice chat in game console application | |
US20100023885A1 (en) | System for editing an avatar | |
JP7300503B2 (en) | Invitation link to launch multi-user application | |
US20100035692A1 (en) | Avatar closet/ game awarded avatar | |
TW200847044A (en) | System and method of scheduling and reserving virtual meeting locations in a calendaring application | |
JP2010523206A (en) | Context Gamer Options menu | |
CN104941181A (en) | Method and device for achieving real-time game interaction between different intelligent terminals | |
KR20110063741A (en) | Social virtual avatar modification | |
CN112988400A (en) | Video memory optimization method and device, electronic equipment and readable storage medium | |
US10807006B1 (en) | Behavior-aware player selection for multiplayer electronic games | |
JP2013084299A (en) | Architecture for online communal and connected experiences | |
US20140143295A1 (en) | Framework for cross-platform collaboration of activities | |
CN100472448C (en) | Method and system for starting network game | |
CN105939360B (en) | The outfit method and device of game article | |
CN113663325A (en) | Method for creating team in virtual scene, joining method, joining device and storage medium | |
CN107930113B (en) | Xbox platform multiplayer game access control method based on client synchronization | |
US10630497B2 (en) | Communication middleware for managing multicast channels | |
US20150273344A1 (en) | User Assembly of Lightweight User Interface for Games | |
JP6147331B2 (en) | Persistent party room |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09765370 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 4052/CHENP/2010 Country of ref document: IN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC. |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09765370 Country of ref document: EP Kind code of ref document: A1 |