Patent Publication Number: US-8527553-B2

Title: Data management apparatus and data distribution system

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application is a continuation of Ser. No. 12/000,262 filed Dec. 11, 2007, which claims priority under 35 U.S.C. §119(a) to Patent Application No. 2007-260311 filed in Japan on Oct. 3, 2007, the entire contents of which are hereby incorporated by reference. 
    
    
     BACKGROUND 
     1. Field 
     Example embodiments of the present invention relate to a data management apparatus and a data distribution system, and more particularly to a data management apparatus and a data distribution system for displaying ghost data based on a history of a game having been previously played. 
     2. Description of the Background Art 
     In a racing game system disclosed in Japanese Laid-Open Patent Publication No. 2003-320164, three-dimensional image data (ghost data) generated in a game which is played using an individual racing game apparatus is uploaded to a database server through a communication line so as to be stored in a high-capacity storage device of the database server. When a player of a racing game apparatus desires that a racing car of the player compete with a racing car (ghost car) which was previously operated by another player, the racing game apparatus accesses the database server through the communication line so as to download ghost data of the game selected from among ghost data which are obtained when other players previously played the game, and which are stored in the high-capacity storage device of the database server. At this time, based on a ranking list created by a management device of the database server, the ghost data ranked immediately above or a few ranks higher than data of the best record of the player operating the racing game apparatus is automatically selected. Thus, the player is allowed to cause his/her car to compete with a ghost car of another player who matches the player in skill. 
     However, the racing game system disclosed in Japanese Laid-Open Patent Publication No. 2003-320164 has a problem that a high-capacity storage device is necessary for storing all the ghost data uploaded to the database server from the individual racing game apparatuses. Further, the storage capacity of the high-capacity storage device is limited, and therefore the amount of the ghost data to be uploaded to the database server is also limited. Furthermore, the ranking list is created based on all the ghost data uploaded from the individual racing game apparatuses to the database server, and therefore there is a problem that processing load necessary for creating the ranking list is large. 
     In order to solve the problem, only the ghost data (for example, the ghost data for top  1000  players) ranked higher than a predetermined rank in the ranking list may be stored in the high-capacity storage device instead of storing, in the high-capacity storage device, all the ghost data uploaded from the individual racing game apparatuses to the database server. In this case, however, an unskilled player is not allowed to compete, in operating a car, with another player who matches the unskilled player in skill since the ghost data of the another player may not be stored in the high-capacity storage device of the database server. 
     SUMMARY 
     Therefore, example embodiments of the present invention provide a system capable of limiting the capacity for storing data in a server to a predetermined range of capacity, and allowing each player to obtain ghost data in accordance with a skill of the player. 
     Example embodiments of the present invention may have the following features. The reference numerals, figure numbers, supplementary descriptions, and the like in the parentheses in the following description indicate an exemplary correspondence with the drawings, and are not intended to limit, in any way, the scope of the present invention. 
     According to example embodiments of the present invention, a data management apparatus ( 8 ) collects data generated by a plurality of information terminals ( 3 ), and transmits, in accordance with a request from a one of the plurality of information terminals, necessary data to the one of the plurality of information terminals, and comprises reception means ( 81 ,  84 , S 30 ) and database process means ( 81 ,  83 , S 34 ). The reception means receives, from a one of the plurality of information terminals, both ghost data ( FIG. 12 ) used for reproducing a game process having been executed in accordance with an operation performed by a user of the one of the plurality of information terminals, and score data (accomplishment time) which represents an index indicating a skill of a game based on the ghost data. The database process means stores the received ghost data in accordance with a definition ( FIG. 14 ) of a database in which a plurality of score sections are defined based on a value represented by the score data, and a maximum registration allowable number of users for which the ghost data are registered is defined for each of the plurality of score sections, or is defined so as to be the same among the plurality of score sections. 
     The database process means may include: database storage means ( 83 ); score section determination means ( 81 , S 31 ); registration means ( 81 , S 34 ); and deletion means ( 81 , S 33 ). The database storage means stores the database in which the plurality of score sections are defined based on the value represented by the score data. The score section determination means determines one of the plurality of score sections, with which the received ghost data is to be associated, in accordance with the score data received with the ghost data, when the ghost data is received by the reception means from a one of the plurality of information terminals. The registration means registers the ghost data in the database so as to be associated with the one of the plurality of score sections determined by the score section determination means. The deletion means deletes, as necessary, the ghost data for at least one user for which the ghost data has been already registered, such that, in the one of the plurality of score sections, the number of users for which the ghost data are registered is not greater than the maximum registration allowable number of users for which the ghost data are registered, when the ghost data is registered by the registration means. The deletion means may delete, as necessary, the registered ghost data after new ghost data is registered by the registration means. Alternatively, the deletion means may delete, as necessary, the registered ghost data before new ghost data is registered by the registration means. In the former case, the number of users for which the ghost data are registered is greater than the maximum registration allowable number only for a short period of time. In the latter case, the number of users for which the ghost data are registered is never greater than the maximum registration allowable number. 
     Further, the data management apparatus may further comprise transmission means ( 81 ,  84 , S 39 ) for transmitting, to a one of the plurality of information terminals, the ghost data for at least one user for which the ghost data is registered so as to be associated with one of the plurality of score sections in the database, in accordance with a ghost data distribution request for requesting the ghost data, when the ghost data distribution request is received from the one of the plurality of information terminals. 
     Further, the ghost data distribution request from a one of the plurality of information terminals includes the score data of the game played by using the one of the plurality of information terminals, and the transmission means may transmit, to the one of the plurality of information terminals, the ghost data for at least one user for which the ghost data is registered so as to be associated with one of the plurality of scores sections, the one of the plurality of score sections being associated with the score data included in the ghost data distribution request. 
     Further, the ghost data distribution request from a one of the plurality of information terminals includes the score data of the game played by using the one of the plurality of information terminals, and the transmission means may transmit, to the one of the plurality of information terminals, the ghost data for at least one user for which the ghost data is registered so as to be associated with one of the plurality of score sections in the vicinity of another one of the plurality of score sections, the another one of the plurality of score sections being associated with the score data included in the ghost data distribution request. 
     Further, the ghost data includes information of an area in which the ghost data is generated, and the ghost data distribution request from the one of the plurality of information terminals includes information of an area in which the one of the plurality of information terminals is provided, and the transmission means may transmit, to the one of the plurality of information terminals, the ghost data having been received with the score data which is best of all the score data of the ghost data including the information of the area which is the same as the information of the area included in the ghost data distribution request. 
     Further, the ghost data may include key operation history data ( FIG. 13 ) in which keys, of a corresponding one of the plurality of information terminals, operated by a user are stored in chronological order. 
     Further, the ghost data may include action data representing an action of a subject to be operated (Op) in a game space, when a user operates keys of a corresponding one of the plurality of information terminals. 
     Further, the game process is a process performed in a racing game which allows a user to operate a game character, and the ghost data is used for reproducing a movement of the game character (Op) operated by a user playing the game in which the user competes in a time in which the racing game is cleared, or a time in which a course is finished, and the score data is time information representing the time in which the racing game is cleared, or the time in which a course is finished. 
     Further, the deletion means may delete the ghost data having been registered in the database earliest of all the ghost data of one of the plurality of score sections, the one of the plurality of score sections being associated with the ghost data having been newly received. 
     Further, the deletion means may delete the ghost data having been generated, by one of the plurality of information terminals, earliest of all the ghost data of one of the plurality of score sections, the one of the plurality of score sections being associated with the ghost data having been newly received. 
     According to example embodiments of the present invention, a data distribution system allows a data management apparatus ( 8 ) to collect data generated by a plurality of information terminals ( 3 ), and transmit necessary data to a one of the plurality of information terminals, in accordance with a request from the one of the plurality of information terminals. Each of the plurality of information terminals includes data generation means ( 10 , S 11 ), data transmission means ( 10 , S 14 ), and request transmission means ( 10 ,  18 , S 17 ). The data generation means generates both ghost data ( FIG. 12 ) used for reproducing a game process having been executed in accordance with an operation performed by a user of said each of the plurality of information terminals, and score data which represents an index indicating a skill of a game based on the ghost data. The data transmission means transmits, to the data management apparatus, the ghost data generated by the data generation means and the score data based on the ghost data. The request transmission means transmits, to the data management apparatus, a ghost data distribution request for requesting the ghost data. The data management apparatus includes data reception means ( 81 ,  84 , S 30 ), database process means ( 81 ,  83 , S 34 ), and data transmission means ( 81 ,  84 , S 39 ). The data reception means receives, from the plurality of information terminals, the ghost data, and the score data (accomplishment time) based on the ghost data. The database process means stores the received ghost data in accordance with a definition ( FIG. 14 ) of a database in which a plurality of score sections are defined based on a value represented by the score data, and a maximum registration allowable number of users for which the ghost data are registered is defined for each of the plurality of score sections, or is defined so as to be the same among the plurality of score sections. The data transmission means transmits, to a one of the plurality of information terminals, the ghost data for at least one user for which the ghost data is registered so as to be associated with one of the plurality of score sections in the database, in accordance with the ghost data distribution request, among the ghost data stored by the database process means, when the ghost data distribution request is received from the one of the plurality of information terminals. 
     According to example embodiments of the present invention, the total capacity for storing the ghost data in a server is limited to a predetermined range of capacity, and each player is allowed to obtain the ghost data in accordance with a skill of said each player. 
     These and other features, aspects and advantages of example embodiments of the present invention will become more apparent from the following detailed description of example embodiments of the present invention when taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is an external view illustrating a game system  1  according to an embodiment of the present invention; 
         FIG. 2  is a functional block diagram of a game apparatus  3 ; 
         FIG. 3  is a perspective view of a controller  7  as viewed from the top rear side thereof; 
         FIG. 4  is a perspective view of the controller  7  as viewed from the bottom front side thereof; 
         FIG. 5  is a perspective view illustrating a state where an upper housing of the controller  7  is removed; 
         FIG. 6  is a perspective view illustrating a state where a lower housing of the controller  7  is removed; 
         FIG. 7  is a block diagram illustrating a structure of the controller  7 ; 
         FIG. 8  is a diagram illustrating a configuration of a data distribution system according to the embodiment; 
         FIG. 9  is a block diagram illustrating a configuration of a server device  8 ; 
         FIG. 10  is a diagram illustrating an example of a game screen displayed when a game is executed by the game apparatus  3 ; 
         FIG. 11  is a diagram illustrating an exemplary memory map of a flash memory  17 ; 
         FIG. 12  is a diagram illustrating exemplary ghost data; 
         FIG. 13  is a diagram illustrating exemplary play data; 
         FIG. 14  is a diagram illustrating an exemplary ghost table; 
         FIG. 15  is a diagram illustrating exemplary time section setting data; 
         FIG. 16  is flow chart illustrating a flow of a process performed by the CPU  10  of the game apparatus  3 ; and 
         FIG. 17  is a flow chart illustrating a flow of a process performed by the CPU  81  of the server device  8 . 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     (Entire Structure of Game System) 
     With reference to  FIG. 1 , a game system  1  including a game apparatus according to an embodiment of the present invention will be described.  FIG. 1  is an external view illustrating the game system  1 . Hereinafter, a game apparatus and a game program according to the present embodiment will be described by using a stationary game apparatus as an example. As shown in  FIG. 1 , the game system  1  includes a television receiver (hereinafter, referred to simply as a television set)  2 , a game apparatus  3 , an optical disc  4 , a marker section  6 , and a controller  7 . The system according to the present embodiment allows the game apparatus  3  to execute game process based on a game played using the controller  7 . 
     Into the game apparatus  3 , the optical disc  4 , which typifies an information storage medium and is exchangeable with respect to the game apparatus  3 , is detachably inserted. In the optical disc  4 , the game program executed by the game apparatus  3  is stored. The game apparatus  3  has, on the front surface thereof, an opening through which the optical disc  4  is inserted. The game apparatus  3  executes the game process by reading and executing the game program stored in the optical disc  4  which is inserted in the game apparatus  3  through the opening. 
     The game apparatus  3  is connected through a connection cord to the television set  2  typifying a display device. The television set  2  displays a game image generated through the game process executed by the game apparatus  3 . Further, the marker section  6  is provided in the vicinity of the screen of the television set  2  (on the top surface of a screen of the television set  2  in  FIG. 1 ). The marker section  6  includes two markers, a marker  6 R and a marker  6 L, at both ends thereof. Specifically, each of the markers  6 R and  6 L includes at least one infrared LED, and emits an infrared light forward from the television set  2 . The marker section  6  is connected to the game apparatus  3 , and the game apparatus  3  is capable of controlling each infrared LED included in the marker section  6  so as to be lit up. 
     The controller  7  is an input device for supplying, to the game apparatus  3 , operation data representing a content of an operation performed on the controller  7 . The controller  7  is connected to the game apparatus  3  by wireless communication. In the present embodiment, for example, the Bluetooth (registered trademark) technology is used for the wireless communication between the controller  7  and the game apparatus  3 . In another embodiment, the controller  7  and the game apparatus  3  may communicate with each other by a wired connection. 
     (Internal Structure of Game Apparatus  3 ) 
     Next, with reference to  FIG. 2 , an internal structure of the game apparatus  3  will be described.  FIG. 2  is a block diagram illustrating a structure of the game apparatus  3 . The game apparatus  3  includes: the CPU  10 ; a system LSI  11 ; an external main memory  12 ; a ROM/RTC  13 ; a disc drive  14 ; an AV-IC  15 , and the like. 
     The CPU  10 , serving as a game processor, executes the game program stored in the optical disc  4  so as to perform the game process. The CPU  10  is connected to the system LSI  11 . In addition to the CPU  10 , the external main memory  12 , the ROM/RTC  13 , the disc drive  14 , and the AV-IC  15  are also connected to the system LSI  11 . The system LSI  11  performs processing such as control of data transmission between respective components connected thereto, generation of an image to be displayed, and acquisition of data from an external apparatus. An internal structure of the system LSI will be described below. The external main memory  12 , which is of a volatile type, stores programs, such as a game program loaded from the optical disc  4  or a flash memory  17 , and various data, and is used as a work area and a buffer area for the CPU  10 . The ROM/RTC  13  includes a ROM (so-called a boot ROM) incorporating a program for booting the game apparatus  3 , and a clock circuit (RTC: real time clock) for counting time. The disc drive  14  reads, from the optical disc  4 , program data, texture data and the like, and writes the read data into an internal main memory  11   e  described below or the external main memory  12 . 
     Provided in the system LSI  11  are an input/output processor (I/O processor)  11   a , a GPU (graphics processor unit)  11   b , a DSP (digital signal processor)  11   c , a VRAM  11   d , and the internal main memory  11   e . These component  11   a ,  11   b ,  11   c ,  11   d  and  11   e  are connected to each other via an internal bus not shown. 
     The GPU  11   b , which is a part of rendering means, generates an image in accordance with a graphics command (draw command) from the CPU  10 . The VRAM  11   d  stores data (such as polygon data and texture data) necessary for the GPU  11   b  to execute the graphics command. When an image is generated, the GPU  11   b  generates image data by using the data stored in the VRAM  11   d.    
     The DSP  11   c  functions as an audio processor, and generates audio data by using sound data and sound waveform (tone quality) data stored in the internal main memory  11   e  and the external main memory  12 . 
     The image data and the audio data generated as described above, are read by the AV-IC  15 . The AV-IC  15  outputs the read image data to the television set  2  via an AV connector  16 , and also outputs the read audio data to a speaker  2   a  of the television set  2 . Thus, an image is displayed on the television set  2 , and a sound is outputted from the speaker  2   a.    
     The I/O processor  11   a  executes data reception and transmission among the components connected thereto and download of data from an external apparatus. The I/O processor  11   a  is connected to the flash memory  17 , a wireless communication module  18 , a wireless controller module  19 , an extension connector  20 , and an external memory card connector  21 . To the wireless communication module  18 , an antenna  22  is connected, and to the wireless controller module  19 , an antenna  23  is connected. 
     The I/O processor  11   a  is connected to a network via the wireless communication module  18  and the antenna  22  so as to communicate with other game apparatuses or various servers connected to the network. The I/O processor  11   a  accesses the flash memory  17  at regular time intervals so as to detect for data to be transmitted to the network. When the data to be transmitted is detected, the data is transmitted to the network via the wireless communication module  18  and the antenna  22 . Further, the I/O processor  11   a  receives, via the network, the antenna  22  and the wireless communication module  18 , data transmitted from the other game apparatuses or data downloaded from a download server, and stores the received data in the flash memory  17 . The CPU  10  executes the game program so as to read the data stored in the flash memory  17 , thereby using the read data on the game program. The flash memory  17  may store not only the data transmitted and received among the game apparatus  3 , and other game apparatuses or the various servers, but also saved data (result data or intermediate step data of the game) of a game played with the game apparatus  3 . 
     Further, the I/O processor  11   a  receives the operation data transmitted from the controller  7  via the antenna  23  and the wireless controller module  19 , and (temporarily) stores the operation data in a buffer area of the internal main memory  11   e  or the external main memory  12 . 
     Further, the I/O processor  11   a  is connected to the extension connector  20  and the external memory card connector  21 . The extension connector  20 , which is a connector used for interface such as a USB and an SCSI, allows communication with the network, without using the wireless communication module  18 , by connecting, to the extension connector  20 , a media such as an external storage medium, or a peripheral device such as another controller, or a wired communication connector. The external memory card connector  21  is a connector for connecting to the external memory card connector  21  the external storage medium such as a memory card. For example, the I/O processor  11   a  accesses the external storage medium via the extension connector  20  or the external memory card connector  21 , so as to store data in the external storage medium or read data from the external storage medium. 
     The game apparatus  3  includes a power button  24 , a reset button  25 , and an eject button  26 . The power button  24  and the reset button  25  are connected to the system LSI  11 . When the power button  24  is pressed so as to be ON, the power is supplied to the respective components of the game apparatus  3  via an AC adapter which is not shown. Further, when the power button  24 , which is ON, is pressed again, the game apparatus  3  shifts to a low power standby mode. Also in this state, power is being supplied to the game apparatus  3 , and therefore the game apparatus  3  continues to be connected to the network such as the Internet. When the power supply, which is ON, is to be OFF, the power supply can be OFF by pressing the power button  24  for a predetermined time period or longer period. When the reset button  25  is pressed, the system LSI  11  restarts a boot program of the game apparatus  3 . The eject button  26  is connected to the disc drive  14 . When the eject button  26  is pressed, the optical disc  4  is ejected from the disc drive  14 . 
     Types of communication performed by the game apparatus  3  according to the present embodiment will be described. The types of the communication can be mainly classified into two. Communication (hereinafter, referred to as “constant connection allowing communication”) using a constantly connected network so as to allow communication even in the low power standby mode as described above, is classified as one of the types. For example, communication (hereinafter, referred to as “as-needed connection communication”) for controlling connection and communication so as to be enabled, every time the necessity arises, depending on an application program of a communication competition game, or the like, is classified as the other of the types. In the constant connection allowing communication, the I/O processor  11   a  independently transmits transmission data written in the flash memory  17  and writes the received data in the flash memory  17 , as described above, regardless of programs such as the game program described below. Therefore, when used is an application (such as a mail application) using the constant connection allowing communication, it is possible to write, in the flash memory  17 , data to be transmitted, and read, from the flash memory  17 , the received data. Further, in the constant connection allowing communication, the communication can be periodically performed even in the low power standby mode. Further, even when a predetermined game program is being executed, the communication can be performed as a background process. 
     With reference to  FIGS. 3 to 4 , the controller  7  will be described.  FIG. 3  is a perspective view of the controller  7  as viewed from the top rear side thereof.  FIG. 4  is a perspective view of the controller  7  as viewed from the bottom front side thereof. 
     As shown in  FIGS. 3 and 4 , the controller  7  includes a housing  71  formed by plastic molding or the like, and the housing  71  includes an operation section  72  having a plurality of operation portions. The housing  71  has a generally parallelepiped shape extending in a longitudinal direction from front to rear. The overall size of the housing  71  is small enough to be held by one hand of an adult or even a child. 
     At the center of the front portion of the top surface of the housing  71 , a cross key  72   a  is provided. The cross key  72   a  is a cross-shaped four-direction push switch. The cross key  72   a  includes operation portions corresponding to the four directions (front, rear, right and left), which are located on projecting portions, respectively, which are arranged at intervals of 90 degrees so as to form a cross. The player selects one of the front, rear, right and left directions by pressing a corresponding one of the operation portions of the cross key  72   a . Through an operation on the cross key  72   a , the player can, for example, indicate a direction in which a player character or the like appearing in a virtual game world is to move or select one of a plurality of options. 
     Although the cross key  72   a  is an operation section for outputting an operation signal in accordance with the aforementioned direction input operation performed by the player, such an operation section may be provided in another form. For example, the cross key  72   a  may be replaced with an operation section, including four push switches corresponding to directions, respectively, represented by a cross, for outputting an operation signal in accordance with the push switch having been pressed by the player. Alternatively, the cross key  72   a  may be replaced with an operation section including the aforementioned four push switches and a center switch provided at the center of the cross formed by the four push switches. Alternatively, the cross key  72   a  may be replaced with an operation section which includes an inclinable stick (so-called a joystick) projecting from the top surface of the housing  71  and outputs an operation signal in accordance with the inclining direction of the stick. Still alternatively, the cross key  72   a  may be replaced with an operation section which includes a disc-shaped member horizontally slidable and outputs an operation signal in accordance with the sliding direction of the disc-shaped member. Still alternatively, the cross key  72   a  may be replaced with a touch pad. 
     Behind the cross key  72   a  on the top surface of the housing  71 , a plurality of operation buttons  72   b ,  72   c ,  72   d ,  72   e ,  72   f  and  72   g  are provided. The operation buttons  72   b ,  72   c ,  72   d ,  72   e ,  72   f  and  72   g  are each an operation section for outputting a respective operation signal assigned to the operation buttons  72   b ,  72   c ,  72   d ,  72   e ,  72   f  or  72   g  when the player presses a head thereof. For example, the operation buttons  72   b ,  72   c , and  72   d  are assigned with functions of a first button, a second button, and an A button, for example. Further, the operation buttons  72   e ,  72   f  and  72   g  are assigned with functions of a minus button, a home button and a plus button, for example. The operation buttons  72   a ,  72   b ,  72   c ,  72   d ,  72   e ,  72   f  and  72   g  are assigned with various operation functions in accordance with the game program executed by the game apparatus  3 . In an exemplary arrangement shown in  FIG. 3 , the operation buttons  72   b ,  72   c  and  72   d  are arranged in a line at the center in the front-rear direction on the top surface of the housing  71 . The operation buttons  72   e ,  72   f  and  72   g  are arranged in a line in the left-right direction between the operation buttons  72   b  and  72   d  on the top surface of the housing  71 . The operation button  72   f  has a top surface thereof buried in the top surface of the housing  71 , so as not to be inadvertently pressed by the player. 
     In front of the cross key  72   a  on the top surface of the housing  71 , an operation button  72   h  is provided. The operation button  72   h  is a power switch for remote-controlling the power of the game apparatus  3  to be on or off. The operation button  72   h  also has a top surface thereof buried in the top surface of the housing  71 , so as not to be inadvertently pressed by the player. 
     Behind the operation button  72   c  on the top surface of the housing  71 , a plurality of LEDs  702  are provided. The controller  7  is assigned a controller type (number) so as to be distinguishable from the other controllers  7 . For example, the LEDs  702  are used for informing the player of the controller type which is currently set to controller  7  that he or she is using. Specifically, when the controller  7  transmits transmission data to the wireless communication module  18 , one of the plurality of LEDs  702  is lit up so as to correspond to the controller type. 
     On the top surface of the housing  71 , a sound hole for outputting a sound from a speaker (speaker  706  shown in  FIG. 5 ) described below is formed between the operation button  72   b  and the operation buttons  72   e ,  72   f , and  72   g.    
     On the bottom surface of the housing  71 , a recessed portion is formed. The recessed portion is formed at a position at which an index finger or middle finger of the player is located when the player holds the controller  7  with one hand so as to orient the front surface thereof to the markers  6 L and  6 R. On a slope surface of the recessed portion on the bottom surface of the housing  71 , an operation button  72   i  is provided. The operation button  72   i  is an operation section acting as, for example, a B button. 
     On the front surface of the housing  71 , an image pickup element  743  included in the imaging information calculation section  74  is provided. The imaging information calculation section  74  is a system for analyzing image data taken by the controller  7  and detecting the position of the center of gravity, the size and the like of an area having a high brightness in the image data. The imaging information calculation section  74  has, for example, a maximum sampling period of about 200 frames/sec., and therefore can trace and analyze even a relatively fast motion of the controller  7 . The imaging information calculation section  74  will be described below in detail. On the rear surface of the housing  71 , the connector  73  is provided. The connector  73  is, for example, an edge connector, and is used for engaging and connecting the controller  7  with, for example, the connection cable. 
     Here, for giving specific description, a coordinate system is defined for the controller  7 . As shown in  FIGS. 3 and 4 , XYZ-axes orthogonal to each other are defined for the controller  7 . Specifically, the Z-axis is defined along the longitudinal direction of the housing  71  corresponding to the front-rear direction of the controller  7 , and the direction toward the front surface (the surface on which the imaging information calculation section  74  is provided) of the controller  7  is defined as the Z-axis positive direction. The Y-axis is defined along the top-bottom direction of the controller  7 , and the direction toward the bottom surface (the surface on which the operation button  72   i  is provided) of the housing  71  is defined as the Y-axis positive direction. The X-axis is defined along the right-left direction of the controller  7 , and the direction toward the left side surface (the side surface shown in  FIG. 4  but not shown in  FIG. 3 ) of the housing  71  is defined as the X-axis positive direction. 
     With reference to  FIGS. 5 and 6 , an internal structure of the controller  7  will be described.  FIG. 5  is a perspective view illustrating a state where an upper casing (a part of the housing  71 ) of the controller  7  is removed, as viewed from the rear surface side of the controller  7 .  FIG. 6  is a perspective view illustrating a state where a lower casing (a part of the housing  71 ) of the controller  7  is removed, as viewed from the front surface side of the controller  7 .  FIG. 6  is a perspective view illustrating a reverse side of a substrate  700  shown in  FIG. 5 . 
     As shown in  FIG. 5 , the substrate  700  is fixed inside the housing  71 . On the top main surface of the substrate  700 , the operation buttons  72   a ,  72   b ,  72   c ,  72   d ,  72   e ,  72   f ,  72   g  and  72   h , an acceleration sensor  701 , the LEDs  702 , an antenna  754  and the like are provided. These elements are connected to a microcomputer  751  (see  FIGS. 6 and 7 ) and the like via lines (not shown) formed on the substrate  700  and the like. The wireless module  753  (see  FIG. 7 ) and the antenna  754  allow the controller  7  to act as a wireless controller. A quartz oscillator  703  (not shown), provided in the housing  71 , generates a reference clock of the microcomputer  751  described below. On the top main surface of the substrate  700 , the speaker  706  and an amplifier  708  are provided. The acceleration sensor  701  is provided to the left of the operation button  72   d  on the substrate  700  (that is, provided not at the center portion of the substrate  700  but near the periphery of the substrate  700 ). Accordingly, the acceleration sensor  701  is allowed to detect for both a direction change of the gravitational acceleration and an acceleration containing a component generated due to centrifugal force, in accordance with the controller  7  rotating about the longitudinal direction thereof. Therefore, by performing a predetermined calculation, the game apparatus  3  or the like is allowed to determine the rotation of the controller  7 , with preferable accuracy, based on the acceleration data having been detected. 
     As shown in  FIG. 6 , at the front edge of the bottom main surface of the substrate  700 , the imaging information calculation section  74  is provided. The imaging information calculation section  74  includes an infrared filter  741 , a lens  742 , the image pickup element  743  and an image processing circuit  744  located in order, respectively, from the front surface of the controller  7  on the bottom main surface of the substrate  700 . At the rear edge of the bottom main surface of the substrate  700 , the connector  73  is attached. On the bottom main surface of the substrate  700 , a sound IC  707  and the microcomputer  751  are provided. The sound IC  707  is connected to the microcomputer  751  and the amplifier  708  via a wiring formed on the substrate  700  and the like, and outputs an audio signal to the speaker  706  via the amplifier  708  in accordance with sound data transmitted from the game apparatus  3 . 
     On the bottom main surface of the substrate  700 , a vibrator  704  is provided. The vibrator  704  may be, for example, a vibration motor or a solenoid. The vibrator  704  is connected to the microcomputer  751  by a wiring formed on the substrate  700  or the like, and is controlled so as to be ON/OFF in accordance with vibration data transmitted from the game apparatus  3 . The controller  7  is vibrated by an actuation of the vibrator  704 , and the vibration is conveyed to the player&#39;s hand holding the controller  7 . Thus, a so-called vibration-feedback game is realized. The vibrator  704  is positioned slightly in front of the longitudinal center of the housing  71 , and therefore a vibration of the housing  71  is enhanced so as to allow a player holding the controller  7  to easily feel the controller  7  vibrating. 
     With reference to  FIG. 7 , the internal structure of the controller  7  will be described.  FIG. 7  is a block diagram illustrating the structure of the controller  7 . 
     As shown in  FIG. 7 , the controller  7  includes a communication section  75  in addition to the operation section  72 , the imaging information calculation section  74 , the acceleration sensor  701 , the vibrator  704 , the speaker  706 , the sound IC  707 , and the amplifier  708 , which are described above. 
     The imaging information calculation section  74  includes the infrared filter  741 , the lens  742 , the image pickup element  743  and the image processing circuit  744 . The infrared filter  741  allows only infrared light to pass therethrough, among light incident on the front surface of the controller  7 . The lens  742  collects the infrared light which has passed through the infrared filter  741  and outputs the infrared light to the image pickup element  743 . The image pickup element  743  is a solid-state image pick-up device such as, for example, a CMOS sensor or a CCD. The image pickup element  743  takes an image of the infrared light collected by the lens  742 . Accordingly, the image pickup element  743  takes an image of only the infrared light which has passed through the infrared filter  741  and generates image data. The image data generated by the image pickup element  743  is processed by the image processing circuit  744 . Specifically, the image processing circuit  744  processes the image data obtained from the image pickup element  743 , identifies a spot thereof having a high brightness, and outputs, to the communication section  75 , process result data representing a position coordinate point and the area size of the identified spot. The imaging information calculation section  74  is fixed to the housing  71  of the controller  7 . The imaging direction of the imaging information calculation section  74  can be changed by changing the direction of the housing  71 . 
     The controller  7  preferably includes a three-axis (X-axis, Y-axis, and Z-axis) acceleration sensor  701 . The three axis acceleration sensor  701  detects a linear acceleration in three directions, that is, the up/down direction (Y-axial direction shown in  FIG. 3 ), the left/right direction (X-axial direction shown in  FIG. 3 ), and the forward/backward direction (the Z-axial direction shown in  FIG. 3 ). 
     The communication section  75  includes the microcomputer  751 , a memory  752 , the wireless module  753  and the antenna  754 . The microcomputer  751  controls the wireless module  753  for wirelessly transmitting the transmission data while using the memory  752  as a storage area during the processing. The microcomputer  751  controls operations of the sound IC  707  and the vibrator  704  based on the data received from the game apparatus  3  by the wireless module  753  via the antenna  754 . The sound IC  707  processes the sound data and the like transmitted from the game apparatus  3  via the communication section  75 . Further, the microcomputer  751  actuates the vibrator  704  based on, for example, the vibration data (for example, a signal for powering the vibrator  704  ON or OFF) transmitted by the game apparatus  3  via the communication section  75 . 
     Data from the controller  7  including an operation signal (key data) from the operation section  72 , acceleration signals (X, Y, and Z-axial direction acceleration data) of the three axial directions from the acceleration sensor  701 , and the process result data from the imaging information calculation section  74  are outputted to the microcomputer  751 . The microcomputer  751  temporarily stores the respective input data (the key data, the X, Y, and Z-axial direction acceleration data, and process result data) in the memory  752  as the transmission data which is to be transmitted to the wireless communication module  18 . The wireless transmission from the communication section  75  to the wireless communication module  18  is performed periodically at predetermined time intervals. Since game process is generally performed at a cycle of 1/60 sec., data needs to be transmitted at a cycle of a time period shorter than the cycle of the game process. Specifically, the game process unit is 16.7 ms ( 1/60 sec.), and the transmission interval of the communication section  75  structured using the Bluetooth (registered trademark) technology is 5 ms. At a time at which the transmission to the wireless communication module  18  is to be performed, the microcomputer  751  outputs the transmission data stored in the memory  752  as a series of operation information to the wireless module  753 . The wireless module  753  uses, for example, the Bluetooth (registered trademark) technology to transmit, from the antenna  754 , operation information as a radio wave signal by using a carrier wave of a predetermined frequency. Thus, data from the controller  7  including the key data from the operation section  72 , the X, Y, and Z-axial direction acceleration data from the acceleration sensor  701 , and the process result data from the imaging information calculation section  74  are transmitted from the controller  7 . The wireless communication module  18  of the game apparatus  3  receives the radio wave signal, and the game apparatus  3  demodulates or decodes the radio wave signal to obtain the series of operation information (the key data the X, Y, and Z-axial direction acceleration data, and the process result data). Based on the obtained operation information and the game program, the CPU  10  of the game apparatus  3  performs the game process. When the communication section  75  is structured by using the Bluetooth (registered trademark) technology, the communication section  75  can function so as to receive transmission data which is wirelessly transmitted from another device. 
     The structure of the game system  1  as described above is merely an example, and the present invention is applicable to any information processing device such as a hand-held game apparatus and a mobile telephone. 
     According to the present embodiment, as shown in  FIG. 8 , a data distribution system comprises a server device  8  and a plurality (for example, three in  FIG. 8 ) of the game apparatuses  3   a ,  3   b , and  3   c . In the following description, each of the plurality of the game apparatuses  3  is capable of communicating with the server device  8  through a communication network such as the Internet, for example. The communication between each of the plurality of the game apparatuses  3  and the server device  8  may be performed by using one of the constant connection allowing communication or the as-needed connection communication as described above. 
     The server device  8  is, in general, a typical general-purpose computer including the CPU  81 , a RAM  82 , an HDD  83 , and a communication section  84 , as shown in  FIG. 9 . 
     Hereinafter, operations performed by the game apparatus  3  and the server device  8  of the data distribution system will be described in detail. 
       FIG. 10  is a diagram illustrating an exemplary game screen of a game executed by the game apparatus  3 . While in the present embodiment the game apparatus  3  executes a racing game, the present invention is not limited thereto, and other games may be executed. 
     In the racing game executed by the game apparatus  3 , a player operates a player object Op in a game space by using the controller  7 . In the racing game, a player is allowed to optionally select one game mode from among at least two game modes, that is, a time attack mode in which only the player object Op runs a racecourse, and a competing-with-ghost mode in which the player object Op competes with a ghost object Og, thereby playing the game in the selected game mode.  FIG. 10  is a diagram illustrating an exemplary game screen displayed when a player is playing the game in the competing-with-ghost mode. 
     The ghost object Og represents an object which moves on a racecourse in a manner identical to (or almost the same as) that in which a player object Op, operated by a player (hereinafter, referred to as a current player) who is currently playing the game or another player, previously moved on the racecourse. A movement of the ghost object Og is controlled by the CPU  10  in accordance with ghost data (described below in detail) used for reproducing a movement of the player object Op which was previously operated during a game play. The ghost data is generated when a player plays the racing game. 
     The server device  8  collects the ghost data from the plurality of the game apparatuses  3  (the plurality of the game apparatuses  3  are not limited to the game apparatuses  3   a ,  3   b , and  3   c , and, for example, the number of the plurality of the game apparatuses  3  may be 10,000), and stores the ghost data in the HDD  83 . In accordance with a request from one of the plurality of the game apparatuses  3 , the server device  8  transmits, to the one of the plurality of the game apparatuses  3 , appropriate ghost data among all the ghost data stored in the HDD  83 . Thus, a user of the game apparatus  3  is allowed to download, as necessary, the ghost data, stored in the server device  8 , of a user of another game apparatus  3 , and compete with the user of the other game apparatus  3  by using the ghost data. 
     The game apparatus  3  may directly receive, from another game apparatus  3 , the ghost data generated by the other game apparatus  3 , through a communication line or a storage medium, instead of the ghost data generated by the other game apparatus  3  being downloaded from the server device  8 . 
       FIG. 11  is a diagram illustrating a memory map of the flash memory  17  of the game apparatus  3 . The flash memory  17  stores the ghost data (hereinafter, referred to as “own ghost data”) generated when the racing game is played by the game apparatus  3  of a player him/herself, and the ghost data (hereinafter, referred to as “received ghost data”) which is downloaded from the server device  8  or received from another game apparatus  3 . 
     In the present embodiment, 32 racecourses of the first to the thirty-second courses are provided for the racing game, and the flash memory  17  stores the own ghost data obtained in one complete play, for each racecourse, in an own ghost data storage area. Specifically, the flash memory  17  stores the own ghost data for 32 courses in total, that is, ghost data Gs 1  for the first course to ghost data Gs 32  for the thirty-second course. When one game apparatus  3  is used by a plurality of players, the own ghost data storage area may be separately provided for each player. 
     The ghost data for maximum 32 plays, that is, the received ghost data Gc 1  to Gc 32 , may be stored in the received ghost data storage area. 
       FIG. 12  is a diagram illustrating a specific example of the ghost data. The ghost data includes information such as: a name of a user who played the racing game; a user icon ID for defining a user icon used for identifying the user on a screen; a residence area of the user (that is, an area representing a place in which the game apparatus  3  is set); a course number of a racecourse used by the user playing the game; a character number indicating a driver of a racing car operated by the user; a machine type representing a type of the racing car operated by the user; play data representing a content of an operation performed by the user; accomplishment time representing an elapsed time from a start to a goal with an accuracy of 1/1000 second; play date and time representing a date and time at which the racing game was played (that is, a date and time at which the ghost data was generated); and the like. 
     The play data represents a transition of an input operation performed by a user in a time period from a start to a goal in a race, as shown in  FIG. 13 . For example, the play data shown in  FIG. 13  indicates that, on the controller  7 , the A button  72   d  and a front operation portion of the cross key  72   a  are pressed in the time period from [0:0:000] (minute:second:microsecond) (that is, a start time) to [0:0:353], and only the A button  72   d  of the controller  7  is pressed in a time period from [0:0:354] to [0:1:001]. By using the play data, as necessary, any of the plurality of the game apparatuses  3  is allowed to reproduce, at any time, the movement of the player object Op operated in the racing game which was previously played. 
     In the present embodiment, data representing a transition of an input operation performed by a user is used as the play data to reproduce a movement of the player object Op in the racing game previously played. However, the present invention is not limited thereto. In another example, movement data representing a behavior of the player object Op in the racing game which was previously played, e.g., data representing a transition of a coordinate point indicating a position of the player object Op, may be used as the play data. 
       FIG. 14  is a diagram illustrating a specific example of a ghost table stored in the HDD  83  of the server device  8 . The ghost table represents a database which contains the ghost data collected from the plurality of the game apparatuses  3  so as to be associated with the course number and time section number. The course number is used for distinguishing among the first to the thirty-second courses so as to identify a racecourse, as described above. The time section number is a number used for distinguishing among 100 time sections into which the accomplishment time is divided, for each racecourse, so as to identify a time section. A time range of each time section is defined, for each racecourse, in accordance with time section setting data shown in  FIG. 15 . The time section setting data is stored in the HDD  83  of the server device  8 , as with the ghost table. 
     In accordance with the time section setting data shown in  FIG. 15 , for example, the time range of the time section [01] for the course number [01] (that is, the first course) is defined as a time range from [2:1:001] to [2:2:000]. Further, the time range of the time section [02] for the course number [32] is defined as a time range from [4:2:001] to [4:3:000]. The time range of each time section is individually set for each racecourse because the accomplishment time substantially depends on the entire length and the difficulty level of a racecourse. For example, when used is the racecourse of the course number [01] in which the entire length thereof is short, most of the players have the accomplishment time ranging from [2:0:001] to [3:40:000]. On the other hand, when used is the racecourse of the course number [02] in which the entire length thereof is long, most of the players have the accomplishment time greater than [4:0:001]. 
     In the present embodiment, the time range of each time section is set based on the time section setting data as described above. However, the present invention is not limited thereto. For example, the time range of each time section may be the same among all the racecourses. The time range of each time section may be automatically changed by the CPU  81  of the server device  8  depending on a situation. 
     The ghost table shown in  FIG. 14  contains the ghost data for each time section based on the time section setting data as described above. Specifically, when the CPU  81  of the server device  8  receives the ghost data from the game apparatus  3 , the CPU  81  checks the course number and the accomplishment time contained in the received ghost data, and determines the course number and the time section number, in the ghost table, associated with the ghost data, so as to be stored in the storage area for the course number and the time section number. For example, when the course number contained in the ghost data received from the game apparatus  3  is [02], and the accomplishment time is [5:35:1101], the time section number for the ghost data is determined as [02] in accordance with the time section setting data shown in  FIG. 15 . Therefore, the ghost data is registered in the ghost table as the ghost data for the time section number [02] of the course number [02]. 
     In the present embodiment, the ghost data for maximum 20 users are registered for each time section of each racecourse in the ghost table. Therefore, when the ghost data for 20 users are registered in one of the time sections for one of the course numbers (that is, when the number of users for which the ghost data are registered reaches the maximum registration allowable number), and the ghost data for the same one of the time sections is newly received, the CPU  81  of the server device  8  deletes, from the ghost table, the ghost data having been registered or generated earliest of all the registered ghost data, and registers, in the ghost table, the ghost data having been newly received. As an exemplary modification, the ghost data having been newly received is registered, and thereafter the earliest ghost data of all the registered ghost data may be deleted. In this case, the number of users for which the ghost data are registered in the ghost table is greater than the maximum registration allowable number, only for a short period of time. 
     In the present embodiment, the maximum number of users for which the ghost data are to be registered in the ghost table is uniformly  20  for each time section of each racecourse. The present invention is not limited thereto. The maximum registration allowable number may be different for each racecourse or for each time section. Further, the CPU  81  of the server device  8  may automatically change, depending on a situation, the maximum registration allowable number for each time section of each racecourse. 
     The HDD  83  of the server device  8  stores the ghost data of the world champion and the local champion (for example, Japan champion, US champion, and European champion), in addition to the ghost table and the time section setting data as described above. The world champion represents the ghost data including the accomplishment time which is best of all the ghost data of users all over the world. The local champion represents the ghost data including the accomplishment time which is best in an area corresponding to the residence area of the ghost data. The ghost data of each of the world champion and the local champion has its data updated every time the ghost data including the accomplishment time representing a new record is registered in the ghost table. 
     Next, an operation performed by the CPU  10  of the game apparatus  3  will be described with reference to the flow chart shown in  FIG. 16 . The flow chart shows a flow of a process based on a racing game program executed by the CPU  10 . The racing game program is stored in the optical disc  4 , and loaded to the internal main memory  11   e  or the external main memory  12  as necessary. 
     When the execution of the racing game program is started, the CPU  10  initially determines, in step S 10 , whether or not the racing game is to be started, in accordance with an instruction inputted from a user by using the controller  7 . When the instruction from the user indicates that the racing game is to be started, the process advances to step S 11 . Otherwise, the process advances to step S 15 . 
     In step S 11 , the CPU  10  executes the game process. Specifically, the CPU  10  controls the player object Op in the game world in accordance with the operation information inputted from the controller  7 , thereby generating a game screen. In a mode in which the player object Op competes with the ghost object Og, the ghost object Og in the game world is controlled in accordance with any of the ghost data (the own ghost data or the received ghost data) stored in the flash memory  17  of the game apparatus  3 . 
     In step S 11 , the CPU  10  executes a process of generating the ghost data including the play data described above, in accordance with the operation information inputted from the controller  7  during the racing game being played while executing the aforementioned game process. 
     When the racing game is ended, the CPU  10  determines, in step S 12 , whether or not the accomplishment time of the racing game having been most recently played is better than the player&#39;s own record. When the accomplishment time of the racing game having been most recently played is better than the player&#39;s own record, the process advances to step S 13 . Otherwise, the process advances to step S 15 . 
     In step S 13 , the CPU  10  updates the own ghost data, of the relevant racecourse, stored in the flash memory  17  by replacing the own ghost data with the ghost data generated in step S 11 . 
     In step S 14 , the CPU  10  transmits the ghost data generated in step S 11 , via the wireless communication module  18  and the communication network, to the server device  8 . Thus, the ghost data transmitted to the server device  8  is registered in the ghost table by the server device  8 . 
     In step S 15 , the CPU  10  determines whether or not the ghost data is to be requested from the server device  8 , in accordance with the instruction inputted from the user by using the controller  7 . When the instruction for downloading the ghost data is provided by the user, the process advances to step S 16 . Otherwise, the process advances to step S 20 . The ghost data may be downloaded from the server device  8  when, for example, the execution of the racing game program is started, or at regular time intervals (for example, once a day) by using the aforementioned constant connection allowing communication as well as when an instruction is made by a user. 
     In step S 16 , the CPU  10  determines a type of the ghost data to be requested from the server device  8 , in accordance with the instruction inputted from the user by using the controller  7 . In the present embodiment, the ghost data which can be requested from the server device  8  includes, for example, the ghost data including the accomplishment time near the user&#39;s own record (that is, the ghost data including the accomplishment time which is almost the same as the user&#39;s own record, or the ghost data including the accomplishment time which is slightly better than the user&#39;s own record), the ghost data of the world champion, and the ghost data of the local champion. In the present embodiment, the type of the ghost data, which is to be requested from the server device  8 , is designated by a user. However, the present invention is not limited thereto. For example, the ghost data including the accomplishment time near the user&#39;s own record may be automatically requested from the server device  8 , at regular time intervals, by using the constant connection allowing communication as described above. 
     In step S 17 , the CPU  10  transmits a ghost data distribution request to the server device  8  through the wireless communication module  18  and the communication network. The ghost data distribution request includes the type of the ghost data determined in step S 16 , and, as necessary, the course number of the racecourse for which the ghost data is requested. When the ghost data including the accomplishment time near the user&#39;s own record is requested from the server device  8 , the CPU  10  reads the accomplishment time of the own ghost data stored in the own ghost data storage area (as shown in  FIG. 11 ) of the flash memory  17 , and transmits both the accomplishment time of the own ghost data and the ghost data distribution request to the server device  8 . Further, when the ghost data to be requested from the server device  8  is the ghost data of the local champion, the CPU  10  transmits both the residence area and the ghost data distribution request to the server device  8 . 
     In step S 18 , the ghost data satisfying the ghost data distribution request transmitted in step S 17  is received from the server device  8 . 
     In step S 19 , the ghost data received from the server device  8  is stored in the received ghost data storage area ( FIG. 11 ) of the flash memory  17 . When the received ghost data for 32 users, which are the maximum storage allowable number of users, are stored in the received ghost data storage area, the received ghost data for one user is deleted in accordance with the instruction from a user, and thereafter the ghost data having been received in step S 18  is newly stored. After the ghost data is downloaded from the server device  8 , the CPU  10  may automatically start to perform game process in the competing-with-ghost mode using the ghost data having been downloaded. 
     In step S 20 , whether or not the game is to be ended (that is, whether or not the execution of the racing game program is to be ended) is determined in accordance with the instruction inputted from the user by using the controller  7 . When the game is to be continued, the process is returned to step S 10 . When the game is to be ended, the execution of the game program is ended. 
     Next, an operation performed by the CPU  81  of the server device  8  will be described with reference to the flow chart shown in  FIG. 17 . The flow chart shows a flow of the process based on the data management program executed by the CPU  81 . The data management program is stored in the HDD  83 , and loaded to the RAM  82  as necessary. 
     When the execution of the data management program is started, the CPU  81  initially determines, in step S 30 , whether or not the ghost data has been received through the communication section  84  from one of the plurality of the game apparatuses  3 . When the ghost data has been received from one of the plurality of the game apparatuses  3 , the process advances to step S 31 . Otherwise, the process advances to step S 37 . 
     In step S 31 , the CPU  81  determines a score section with which the received ghost data is to be associated, in accordance with the course number and the accomplishment time included in the ghost data received in step S 30 , and the time section setting data ( FIG. 15 ) stored in the HDD  83 . 
     In step S 32 , the CPU  81  determines whether or not the ghost data for the maximum registration allowable number of users are registered in the storage area for the time section, in the ghost table, with which the ghost data having been received in step S 30  is to be associated. When the storage area for the time section with which the ghost data having been received in step S 30  is associated is full, the process advances to step S 33 . Otherwise, the process advances to step S 34 . 
     In step S 33 , the CPU  81  deletes the ghost data having the earliest play date and time (that is, the ghost data having the earliest generation date and time) of all the ghost data stored in the storage area for the time section with which the ghost data having been received in step S 30  is associated. In a case where the ghost table contains old ghost data for a long period of time, when a user desires that the ghost data be downloaded, the ghost data having been previously downloaded is likely to be downloaded again, thereby preventing the user from feeling fresh. In the present embodiment, however, the ghost data stored in each time section is deleted in chronological order, and therefore the old ghost data is prevented from remaining in the ghost table for a long period of time. The ghost data having been earliest registered in the ghost table may be deleted instead of deleting the ghost data having the earliest play date and time. 
     In step S 34 , the CPU  81  stores the ghost data having been received in step S 30 , in the storage area for the corresponding time section in the ghost table. The process step of step S 34  may be performed preceding the process step of step S 32 . In this case, the ghost data having been received in step S 30  is stored in the storage area for the corresponding time section in the ghost table, and thereafter whether or not the number of users for which the ghost data are registered in the storage area for the time section, in which the received ghost data has been stored, is greater than the maximum registration allowable number, may be determined. When the number of the users for which the ghost data are registered is greater than the maximum registration allowable number, the ghost data having the earliest play date and time or the earliest registration date and time may be deleted from the stored ghost data. 
     In step S 35 , the CPU  81  compares the accomplishment time of the ghost data having been received in step S 30 , with the accomplishment time of the ghost data of each of the world champion and the local champion having been most recently stored in the HDD  83 , so as to determine whether or not the ghost data having been received in step S 30  represents a new world champion and/or local champion. In the comparison with the local champion, the accomplishment time of the ghost data having been received in step S 30  is compared with the accomplishment time of the ghost data, of the local champion, which includes the same residence area as that of the ghost data having been received in step S 30 , among the ghost data registered as the local champion. When the ghost data having been received in step S 30  represents a new champion, the process advances to step S 36 . Otherwise, the process advances to step S 37 . 
     In step S 36 , the CPU  81  updates the ghost data of the world champion and/or the local champion, which are stored in the HDD  83 . The ghost data of the local champion is updated by updating the ghost data of the local champion, which includes the same residence area as that of the ghost data having been received in step S 30 . 
     In step S 37 , the CPU  81  determines whether or not the ghost data distribution request as described above is received from one of the plurality of the game apparatuses  3  through the communication section  84 . When the ghost data distribution request is received from one of the plurality of the game apparatuses  3 , the process advances to step S 38 . Otherwise, the process is returned to step S 30 . 
     In step S 38 , the CPU  81  selects the ghost data for one user from among the ghost data, stored in the HDD  83 , for a plurality of users, in accordance with the ghost data distribution request having been received in step S 37 . Specifically, for example, when requested is the ghost data including the accomplishment time which is almost equivalent to the own record of the user using the game apparatus  3  which has transmitted the ghost data distribution request, the CPU  81  selects at random the ghost data for one user from among the ghost data which are registered so as to be associated with the same time section as that for the accomplishment time of the user using the game apparatus  3  which has transmitted the ghost data distribution request, in accordance with the accomplishment time corresponding to the user&#39;s own record, which has been received with the ghost data distribution request. Further, for example, when requested is the ghost data including the accomplishment time which is slightly better than the own record of the user using the game apparatus  3  which has transmitted the ghost data distribution request, the CPU  81  selects at random the ghost data for one user from among the ghost data which are registered so as to be associated with the time section which is ranked one section higher than the time section for the accomplishment time of the user using the game apparatus  3  which has transmitted the ghost data distribution request. Further, for example, when the ghost data of the world champion is requested, the CPU  81  selects the ghost data of the world champion stored in the HDD  83 . Further, for example, when the ghost data of the local champion is requested, the CPU  81  selects the ghost data including the residence area of the user from among the ghost data of the local champion stored in the HDD  83 . 
     In step S 39 , the CPU  81  transmits, to the game apparatus  3  having transmitted the ghost data distribution request, the ghost data selected in step S 38 . Then, the process is returned to step S 30 . 
     As described above, according to the present embodiment, the total capacity for storing the ghost data in a server can be limited to a predetermined range of capacity, and further the ghost data can be acquired in accordance with a skill of each player. 
     In the present embodiment, the ghost table is sectioned in accordance with the accomplishment time of the racing game. However, the present invention is not limited thereto. For example, the ghost table may be sectioned in accordance with any index, such as a stage clear time of a puzzle game, and an acquired score of an action game, indicating whether the game is played well or poorly (that is, indicating a skill of the user), in addition to the accomplishment time. 
     While example embodiments of the invention have been described in detail, the foregoing description is in all aspects illustrative and not restrictive. It is understood that numerous other modifications and variations can be devised without departing from the scope of the invention.