Abstract:
The present invention relates to a packet based artificial intelligence game NPC server, method for providing an artificial intelligence NPC, and game system thereof which are applied to various on-line games on the basis of packet information without source code correction, using data obtained in each game server, and provides: storing game information specialized for each game server; receiving game packet data from the game server; interpreting the game packet data to convert the interpreted game packet data into metadata; storing a protocol header and parameter information of the metadata; receiving the protocol header and parameter information to generate data and action of an NPC according to a command (protocol header) of the metadata; and delivering the generated data and action of an NPC to the game server.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority to Korean Patent Application No. 10-2011-0088060 filed on Aug. 31, 2011 and all the benefits accruing therefrom under 35 U.S.C. §119, the contents of which are incorporated by reference in their entirety. 
       BACKGROUND 
       [0002]    The present invention relates to a packet based game Non-Player Character (NPC) server, method for providing an NPC, and game system thereof, and more particularly, to a packet based game NPC server, method for providing artificial intelligence NPC, and game system thereof which are applied to various online games on the basis of packet information without source code correction, using data obtained in each game server. 
         [0003]    Online gaming is an industry that advances quickly at home and abroad, and in particular, Korea is recognized internationally for having highly advanced online gaming server technology. 
         [0004]    Currently, in addition to the rapid progress being made in the Korean game industry, many advances have been made in terms of value and technology. Among them, the expedient development and growth of online games has resulted in the online game industry establishing a solid foothold as one of the major entertainment industries, where a quarter of the Korean population enjoys online games. 
         [0005]    In addition to such progress, games are rapidly becoming a form of cultural content, and the requirements of game users are becoming more diversified. 
         [0006]    Currently, an NPC server is included in a game server group, and is essential for games requiring users to play characters other than themselves, such as a Massively Multiplayer Online Role Playing Game (MMORPG). 
         [0007]    Most large MMORPGs have a separated NPC server, and small and medium Multiplayer Online (MO) games have a server including an AI module. 
         [0008]    However, as shown in  FIG. 1 , a related art game server  1  includes a PNC server  2  corresponding to the game server  1 , and a game protocol header file  4  is used, because the game server  1  and NPC server  2  is required to smoothly communicate with each other. Here, a client  3  should be implemented with the same game protocol header file  4  because the client  3  accessing each game server  1  can communicate only when the game protocol header files are the same. 
         [0009]    Accordingly, even when implementing various games, an NPC server corresponding to each game should be provided. Thus, much labor, cost, and time are needed whenever an NPC server is implemented. 
         [0010]    Moreover, the action pattern of NPCs in games restrictively shows a nearly fixed pattern due to technical or existing infrastructural limitations despite the requirements of the users. 
         [0011]    This simple action pattern of NPCs becomes a factor that deters modern advanced users from having the motivation to become immersed in a game. In order to keep users who have accessed a game in the game, it is not enough to simply have other users who have the same position as the users in the game. 
         [0012]    That is, since users cannot always be connected to a game, there should be NPCs existing in a virtual world in an online game that interact with users. NPCs with AI which can make them smarter or appear smarter can provide continuous enjoyment to users. 
         [0013]    Accordingly, the provision of an NPC having various action patterns is required. 
       SUMMARY 
       [0014]    The present invention provides a packet based game NPC server, a method for providing an artificial intelligence NPC, and a game system using the same, which acquire data information and network protocol of various game servers and provide a corresponding NPC to each game server, not depending on a specific game. 
         [0015]    The present invention also provides a packet based game NPC server, a method for providing an artificial intelligence NPC, and a game system using the same, which provides an NPC having various action patterns through repetitive responses to various users on another game. 
         [0016]    The technical objects of the invention are not limited to the aforesaid. 
         [0017]    According to an embodiment, a packet based game NPC server includes: a network communication processing unit receiving game packet data from a plurality of game servers and delivering action and data of a Non Player Character (NPC) to each of the game servers; a packet metadata processing unit interpreting the game packet data received from the network communication processing unit into a metadata format of protocol header and parameter information, according to a predefined command; a data metadata processing unit converting the parameter information received from the packet metadata processing unit into a metadata format of structure information; an internal data structure processing unit storing the converted parameter data delivered from the data metadata processing unit; a game information metadata processing unit storing game information specialized for each of the game servers; and an artificial intelligence algorithm processing unit receiving data according to the protocol header which is received from the packet metadata processing unit, and receiving the game information from the game information metadata processing unit to deliver data and action of the NPC to the packet metadata processing unit. 
         [0018]    The packet based game NPC server may further include a knowledge DB which accumulates and stores a plurality of processed input and output values from the artificial intelligence algorithm processing unit. 
         [0019]    The game information of the game information metadata processing unit may include one or more of a game map, a village location, a monster position, and item information. 
         [0020]    The game packet data may include one or more of a communication protocol, an ID, a command, and a parameter information. 
         [0021]    According to another embodiment, a method for providing an artificial intelligence NPC includes: storing game information specialized for each game server; receiving game packet data from the game server; interpreting the game packet data to convert the interpreted game packet data into metadata; storing protocol header and parameter information of the metadata; receiving the protocol header and parameter information to generate data and action of an NPC according to a command (protocol header) of the metadata; and delivering the generated data and action of an NPC to the game server. 
         [0022]    The method for providing an artificial intelligence NPC may further include storing and databasing the data and action of an NPC. 
         [0023]    The method for providing an artificial intelligence NPC may further include determining a type of the game server on the basis of information of the game server which is comprised in the game packet data. 
         [0024]    According to yet another embodiment, a game system includes at least two or more game servers providing different games, respectively; and an NPC server converting a protocol header of each of the game servers into metadata and previously stores the metadata, analyzing game packet data delivered from a specific game server to determine parameter information and action of a user character with the previously stored metadata, and providing an NPC, which takes an intelligent action corresponding to the user character&#39;s action to the corresponding game server. 
         [0025]    The NPC sever may include a knowledge DB, and store and databases an action pattern of the NPC provided to the game server. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0026]    Embodiments can be understood in more detail from the following description taken in conjunction with the accompanying drawings, in which: 
           [0027]      FIG. 1  is a view illustrating a coupling aspect of a typical NPC server and game server; 
           [0028]      FIG. 2  is a block diagram illustrating a packet based NPC server according to an embodiment of the present invention; 
           [0029]      FIG. 3  is a view illustrating an example of FSM; 
           [0030]      FIG. 4  is a view illustrating a game system using a packet based NPC server according to an embodiment of the present invention; and 
           [0031]      FIG. 5  is a flow chart illustrating a method of providing an artificial intelligence NPC according to an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0032]    Preferred embodiments of the present invention will be described below in more detail with reference to the accompanying drawings. Like elements in drawings are indicated with like reference numerals throughout as far as possible. Moreover, detailed descriptions related to well-known functions or configurations will be ruled out in order not to unnecessarily obscure subject matters of the present invention. 
         [0033]      FIG. 2  is a view illustrating a packet based Non Player Character (NPC) server according to an embodiment of the present invention, and an NPC server  100  includes a network communication processing unit  110 , a packet metadata processing unit  120 , a data metadata processing unit  130 , an internal data structure processing unit  140 , a game information metadata processing unit  150 , an artificial intelligence algorithm processing unit  160 , and a knowledge DB  170 . 
         [0034]    The network communication processing unit  110  communicates with a game server  10  and receives game packet data of the game server  10 . In this case, the game packet data may be received as the raw binary data, include one or more of a communication protocol, an ID, a command (protocol header), and parameter information, and have a different length in a game packet data according to the game server  10 . 
         [0035]    The accessed game server can be seen through the communication protocol. 
         [0036]    The packet metadata processing unit  120  interprets a metadata format of protocol header and parameter information using the game packet data and predefined command which are received from the network communication processing unit  110 . In this case, a game packet header file of the game server  10  is converted into metadata (XML) and stored according to the predefined command. 
         [0037]    For example, as shown in [Table 1], the game packet header file (See (a) of Table 1) planned in the game server  1  is received in the packet metadata processing unit  120 , and then is stored in the same format as the packet metadata (See (b) of Table 1). 
         [0000]    
       
         
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 (a) 
                 (b) 
               
               
                   
               
             
             
               
                 struct pk_move 
                   &lt;packet name= “PK_MOVE” data= “04 00” &gt; 
               
               
                 { 
                    &lt;parameter name= “ID” type= “INT” /&gt; 
               
               
                 int protocol; 
                    &lt;parameter name= “POS_X” 
               
               
                  int id; 
                 type= “FLOAT” /&gt; 
               
               
                  float pos_x 
                    &lt;parameter name= “POS_Y” 
               
               
                  float pos_y 
                 type= “FLOAT” /&gt; 
               
               
                  float pos_z 
                    &lt;parameter name= “POS_Z” 
               
               
                 }; 
                 type= “FLOAT” /&gt; 
               
               
                   
                   &lt;/packet&gt; 
               
               
                   
               
             
          
         
       
     
         [0038]    As described above, the packet metadata processing unit  120  may confirm the packet name of the received game packet data, using the stored packet metadata (See (b) of Table 1). 
         [0039]    Herein, the game packet data may include information of the game packet header in a binary format. 
         [0040]    For example, when a header of received packet data is “04 00”, the packet metadata processing unit  120  can see the name of the packet PK_MOVE being a protocol header of the game server  10 , and interpret the name as POS_X, POS_Y, and POS_Z in a float type being parameter information. 
         [0041]    The data metadata processing unit  130  converts parameter information received from the packet metadata processing unit  120  into a metadata format of structure information. 
         [0042]    The internal data structure processing unit  140  stores the converted parameter data delivered from the data metadata processing unit  130 . In this case, the internal data structure processing unit  140  may generate and manage a data structure such as an array, a list, and a map. 
         [0043]    The game information metadata processing unit  150  stores game information which is specialized for each game server, in a metadata format. In this case, the game information may include one or more of a game map, a village location, a monster position, and item information, but include all information needed to provide a game. That is, the category of game information is not limited thereto. 
         [0044]    The artificial intelligence algorithm processing unit  160  receives data according to a protocol header received from the packet metadata processing unit  120  from the internal data structure processing unit  140  and receives game information from the game information metadata processing unit  150  to deliver data and action of an NPC to the packet metadata processing unit  120 . In this case, a game logic of the artificial intelligence algorithm processing unit  160  according to an embodiment of the present invention is constructed in the Finite State Machine (FSM) format, but is not limited to the FSM algorithm. 
         [0045]    Herein, the FSM is a regulation based system in which a finite number of states are connected in a graph that is controlled by the transition between the states. 
         [0046]    For example, as shown in  FIG. 3 , a state of a character is classified into several categories, and the state changes according to the change of environments. More particularly, when finding an enemy during movement, the character chases, approaches, and then attack the enemy. When the battle is ended after the attack, the character moves to find another enemy. 
         [0047]    An NPC has various roles and acts more intelligently due to the game information delivered in this method. 
         [0048]    The knowledge DB  170  accumulates and stores a plurality of processed input and output values from the artificial intelligence algorithm processing unit  160 . In this case, the knowledge DB  170  stores data and output action according to the command (protocol header) and parameter information of game packet data input from the game server  10 . 
         [0049]    The packet based intelligence game NPC server configured as described above, as shown in  FIG. 4 , forms a game system by including: at least two or more game servers  11  and  12  which are provides different games, respectively; and an NPC server  100  which converts a protocol header of each of the game servers into metadata and previously stores the metadata, analyzes game packet data delivered from a specific game server to determine parameter information and action of a user character with the metadata, and provides an NPC taking an intelligent action corresponding to the user character&#39;s action to the corresponding game server. 
         [0050]    The game servers  11  and  12  each deliver information on the movement of a user character directed by a user in the NPC server  100 , and the NPC server  100  provides an NPC intelligently responding to the user character&#39;s movement. 
         [0051]    Thus, a database of action patterns of a new NPC corresponding to each of the game servers  11  and  12  can be built. 
         [0052]    Accordingly, cost and time taken to develop NPC servers corresponding to the game servers  11  and  12  can be reduced, and the action pattern of the NPC corresponding to the movements of a user character for each game server is diversified. 
         [0053]      FIG. 5  is a flow chart showing a method of providing an artificial intelligence NPC according to an embodiment of the present invention. First, a game information metadata processing unit  150  stores game information specialized for each game server (S 11 ). In this case, the game information specialized for each game server includes a game map, a village location, a monster position, and item information, which may represent features of each game server well but be not limited thereto. 
         [0054]    A network communication processing unit  110  receives game packet data from the game server  10  (S 12 ). 
         [0055]    A packet metadata processing unit  120  analyzes the game packet data and converts the analyzed game packet data into metadata (S 13 ). Herein, the game packet data includes a protocol header (command) and parameter information (type and data of the parameter). 
         [0056]    Also, the packet metadata processing unit  120  can determine what protocol header and parameter information of what game server the analyzed game packet data is, only when metadata according to a protocol header file of each game server is previously stored. 
         [0057]    The packet metadata processing unit  120  delivers and stores the converted protocol header to the artificial intelligence algorithm processing unit  160 , and the data metadata processing unit  130  stores parameter information of metadata in an internal data structure processing unit  140  (S 14 ). 
         [0058]    The artificial intelligence algorithm processing unit  160  receives the parameter information stored in the internal data structure processing unit  140  and the game information stored in a game information metadata processing unit  150  to generate data and action of an NPC according to a command (protocol header) of the metadata received from the packet metadata processing unit  12  (S 15 ). That is, data is given suitably for the situation to generate an NPC and act, using parameter information changing according to the action of a user character of the game server  10 . 
         [0059]    For example, when a user character approaches close to an NPC, the NPC receives a parameter on a movement coordinate and movement command of the user character, and generates data such as an action and movement coordinate corresponding to the parameter on a movement coordinate and movement command of a user character. 
         [0060]    Moreover, when a user character attacks an NPC, the NPC receives a parameter such as used weapon type and attack command of the user character, and generates data (attack) corresponding to the weapon type and attack command of the user character. 
         [0061]    In this way, the data and action of an NPC generated in the artificial intelligence algorithm processing unit  160  are stored and managed in the knowledge DB  170 . The same pattern in the artificial intelligence algorithm processing unit  160  on the basis of accumulated activities and data of the NPC may be processed by reflecting the accumulated data to be provided in various action patterns. 
         [0062]    The artificial intelligence algorithm processing unit  160  may have a logic implemented with a huge if-else or switch-case statement, and provide action patterns in more various cases according to various responding patterns of users. That is, the same output does not respond to the same input, but different output may be induced from the accumulated data to generate a more practical action pattern (which cannot be expected by a user) despite the same input. 
         [0063]    Finally, the data and action of an NPC generated in the artificial intelligence algorithm processing unit  160  are delivered to the packet metadata processing unit  120 . The packet metadata processing unit  120  converts the delivered data and action of an NPC in a packet format to be determined by a game server and then delivers the converted data and action to the game server through the network communication processing unit  110  (S 16 ). 
         [0064]    Accordingly, an NPC with various action patterns can be provided by sharing the action patterns of NPCs corresponding to various games. 
         [0065]    The packet based artificial intelligence game NPC server and artificial intelligence NPC provision method are not limited to operation methods and configurations of embodiments described above. The above embodiments may be configured to have various modifications by selectively combining all or several of the embodiments. 
         [0066]    As described above, the present invention can reduce cost and time taken to develop a number of NPC servers by providing NPCs of a plurality of game servers using one NPC server. 
         [0067]    And also, an NPC with various action patterns can be provided by sharing the action patterns of NPCs corresponding to various games. 
         [0068]    Although the packet based game NPC server, method for providing an NPC, and game system have been described with reference to the specific embodiments, they are not limited thereto. Therefore, it will be readily understood by those skilled in the art that various modifications and changes can be made thereto without departing from the spirit and scope of the present invention defined by the appended claims.