the preferred embodiment of this invention centers on portable game system 100 , shown in fig1 . portable game system 100 is comprised of a sturdy handheld case 101 , an individual display screen 102 , speaker 103 or headphone jack ( not shown ), directional joypad 104 , control buttons 105 , upload port 106 , and left - and right - side communication ports 107 and 108 , respectively . other controls , for instance keyboards , analog joysticks , analog throttles , or touchpads ( none shown ) also may be supplied . game data is preferably uploaded from or downloaded to game system 100 though upload port 106 . the data is transferred through data path 122 , which is preferably a ‘ sneaker - net ’ path , but may be an electrical , optical , wireless path , preferably to personal computer 120 . over connection 130 , personal computer 120 has access through the internet 132 to server 140 . in the preferred implementation , the ‘ sneaker - net ’ version , data path 122 is formed by transferring a usb memory stick ( not shown ) from upload port 106 comprising a usb port to another usb port ( not shown ) on personal computer 120 . in such a configuration , the data being transferred in either direction is preferably stored on the memory stick as one or more files . in another implementation , data path 122 is formed by a usb cable running from upload port 106 and a mating usb port ( not shown ) on personal computer 120 . in still another embodiment , data path 122 is wireless and upload port 106 may comprise an optical communication port , or an rf communication transceiver , for example a bluetooth module . server 140 refers to database 142 to support transactions such as ones that create , restore , update , distribute , or transfer game records for game system 100 . server 140 also has a private key 141 for use in cryptography , to support sending and receipt of encrypted messages and providing digital signatures for the purpose of authenticating files and records . this , and the meaning of the asterisk (‘*’) shown in private key 141 , will be discussed further in conjunction with fig4 through 12 . as needed , personal computer 120 can provide a user interface with a dedicated application ( not shown ) or with a web browser application ( not shown ) accessing server 140 , with the user interface being displayed on monitor 124 . user interface for supporting transactions are well - known in the art and need not be described here . in an alternative embodiment , the connection between game unit 100 and server 140 can be made without personal computer 120 . for instance , upload port 106 can comprise an ethernet interface and form connection 130 through the internet 132 directly . note that in fig1 , the details of a connection from computer 120 to the wan ( internet 132 ) are not shown , but are well - known in many variations . in still another embodiment , the connection between game unit 100 and server 140 can be wireless , as with wifi or with data connections provided through the cellular telephone network . in an exemplary game , a virtual character 170 is displayed on screen 102 of game unit 100 . accompanying the image or animation shown on screen 102 are preferably sounds of character 170 , emitting from speaker 103 . such presentations , too , are well known in the art . referring now to fig2 , game units 100 , 100 ′, and 100 ″ have been connected together , side - by - side to form game unit array 200 . each game unit 100 , 100 ′, 100 ″ has corresponding screens 102 , 102 ′, 102 ″; speakers 103 , 103 ′, 103 ″; joypads 104 , 104 ′, 104 ″; buttons 105 , 105 ′, 105 ″; ports 106 , 106 ′, 106 ″. the unoccupied left - side communication port 107 of unit 100 is seen , as is the unoccupied right - side communication port 108 ″ of unit 100 ″. however , the previously shown right - side communication port 108 of unit 100 is joined to the mating left - side port of unit 100 ′, neither of which is seen in fig2 because units 100 and 100 ′ are pressed closely and obscure the view of them . similarly , the right - side communication port of unit 100 ′ is joined to the mating left - side communication port of unit 100 ″ and the view of both is obscured by the close joining of the units 100 ′ and 100 ″. in this configuration , a communication path is formed that interconnects units 100 , 100 ′, and 100 ″ of array 200 , wherein unit 100 has direct communication with unit 100 ′, but indirect communication with unit 100 ″ through unit 100 ′. unit 100 ′ has direct communication with both units 100 and 100 ″. this communication path enables the creation of an effective larger screen comprising displays 102 , 102 ′, and 102 ″, in this case to display a contiguous , panoramic view of a game environment , comprising background landscape 180 , 181 , and 182 and game objects . in this example , left - side 171 of character 170 is seen on display 102 , while right - side 172 of character 170 is seen on display 102 ′. a second character 173 , likely owned by one of the players owning units 100 ′ or 100 ″, is shown . one expects that a titanic battle is about to ensue . and rather than each player seeing the battle unfold on their respective , single small screens ( e . g ., 102 or 102 ″), the clash is going to occur on a much larger , wide - screen , panoramic display that results from the combination of screens 102 , 102 ′, and 102 ″. note that while in the preferred embodiment , game systems 100 , 100 ′, and 100 ″ are described as hand - held . however , similar principles can be applied to alternative embodiments , such as laptop computers used for game play , or for gaming consoles that might each drive a corresponding external monitor . in such cases , the configuration of the individual displays may not be implied by the specific interconnection of the units by the communication ports such as 107 and 108 . in such case , a manual process may be employed to identify the relative position of each screen to the corresponding computers . manual configuration of screen - placement is well - known in the art , as with the macintosh and windows operating systems ( by apple , inc . of cuppertino , calif ., and microsoft corporation , of redmond , wash . respectively ), though such configuration is applied to single computers driving multiple screens , rather than application to a plurality of computers having individual screens . in another alternative embodiment , communication between game units 100 , 100 ′, and 100 ″ may be achieved wirelessly , for example using optical or rf communication interfaces , such as those described above . in an embodiment using rf interfaces , communication ports such as 107 and 108 are preferably replaced by interlocking clips , magnetic couplers , alignment pins , or the like , to hold the game units in substantial alignment , but this is not strictly required . in the preferred embodiment , array 200 comprises two or more connected units 100 , 100 ′, and 100 ″ shown in fig2 to form a single row . however , in alternative embodiments , other configurations of array 200 are possible . for instance , four game units might be arranged in a square . further , there is no requirement for the displays to be arranged in a regular pattern , for instance , three units might be arranged in a ‘ l ’ configuration , which would be useful to depict an assault from the base of a cliff face . in such not - purely - linear configurations , additional or differently placed communication ports like 107 and 108 would be needed . in still another embodiment , the communication among game units can be more flexible , and a manual configuration process , as above . in still another embodiment , instead of communication ports 107 and 108 , game unit 100 conveys its own identity and orientation through emitters located along its sides . compatible receivers correspondingly located would be able to detect the emitters of another game unit , and note its identity and relative position and orientation . such emitter / receivers might be infrared , or magnetic . communication among game units so equipped may be implemented using a different mechanism , for example using zigbee or bluetooth rf connections . referring now to fig3 , a block diagram of a exemplary handheld game unit 100 of the present invention is shown . cpu 300 connects through at least one bus 301 to various memory , i / o , and communication subsystems . display 102 is driven by display control 302 under the control of cpu 300 . speaker 103 is driven by amplifier 304 with signals from audio control 303 . user inputs from joypad 104 and buttons 105 are conditioned and made available to cpu 300 through input interface 305 . input interface 305 may also provide for additional input devices , such as keyboards , analog joysticks , analog throttles , or touchpads ( none shown ). cpu 300 is also preferably provided with several classes of memory . rom 320 is well suited to storing permanent software codes , such as a bios , and permanent data , as will be described in more detail below . secure non - volatile memory 330 is configured to be written to and read only by cpu 300 and should not be available through a debug procedure or external inspection . secure nv memory 330 will contain primarily data , but may contain code . public non - volatile memory 340 is not required to provide the same degree of protection to its contents , which may be data or code . ram 310 is not considered secure . uplink interface 306 , which is preferably a usb interface , provides the connection between uplink port 106 and either non - secure internal memory ( e . g ., ram 310 or public nv memory 340 ) or cpu 300 through bus 301 . left peer interface 307 provides the connection to left - side port 107 while right peer interface 308 provides the connection to right - side port 108 . both left - and right - peer interface 307 and 308 connect to either non - secure internal memory , or cpu 300 , through bus 301 . the left - and right - peer interfaces 307 and 308 can be implemented as individual serial peripheral interface ( spi ) devices , for example with the left - peer interface 307 configured as a slave and the right - peer interface 308 to be configured as a master . in such a configuration , leftmost game unit 100 in array 200 will not detect a slave enable on left - peer interface 307 , and thereby be aware of its position as the leftmost unit in array 200 . similarly , rightmost game unit 100 ″ in array 200 will not find a connection ( i . e ., will see no returning data from a slave ) on the right - peer interface corresponding to right - side port 108 and will thereby be aware of its position as the rightmost unit in array 200 . however , the right - peer interface 108 of unit 100 will assert a slave enable for the left - peer interface corresponding to the left - side port ( neither shown ) of middle game unit 100 ′ of array 200 , and the right - peer interface corresponding to the right - side port ( neither shown ) of middle game unit 100 ′ of array 200 will assert a slave enable for the left - peer interface corresponding to the left - side port ( neither shown ) of rightmost game unit 100 ″ and will receive return data from the left - side port of game unit 100 ″. in this way , game unit 100 ′ will be aware of its interior position in array 200 , though in this embodiment , its actual position is not known except through the preparation process discussed in conjunction with fig9 . in an alternative embodiment , a single spi interface can service both left - side and right - side ports 107 and 108 in a daisy - chain configuration with a loopback circuit activated on open left - side and right - side ports . in such a configuration , the leftmost unit 100 of array 200 can detect its position by the active loopback circuit ( not shown ) on left - side port 107 , and rightmost unit 100 ″ of array 200 can detect its position by the active loopback circuit ( not shown ) on right - side port 108 ″. any of interfaces 302 , 303 , 306 , 307 , 308 can access non - secure memories such as 310 and 340 using a direct memory access ( dma ) control , or can be fed data by cpu 300 . a memory management unit ( not shown ) may be used to control a memory cache , or to offload block copies of memory under direction of cpu 300 . preferably , at least a portion of rom 320 and all of secure nv memory 330 are fabricated as a part of an integrated chip comprising cpu 300 . in this way , there is no opportunity for probing of any data stored in secure memory . one preferred implementation of cpu 300 is the gpl16230a as specified by generalplus technology , inc ., of taiwan , republic of china . this system - on - a - chip ( soc ) product is well - suited for an implementation of the present invention , as it comprises not only cpu 300 , display control 302 , audio control 303 , controllers for various nv memory types suitable for implementing secure nv memory 330 and public nv memory 340 , and at least a portion of rom 320 and ram 310 , and other ancillary components such as a real - time clock , timers , etc . this chip also provides an spi master / slave port which can be configured as one of left - side interface 307 or right - side interface 308 , or can be configured as the driver for a daisy - chain configuration ( not shown ) as described in the alternative embodiment above . however , in this implementation , as with many soc implementations , secure nv memory 330 is exposed on one or more chips not fabricated on the same chip as cpu 300 . further , this cpu has built - in debug capabilities . appropriate care must be taken that the portion of bus 301 that carries signals to and from secure nv memory 330 is resists exposure to mechanisms that will permit tampering or inspection of data stored there . one means of providing this protection is by epoxy coating the chips and circuit board to render access to the data nearly impossible . in particular , access to the native debug modes of the chip must be prevented . in an alternative embodiment , data stored in ‘ secure ’ memory may instead be encrypted such that a key known to the cpu 300 is used to decrypted the information strictly inside of registers of cpu 300 . if updated by cpu 300 , the data is re - encrypted before being stored back into the ‘ secure ’ memory . in this embodiment , it doesn &# 39 ; t matter that the encrypted data is accessible , since it can &# 39 ; t be read so long as the keys are not accessible other than at the factory or within cpu 300 . at the time of manufacture , game unit 100 may be represented by new memory map 410 . in such a memory map , the contents of mask rom 320 includes at least some code ( not shown ), and a copy of the public key 321 corresponding to the private key 141 in server 140 . with private key 141 , server 140 is able to generate encrypted messages or signatures that can be verified as authentically originating from server 140 or a trusted proxy ( not shown ) that also has access to the private key 141 . the rsa encryption method taught by rivest et al . in u . s . pat . no . 4 , 405 , 829 , can be used to create public key 321 and corresponding private key 141 and encrypted messages and digital signatures that use them . the private key 141 in fig1 and public key 321 in fig4 are both shown with an asterisk (‘*’). throughout fig4 through 12 , messages or files authenticated by encryption or signature made with private key 141 and therefore decryptable or verifiable with public key 321 are also marked with an asterisk . public key 321 is present at the time of manufacture of device 100 because it is embedded in the semiconductor maskwork for the mask rom 320 . among the code also contained in rom 320 should be routines for decrypting messages or files and verifying signatures purported to be from server 140 , or routines for encrypting messages or files for private transmission to server 140 , and these routines are preferably the only code that accesses public key 321 . device initialization procedure 420 is performed by server 140 , or a proxy ( not shown ) having access to the private key 141 of server 140 . device initialization procedure 420 preferably generates a unique device id and an associated device key , which are stored in database 142 as device id record 422 , authenticated by digital signature by private key 141 , and an associated device key record 426 ( the association is not shown ). a plurality of associated pairs of device id records 422 , 423 , and 424 and device key records 426 , 427 , and 428 corresponding to a like plurality of game units ( not shown ) are retained by server 140 in database 142 . also during device initialization process 420 , device id record copy 422 ′ and device key record copy 426 ′ are recorded , preferably permanently , to produce initialized memory map 430 in private storage 330 of exactly one game unit 100 . device key record and copy 426 and 426 ′ are marked with a bullet (‘.’) as are messages or records encrypted or signed by the corresponding key , as seen in fig1 . device initialization process 420 ensures that there is only one game unit 100 corresponding to unique device id record 422 . records which have a one - to - one associate with a specific game unit 100 , such as device id record and copy 422 and 422 ′ and device key record and copy 426 and 426 ′, are drawn with a double outline in the fig4 through 8 and 10 through 12 to point out their uniqueness . any records and files that may be legitimately duplicated among game units 100 , 100 ′, and 100 ″, are shown with a single stroke border , as with server public key record 321 . now , game unit 100 can generate a message whose author is the device id of record 422 ′ and sign or encrypt that message with the device key of record 426 ′. upon receipt by server 140 , the database 142 can be queried to find the record 422 having the matching device id and the associated device key record 426 can be retrieve and used to decrypt or authenticate the message . the routines to perform these message or signature preparations are also preferably stored in rom 320 . in the preferred embodiment just described , the key in device key record 426 is a symmetric key , as these are generally less computationally intensive than asymmetric key algorithms , such as the rsa algorithm . those skilled in the art will recognize that a public - key / private - key algorithm would work in this context , too . the device key in device key record 426 is not necessarily unique to the device ( though being unique would be a good thing ), but the universe of device keys should be large , and individual keys unlikely to be repeated , to make guessing the device key difficult . in practice , the device key of records 426 and 426 ′ likely are unique . in an alternative embodiment , the signature by server 140 of device id record 422 is not required , except to allow a device to verify the integrity of private memory 330 , or for use in processes described below . in an alternative implementation of device implementation process 420 , the device id records 422 , 423 , and 424 and device key records 426 , 427 , and 428 may be generated in advance and associated before , as , or once copies , such as 422 ′ and 426 ′, are written to a device 100 . fig5 shows asset load process 520 which takes an initialized memory map 430 and produces asseted memory map 530 by copying the contents of asset set 510 into public memory space 340 . asset set 510 is representative of characters , items , game pieces ( such as character 170 ), or even environments ( such as that which produced background landscapes 180 , 181 , and 182 ) which are held by game unit 100 but which may not be held by all other game units . asset set 510 contains a manifest 512 which lists the other files and records that comprise asset set 510 . asset record 514 preferably describes the name ( e . g ., “ sky viper ”), type of asset ( e . g ., “ monster ”), attributes ( e . g ., movement =“ fly , crawl ”, attack =“ bite ”, special =“ venom ”) and stats ( e . g ., strength =“ low ”, “ speed =“ fast ”) that are used to drive behaviors and interactions in the game . media files 515 and 516 represent one or more files that contains images , sounds , 3 d models , textures , motion profiles , animations , sufficient for the presentation of character 170 throughout the game , both in solo play mode as in fig1 , and combined play ( as in fig2 ). preferably , individual asset files such as 515 and 516 contain media assets that are closely related and would be used together , for instance , a single media file 515 might represent the 3 d model and textures necessary to render character 170 , whereas media file 516 might represent a motion sequence of the model to illustrate a biting attack . the accompanying soundtrack might be included in media file 516 , or be in a separate media file ( not shown ). asset file 517 may include data describing an environment , such as the one illustrated as the background landscape 180 , 181 , and 182 in the panorama shown in fig2 . the description in asset file 517 can include the name ( e . g ., “ microcircuit plains ”, type of asset ( e . g ., “ environment ”), attributes ( e . g ., weather =“ hot , windy ”, terrain =“ flat , smooth ”, special =“ none ”). media asset file 518 may contain background images such as were used to draw landscapes 180 , 181 , and 182 , and media asset file 519 the ambient soundtrack for the environment . in an alternative embodiment , instead of containing media assets suitable for 3 d rendering , asset files 515 and 516 would contain 2 d animations of the character . media files and the hierarchy they populate for each asset ( 515 , 517 ) are well - known in the fields of video games and simulation modeling . those skilled in the art will recognize that for a single character , many , perhaps even hundreds of media assets , or more , are needed to completely represent a character , and that the hierarchy used to render a view on display 102 may comprise a complex scene graph . alternatively , the scene may be simply composed of background images and a number of animated sprites . while 2 d rendering techniques can make the asset set 510 simpler , the principles the media asset storage are the same . one significant addition to asset set 510 over the usual media asset sets in games is that each of the records and files in asset set 510 are preferably digitally signed with the private key 141 of server 140 so that their authenticity is unquestioned . this is of value if other units 100 ′ and 100 ″ when connected in array 200 require elements of asset set 510 to render their portion of the panorama . a digital signature of by server 140 authenticates the stats and attributes of asset record 514 . this is discussed further below . preferably , a copy of the contents of asset set 510 are recorded in database 142 as being associated with device id record 422 as device contents list 521 . copies 522 ′, 524 ′, 525 ′, 526 ′, 527 ′, 528 ′, and 529 ′ of the records and files of asset set 510 and / or device contents list 521 are transferred to game unit 100 and stored in public memory 340 . the record made in database 142 associating device id record 422 with contents list 521 is valuable in case a subsequent restoration is needed ( discussed below ). a further utility of asset load process 520 is for it to operate with respect to a device having previous asseted memory map to install an additional asset set . in this use of the process 520 , the resulting manifest in device contents list 521 associated with the device id 422 in database 142 and copied into public memory 340 would have the union of the previously loaded assets and those in the additional asset set . thus , the asset load process can implement an electronic version of “ booster packs ”, well - known in non - electronic collectable games . preferably , server 140 can offer such booster packs to players through a web site accessed with personal computer 120 and shown on monitor 124 . following the selection of one or more booster packs by a player using this web site , server 140 would add the selected booster pack ( s ) contents to the device content list 521 in database 142 by updating the manifest , and adding the new asset records and media asset files . at the same time , the new assets can be transferred to the device through connection 130 and data path 122 , or the transfer can wait for a later asset sync process 820 ( described in detail below in conjunction with fig8 ). preferably , if more than one instance of an asset record is present in a manifest in asseted memory map 530 , the media asset files corresponding to the asset record are not duplicated . further , within database 142 , it would not be necessary to have more than one instance of any media asset file : instances of media asset files throughout database 142 in device content lists 521 and in asset sets 510 , are preferably merely references to a master instance of the media asset files . in fig6 , registration process 620 takes asseted memory map 530 and produces registered memory map 630 by copying authenticated user id record 622 from database 142 as user id record copy 622 ′ in public memory 340 . user id record 622 is the primary record of a player &# 39 ; s account on server 140 . during registration process , user id record 622 would be associated in database 142 with device id record 422 in a one - to - many relationship , that is , the owner of the account identified by user id record 622 may own zero , one , or more game units , each having a unique device id record , e . g ., 422 . but each device id would be associated with , at most , one user id . accounts on web sites as might be hosted on server 140 are well - known , and are commonly used to conduct transactions , and to participate in online communities . the database 142 used to drive such a site commonly tracks information about each user in account records . so far , an account referenced by user id record 622 can be associated with a game unit uniquely identified by device id record 422 , which carries the collection of assets listed in asset set 510 . note that registration process 620 and asset load process 520 could occur in any order and produce the same result . an initial asset load process 520 preferably occurs during manufacture and packaging of the game unit 100 , but in the alternative may occur after the player has acquired game unit 100 . in the latter case , asset load process occurs through data path 122 and connection 130 with server 140 , as described above . registration process 620 would typically occur after the player has acquired game unit 100 , and would occur with a connection to server 140 preferably through connection 130 and data path 122 . as an implementation choice , the registration process 620 can be carried out by software running on personal computer 120 with access to device id record 422 ′ through data path 122 , or by software running on cpu 300 having communication ( however convoluted ) with server 140 , or a combination thereof . a similar choice may be made with respect to the implementation of asset load process 520 and other processes discussed below . however , in one alternative embodiment , a registration code ( not shown ) or serial number ( not shown ), for example printed on the outside of game unit 100 could be typed into a web - based transaction form from server 140 using personal computer 120 if the registration code or serial number was previously associated in database 142 with device id record 422 . in an extreme case of abject software lockup or data corruption , as might occur if power were to fail as an nv memory was being written , it may be necessary to reset the memories of game unit 100 to a “ factory default ” from which game unit 100 can be restored . fig7 shows the result of device reset process 720 , whereby any potentially corrupt data in public memory 340 is cleared , as seen in factory reset memory map 730 , which is substantially identical to initialized memory map 340 . preferably , only device id record copy 422 ′ and device key record copy 426 ′ have been retained . user id record copy 622 ′ and any asset or media files 522 ′, etc . have been expunged . so long as private memory 330 and rom 320 are immune to corruption after leaving the factory , device reset process 720 will be able to recover from failures due to corrupted data . fig8 shows the asset sync process 820 which transforms a game unit 100 having any memory map configuration that is at least initialized , in this case a factory reset memory map 730 , into a valid , asseted memory map 830 , by searching database 142 for device id record 422 that matches device id record copy 422 ′ from private memory 330 , and through the associations ( not shown ) in database 142 , recalling and copying user id record 622 and the records and files of asset set 510 to public memory 340 , such that record copies 622 ′, 822 ′, 824 ′, 825 ′, 826 ′, 827 ′, 828 ′, and 829 ′ are restored . as described above in conjunction with prior processes , asset sync 820 is preferably conducted through data path 122 using personal computer 120 and connection 130 to server 140 . the software performing asset sync 820 may be executed substantially in personal computer 120 , or cpu 300 , or both . server 140 will provide the necessary search and access to database 142 . asset sync process 820 may also be used to recover when a game unit is lost or physically damaged . by allowing the records associated with the lost or damaged unit associated with a user id to become associated with another , potentially new , game unit also associated with the same user id , a complete recovery of the lost or damaged unit can be achieved . fig9 anticipates two or more players having game units with asseted memory maps , that is , units 100 , 100 ′, and 100 ″, each with assets representing one or more characters available to , in this example , compete in a battle . battle process 900 is the exemplary process for using the separate and combined capabilities of game units of the present invention . in initial step 901 , players have powered up their separate , respective game units 100 , 100 ′, and 100 ″ and made a selection within their individual games to perform a grouped activity , in this case , a battle . in planning step 902 , each player uses their corresponding separate machine to select a character with which to battle . the player using game unit 100 chooses character 170 . the player using game unit 100 ″ chooses character 173 . each player uses a user interface ( not shown , but known in the prior art ) to select a strategy , such as preferred attacks for their selected characters . the fact that this is occurring on separate game units allows this planning step to be performed in secret . the individual strategies are recorded in each game unit in corresponding ram 310 . in assembly step 903 , the players plug the participating game units 100 , 100 ′, and 100 ″ together , to form array 200 , as shown in fig2 . in array initialization step 904 , the cpu 300 of each participating game unit executes master process 910 . at the start of master process 910 , in master initialization step 911 , left - peer interface 307 and right - peer interface 308 are reset and readied . in left test step 912 , each game unit tests left - peer interface 307 ( e . g ., by examining the slave enable line ) to determine whether a left neighbor is present . if so , then the current unit is not the master ( the master is further to the left ), and the process continues by waiting for an initialize battle command in step 913 . if , however , in left test step 912 no left neighbor is detected , then the game unit is considered to be the master and processing continues at right test step 915 . right test step 915 examines the right - peer interface to determine if a right - side neighbor is present ( e . g ., by testing for incoming data when the slave enable is asserted and the serial clock is cycled for at least a byte ). if no right neighbor is detected , processing continues with add id step 918 , wherein the current game unit &# 39 ; s device id and action ( as selected by the corresponding player during planning step 902 ) are added to an otherwise empty list ( not shown ). the device id can include the signature of private key 141 from server 140 , while the action may be signed with the corresponding device key 426 ′. ( in an alternative embodiment , having no right neighbor at this point may be handled as a special case , because the game unit has just detected that it is the only unit in array 200 .) if in right test step 915 a right neighbor is detected , processing continues with step 916 . in inquire rightward step 916 , the game unit to the right of the current one is requested to execute the initialize battle command , for which it should be waiting . jumping now into the context of the rightward neighbor waiting in step 913 for an initialize battle command , the command has just been received from the leftward neighbor . in response , from within step 913 , initialize battle subroutine 930 is called and entered at step 931 . in right test step 932 , this unit tests for a right neighbor . if a right neighbor is detected ( as above ), then in forward command step 933 , the initialize battle command is passed on to the game unit to the right . eventually , the unit to the right returns a response that is received in step 934 . add id step 935 begins with the list of device ids and actions is returned from step 934 , or if no right neighbor was detected in step 932 , then step 935 begins with an empty list . local response step 935 adds to the list it received ( whether or not empty ) the current game unit &# 39 ; s device id and the action selected by its corresponding player from step 902 . at this point , the current game unit can count the entries in the list of device ids and determine where it is within array 200 . a count of one , indicating that only its own device id is in the list , indicates that the current game unit is the rightmost one . a count of two would place it second from the right , and so one . this positional count will be used later to determine what portion of the panorama the current game unit is responsible for drawing . having accumulated all the device ids and action from this game unit and all game units to the right , the list is returned to the left neighbor game unit in response step 936 . initialize battle subroutine 930 returns at step 937 , which allows the current processor to conclude step 913 from which it was called . this game unit returns from master process 910 at step 914 . meanwhile , the leftmost game unit 100 of array 200 has just received a response from game unit 100 ′ of array 200 , in step 917 . game unit 100 adds to that response its own device id and action from step 902 in add id step 918 . at this point , a list of device ids and actions from each game unit in array 200 is known to game unit 100 . in a manner similar to that in step 935 , a count of device ids will indicate the size and position of the master game unit in array 200 . the master game unit already knew that it was leftmost , but it did not know the size of the array until now . in the example of fig2 , master game unit 100 would determine that it was in the third position , counting from the right , and that the array was three game units or three screens wide . in battle pack distribution step 919 , this list is assembled , preferably with a random number seed appended , into a message that is sent to each other game units 100 ′ and 100 ″ of array 200 , wherein each game unit 100 , 100 ′, and 100 ″ has the same information about the battle that is to begin now . the leftmost , master game unit 100 completes master process 910 at step 920 , and returns . at this point , each game unit has returned from array initialization step 904 and knows whether or not it is the master , where it resides within array 200 , and it has received the battle pack as distributed by the master in step 919 , so it also knows the array size and the actions corresponding to each game unit in array 200 . run battle step 905 is step that loops internally . on each iteration , each cpu 300 corresponding to the game units of array 200 computes the next iteration outcome . since each cpu has identical information about the selected actions and is using a shared random number seed , their independently obtained results are identical . each cpu can determine which media assets it needs to provide to its corresponding display control 302 or audio control 303 to produce the game units &# 39 ; next contribution to the panorama or soundtrack . these media assets can be sent or fetched ( since all game units can know the others &# 39 ; needs ), if they have not already been transferred in prior iterations or immediately following battle pack distribution step 919 . given that it has the appropriate media files and the commonly computed iteration outcome , each game unit can ready an update for its corresponding portion of the panorama on corresponding display 102 , 102 ′, or 102 ″. if necessary , the master game unit can produce a sync message so that all displays update at the same time . if desired , player input can be accepted from controls 104 and 105 on each participating game unit . in this embodiment , the master game unit would initiate an exchange process similar to collecting the list of device ids , to collect the control inputs from each of the game units , which would then be distributed for use in the next iteration . in this way , each iteration is computed by each game unit with identical data so that every unit &# 39 ; s computed outcome is in sync , and identical . in each iteration , each game unit will produce identical computations for damage , exertion , points won , and the like . in accordance with predetermined game rules , eventually the battle comes to an end and each of the game units simultaneously exit run battle step 905 . during the iterations of battle step 905 , each game unit accumulated an identical log of events . after the battle , in step 906 , each game unit can summarize the event log and sign the results . the log signatures can be exchanged , which results in every game unit having an identical copy of the game log , along with a signature of the log from each participating game unit . in a special application of battle process 900 , a player may select a training activity in step 902 . step 903 may be skipped , unless the solo player has multiple game units available to enhance the display while training . in step 904 , the array initializes , but will often consist of only a single game unit 100 . the training can loop in run battle step 905 , and training results are accumulated as a battle log . in step 906 , the game unit signs the log . in this case , the log is data representative of the training activities for one or more characters . through a log upload 1220 ( discussed in conjunction with fig1 ) and a subsequent asset sync 820 , the training results represented in log records may be integrated into the authenticated asset records . in fig1 , asseted memory maps 630 , 1030 , and 1050 are shown , corresponding to game units 100 , 100 ′, and 100 ″ in fig2 . game unit 100 , in its asseted memory map 630 has its device id record copy 422 ′, game unit 100 ′ in its map 1030 has device id record copy 423 ′, while game unit 100 ″ has device id record copy 424 ′ stored in its memory map 1050 . as in memory map 630 for game unit 100 , each of the other game units 100 ′ and 100 ″ have corresponding memory maps 1030 and 1050 that contain device key record copies 427 ′ and 428 ′, user id record copies 1034 and 1054 , and their own asset sets in public storage 340 ′ and 340 ″. in public memory 340 ′, game unit 100 ′ contains its manifest 1042 , asset records 1044 and 1047 , and media assets 1045 , 1046 , 1048 , and 1049 . in public memory 340 ″, game unit 100 ″ contains its manifest 1062 , asset records 1064 and 1067 , and media assets 1065 , 1066 , 1068 , and 1069 . note that the asset record 527 ′ and media assets files 528 ′ and 529 ′ in memory map 630 are the same as asset record 1067 and media asset files 1068 and 1069 of memory map 1050 . this is because , though the mix of characters and objects carried by each game unit may be a custom mix , the individual characters may be duplicated , in which case the asset record and files corresponding to one non - unique character may also be possessed by another player having the same character . if training and battle results in logs are integrated into asset records , as described above , then asset record 527 ′ and asset record 1067 may soon diverge , as one character will likely have different training or different battle histories than the other . however , so long as the media asset files remain pertinent ( e . g ., the character doesn &# 39 ; t grow fangs , change color , or otherwise metamorphose ), then the media asset files 528 ′ and 529 ′ may remain constant and identical to media asset files 1069 and 1068 . fig1 also shows the battle pack message 1070 constructed by the master game unit 100 in step 919 and distributed to the other game units 100 ′ and 100 ″. battle pack message 1070 contains device ids 422 ″, 423 ″, and 424 ″ ( which technically , are device id record copy copies ), and battle parameters 1072 and pseudo - random number generator ( prng ) seed 1074 . battle parameters 1072 comprises player plans captured in step 902 and collected through steps 935 and 918 , which are preferably signed by the corresponding device key 436 ′, 427 ′, and 428 ′ for later verification by server 140 with the corresponding keys in database 142 . this ensures that ultimately no credit will accrue if a fraudulent battle pack 1070 is distributed which falsifies any players &# 39 ; plans . preferably , the log resulting in step 906 comprises the data represented in battle pack 1070 . server - signed manifest record 522 ′ enumerates which asset are possessed by game unit 100 . preferably , manifest record 522 ′ also comprises device id 1 , as reported in device id record copies 422 ′ and 422 ″. the manifest record 522 ′ can also be included in battle parameters 1072 , to allow the other game units to verify that game unit 100 is competing with legitimately obtained characters or other virtual objects . it will be apparent to those skilled in the art that , even if the private storage 330 and rom 320 of game unit 100 were to be compromised , that one would still be unable to create a fraudulent battle pack 1070 that misrepresented the attributes of characters , which characters were available for play , or what each player had entered as his plans . further , an attempt to falsify log results would require the compromise of all the participating game units , or collusion of all the players , since each game unit independently calculates the battle outcome and produces a signature of its own derived log results . during each iteration of run battle step 905 , as shown in fig1 , battle round messages 1100 and 1120 may be exchanged among game units 100 , 100 ′, and 100 ″ ( represented here by the corresponding in - battle memory maps 630 , 1030 , and 1050 ). battle round messages 1100 and 1120 preferably contain ( all respectively ) a record of the sender &# 39 ; s device id 422 ″ and 1054 ′, signed battle action record 1110 and 1130 , and asset records 524 ″ and 1067 ′ and media asset files 526 ″ and 1068 ′, as needed . if game unit 100 ′ does not have any battle action , asset record , or media asset files that are newly required , that is , they have been previously distributed , then game unit 100 ′ ( corresponding to memory map 1030 ) does not need to provide a battle round message , except as may be used for synchrony , as described below . if players are entering commands in real - time during iterations of run battle step 905 , such as with controls 104 and 105 , then these commands are distributed to all game units as battle actions 1110 and 1130 . battle actions 1110 and 1130 preferably further comprise an iteration count kept throughout battle step 905 are signed by the originating game unit , so as to ensure that battle round messages are not subject to tampering while being transmitted between game units . note that if device keys 422 ′, 427 ′, and 428 ′ comprise a symmetric key unknown to other game units , that the assurance of uncompromised battles will be obtained later by server 140 , through validation of the logs . however , in an alternative embodiment , if device keys comprised a public key / private key pair , and device id records 422 ′, 423 ′, and 424 ′ further comprise the device public key portion , then during each iteration of run battle step 905 , battle round messages 1100 and 1120 could be signed by their originators and authenticated by the other game unit recipients , in real - time . even if all necessary media asset files have already been distributed , and there are no battle actions needed , the exchange of battle messages or other signals is desirable to signal the completion of a round , and so would help to keep the units in sync . for example , if master unit 100 waits until it has both completed its calculations for the current round and received battle messages from the other game units 100 ′ and 100 ″ indicating their completion , then game unit 100 will release its battle message indicating its completion , which can be used as a synchronization signal among the units , for example , to update displays 102 , 102 ′, and 102 ″ together . if the synchronization signal is taken as the receipt of the master &# 39 ; s battle message 1100 , then an immediate screen update is preferably based on a prior computation and the asset record 524 ″, media file assets 526 ″, or battle action record 1110 are used in a following calculation of another frame . this allows multiple devices with slightly varying clocks to maintain synchrony over long intervals . in fig1 , post - battle memory maps 1210 , 1230 , and 1250 are shown , corresponding to game units 100 , 100 ′ and 100 ″, following the conclusion of run battle step 905 . each participating game unit has accumulated a summary of the battle results , and produces a corresponding log file 1212 , 1212 ′, 1212 ″ having a signature to authenticate the log file using corresponding device key copy 426 ′, 427 ′, and 428 ′. the log files 1212 , 1212 ′, 1212 ″, absent the signature , should be identical . preferably , the individual game units exchange signatures that are appended to the log files 1212 , 1212 ′, and 1212 ″ so that each game unit has generated its own copy of the same log , and has digital signatures of that log from all game units 100 , 100 ′, and 100 ″ participating in the logged events . in log upload process 1270 , game unit 100 ( represented in fig1 by post - battle memory map 1210 ) transfers log record 1212 through server 140 to database 142 where it is stored as log record copy 1272 . since log 1212 and the copy 1272 include signatures by each of game units 100 , 100 ′, and 100 ″, and the log lists the participating game units by device ids from device id record copies 422 ′, 423 ′, and 424 ′, server 140 can use these device ids to find the associated device keys 426 , 427 , and 428 , whereby server 140 can authenticate each of the signatures on log record copy 1272 . once log record copy 1272 has been authenticated , any battle results that produce a change to a character or game piece or other record having an association with either device id 422 or user id 622 , can be effected . for example , suppose that according to log 1272 , during the run battle step 905 , character 170 , belonging to the user associated with user id 622 and residing on game unit 100 corresponding to device id 422 and represented by asset record 524 and asset record copy 524 ′, acquired a new level . during the upload log process 1270 , server 140 will apply the indicated improvement ( e . g ., gaining a level ) by updating asset record 524 to form improved asset record 524 ″. manifest record 522 may also be updated to become manifest record 522 ″. in this manner , an authenticated , fraud - resistant modification to the character belonging to its owner has occurred . preferably as part of upload log process 1270 , game unit 100 is updated to post - upload memory map 1280 by deleting obsolete log record 1212 and loading copies of updated manifest record 522 ″ and asset record 524 ″ as replacement manifest record copy 522 ″′ and asset record copy 524 ″′. in an alternative embodiment , upload log process 1270 can use the log record copy 1272 to perform updates to the affected records associated with all of the device ids 422 , 423 , and 424 , reported by the log 1272 as having participated . in another alternative embodiment , the battle results reported in log 1272 can include a capture or conversion of a character or other game piece , such that possession and ownership of that piece is transferred from the manifest of one game unit to another . in this alternative embodiment , battle process 900 can be used to implement commerce , such that in planning step 902 , one player offers for example to take a character in trade for a collection of game pieces having in - game monetary value , or credits ; while the other player plans the reciprocal trade to yield a character in exchange for those credits . the trade is agreed to in the final iteration of run battle step 905 , perhaps with haggling taking place during prior iterations of run battle step 905 as directed through controls 104 and 105 . the trade or capture is confirmed during log upload process 1270 . care must be taken to implement policies that do not permit this kind of transaction to result in an exploit of this nature : a first player trades a valuable unit to a second player . the first player then induces a device reset process 720 followed by an asset sync process 820 to fraudulently restore the valuable unit to the first player . the first player may now engage to fraudulently trade the restored valuable unit to a third player . if repeated , a large number of players could be under the impression that they each possess this valuable unit , and the scheme can continue until one of the recipients engages upload log process 1270 so that the first player &# 39 ; s use of asset sync process 820 removes the valuable unit from his manifest . the form of such care may be to only engage in such trades with real - time communication with server 140 . alternatively , such transactions can be made safe by imposing rules and latencies such that a trade must be consummated with the upload log process 1270 within 24 - hours lest it be nullified , and requiring a 24 - hour wait following device reset process 720 before asset sync process 820 can be applied . still another alternative is to disallowing a game unit from participating in trades for 24 - hours following an asset sync process 820 and requiring a second asset sync process 820 after that waiting period . of these methods , the real - time communication with server 140 produces the least intrusive constraint . preferably , to forego the requirement for communication with server 140 , a form of trade designated as a ‘ loan ’ may be used . in such a case , the character or other virtual object ( e . g ., character 170 ) held by game unit 100 may be selected for a loan to game unit 100 ′. if accepted , the corresponding asset record copy 524 ′ and associated media asset files 525 ′ and 526 ′ are transferred to the target game unit 100 ′ in one or more battle round messages as shown in fig1 . in the case of a loan , the transferred object is only temporarily made available to the target game unit 100 ′. this can give the owner of game unit 100 ′ the opportunity to play with the loaned object ( e . g ., character 170 ), and preferably may use that character in battles , but the loaned character is not subject to becoming a part of the permanent inventory of game unit 100 ′, that is , the loan is not reflected in database 142 . preferably the loan expires in 24 - hours , or some other predetermined period , after which the loaned character is no long accessible on the target game unit 100 ′. further , for the duration of the loan , the owning player is preferably unable to make use of the loaned object or character , including being unable to make a second loan of the same character , until the loan expires . however , given that a loan is a transient transaction and not permanent one , the exposure to exploits ( such as the one described above ), is minimal and may be acceptable . the preferred embodiment is discussed in the context of a handheld , portable game system , which is able to be clipped together with like game systems , to allow player - owned characters to compete . alternative embodiments have been discussed that employ laptop computers and game consoles . the particular implementations described , and the discussions regarding details , and the specifics of the figures included herein , are purely exemplary ; these implementations and the examples of them , may be modified , rearranged and / or enhanced without departing from the principles of the present invention . in particular , the computer architectures , data structures , and flowcharts herein are exemplary , and significant alteration can be made without departing from the spirit of the invention . particular features of user interface , for web site , pc software , and the game unit , and the capabilities of the databases , will depend on the architecture used to implement a system of the present invention , the operating systems of the servers , personal computers , and game unit cpu selected , and the software code written both for the servers , other computers , and game unit . it is not necessary to describe the details of such programming to permit a person or team of ordinary skill in the art to implement the application , user interface and services suitable for implementing a system within the scope of the present invention . the details of the software design and programming necessary to implement the principles of the present invention are readily understood from the description herein . various additional modifications to the embodiments of the invention , specifically illustrated and described herein , will be apparent to those skilled in the art , particularly in light of the teachings of this invention . further , it will be apparent that the functionality of this invention can be incorporated into and function from within the context of other products , including an e - commerce system . it is intended that these cover all modifications and embodiments that fall within the spirit and scope of the invention . thus , while preferred embodiments of the present invention have been disclosed , it will be appreciated that it is not limited thereto but may be otherwise embodied within the scope of the following claims .
a multiplayer handheld game employs individual game units having individual displays . players can prepare their moves in secret on their game unit using controls and the individual displays , but when the game units are joined together , the game plays out on the aggregated screen . the game units employ digital signatures to ensure that all play is fair and that the virtual game pieces and characters in play have not been doctored or are otherwise fraudulent . game results can be uploaded to a remote , secure server , which also serves as a backup for user data . customization , improvements , and additions to the virtual game pieces and characters can be performed in conjunction with the secure server .