reference is now made to fig1 , which is a simplified pictorial illustration of a system for scaling a game &# 39 ; s functionality for different computing devices , constructed and operative in accordance with a preferred embodiment of the present invention . in a typical game - playing scenario , a user may employ a first device 110 , such as a personal computer , to play a game . the game may reside wholly on first device 110 or alternatively may be played in conjunction with a game server 120 , such as in a network gaming environment , as is well known in the art . furthermore , the game may be a single - user game , or it may be a multi - user game played with other players . at some point after the user has begun to play the game on first device 110 , the user may wish to continue playing the game , being the same game session currently being played on first device 110 , on a second device 130 , such as a hand - held computer . the user may instruct game server 120 to continue the game session on second device 130 , whereupon game server 120 may pause the game session on first device 110 and resume the game session on second device 130 . game server 120 preferably instructs second device 130 to scale the game functionality appropriately , as is described in greater detail hereinbelow . in the example shown in fig1 , when the user transitions from first device 110 to second device 130 , the game session is modified by scaling the game functionality in accordance with a predefined scaling function . the scaling function may change the number , type ( e . g ., tank becomes a plane ), and / or behavior of any of the objects that are active in the game session , such as reducing the number of tanks and planes active in the game on first device 110 by a factor of 2 while modifying their behavior , such as by allowing them to fire an additional type of missile . in a more complex example , such as is described hereinbelow with reference to fig3 a and 3b , the scaling function may be calculated based on statistical information gathered while the game is played on first device 110 . moreover , the scaling function may be dynamic in nature , such as by continually gathering statistical information while the game is being played on second device 130 and continually updating the scaling function with respect to the newly gathered statistics . additionally or alternatively , the scaling function may change the gaming environment itself , such as the game map . play of the scaled game session may then continue on second device 130 . at a later time , the user may wish to continue the game session on first device 110 , in which case the objects and / or the gaming environment that is active in the game session on second device 110 may again be changed in accordance with a predefined scaling function . for example , should the user have only one tank left on second device 130 when transitioning back to first device 110 , a second tank may be added to the game , thus scaling up by a factor of 2 . alternatively , the objects previously removed from the game before the first transition to second device 130 may be re - introduced into the game when the returns to first device 110 , such as by increasing the number of tanks to 2 and the number of planes to one . the system of fig1 may be applied to any type of game where the number , type , and / or behavior of any of the game &# 39 ; s elements may be changed . for example , in a poker game the number of computer - controlled players against whom the user plays may be reduced when moving to a platform with a smaller display . the game scaling process may be performed by automatic or semi - automatic generation of platform - dependant executable files representing full and scaled - down versions of a game from the same source code , or by dynamic adaptation of the compiled code of a game to a specific computer platform , following identification of the capabilities of the platform , in accordance with conventional techniques . reference is now made to fig2 , which is a simplified pictorial illustration of a system for scaling a multi - player game &# 39 ; s functionality for different computing devices , constructed and operative in accordance with a preferred embodiment of the present invention . in the system of fig2 both the first user ( fig1 ) and a second user are playing the same game in a multi - player environment , with the second user playing on a third device 140 . after the first user transitions from first device 110 to second device 130 and his version of the game is scaled , the game preferably is played with the constraint that objects in the more restricted environment are not affected by objects in the less restricted environment unless the objects in the more restricted environment also exist in the less restricted environment . by way of example , fig2 may be extended to a game with three users beginning at a time t 1 , where the goal of each user is to eliminate the objects the other users , the first user transitions to a second device , such as a portable device , at a time t 2 . while the full version of the game may continue as before for the second and third users , each of whom has both planes and tanks , the version of the game that is started on the second device for the first user is a scaled - down version where only tanks are displayed . given the above constraint , the planes of the second and third users may not affect the tanks of the first user . also , any hidden objects of the first user in the reduced environment may not be affected by the second and third users acting in the full environment . when the properties of the objects of one user change when transitioning from one device to another , the properties of the remaining objects in that user &# 39 ; s new environment may also change in accordance with a scaling factor , as may the objects of the other users who have not transitioned . reference is now made to fig3 a , which is a simplified flowchart illustration of a method for defining a scaling function , operative in accordance with a preferred embodiment of the present invention , and to fig3 b , which is a simplified flowchart illustration of a method for modifying a scaling factor , operative in accordance with a preferred embodiment of the present invention . in the method of fig3 a , a scaling factor which determines how a game is scaled when transitioning between devices is calculated , as is now described with respect to the following elements : a set of the types of the game objects , t ={ t_ 1 , . . . t_i , . . . , t_i }; a set of the users , p ={ p_ 1 , . . . , p_n , . . . p_n }; a set of objects currently held by user p , ob ( p ); a mapping function of an object to the corresponding element of t , type ( ob ) a life function of an object , life ( ob ), where if life ( ob )= 0 the object is dismissed from the game ; an attack function act ( i , j ), which denotes whether the object of type t_i is allowed to attack an object of type t_j where both objects belong to the full game environment . act ( i , j ) is a binary function , where 1 stands for “ true ” and 0 for “ false ”; act ( i , j ) is preferably represented as an ixi binary matrix , where i is the number of types of objects . a strike function , strike ( i , n , j , m ), that denotes the power of the strike of the object of type t_j of player p_n to the object of type t_j of player p_m ; a measure of defense , defense ( i , n , j , m ), which measures the defense of the object of type t_j of player p 13 m when it is attacked by the object of type t 13 i of player p_n . note that defense ( i , n , j , m ) is typically & gt ;= 1 . given the above elements , the reduction in the life function of the object of type t_j of player p_m as a result of the attack by the object of type t 13 i of player p_n may be expressed as : thus , if an object ob 2 is attacked by object ob 1 , life ( ob 2 ) may be decreased by strike ( type ( ob 1 ), n , type ( ob 2 ), m )/ defence ( type ( ob 1 ), n , type ( ob 2 ), m ), yielding function : life ( ob 2 ) new = life ( ob 2 )− strike ( type ( ob 1 ), n , type ( ob 2 ), m )/ defence ( type ( ob 1 ), n , type ( ob 2 ), m ) ( f1 ) attack ( i , n , j , m ) denotes an attack by an object of type t 13 i of player p_n on an object of type t_j of player p 13 m ; dens ( i , n , j , m ) denotes the expected probability of the strikes of the object of type t 13 i on the object of type t_j where player t_n attacks player t_m . this function is preferably predefined and may be updated , during the course of the game , using conventional statistical techniques . note that for any n , m it may be seen that sum_ { i , j } dens ( i , n , j , m )= 1 . an auxiliary function m ( i , x , j , y ) may also be defined such that : where i , n , j , m denote the players and objects types , sum is taken over the object types i corresponding to the current value of x , and the object types j corresponding to the current value of y , x , y are assigned the values {“ full ”, “ rest ”), where x =“ rest ” denotes the object types presented in the reduced environment for object n and x =“ full ” denotes the object types presented in the full ( i . e . non - restricted ) environment but not in the embedded environment for object n , y =“ rest ” denotes the object types presented in the embedded environment for object m , and y =“ full ” denotes the object types presented in the full ( i . e . non - restricted ) environment but not in the embedded environment for object m . these functions may be combined to specify a set of operations related to the transition from a first device to a second device . during transition , the complete set of the types of the game objects , t , may be partitioned into two disjoint subsets : where tr are the object types allowed in the restricted environment and tf are the object types allowed in the full environment and not allowed in the restricted environment . the condition of such a partition is formulated as follows : for every type t1 from tr , an object of type t1 may be attacked by an object of a type t2 from tr ( f3 ) the sub matrix act ′ of the matrix act induced by t → tr contains at least one 1 in each column . ( f4 ) a new matrix actm ( i , j ) may be constructed , which describes whether the object of type t 13 i is allowed to attack an object of type t_j if one of the objects belong to restricted game environment . this may be implemented as a binary matrix where 1 =“ true ” and 0 =“ false ”. act m ( i , j )= act ( i , j ), if i , j belong to tr , otherwise act m ( i , j )= false ( f5 ) the matrices act and actm represent 2 groups of object pairs : e 1 ={ i , j | act ( i , j )= true and act m ( i , j )= true } e 2 ={ i , j | act ( i , j )= true and act m ( i , j )= false } ( f6 ) informally , e 1 represents the types of the attacks enabled in the restricted game environment , whereas e 2 represents the types of the attacks enabled in the full game environment that are disabled if one of the players belongs to the restricted game environment . membership of a pair ( i , j ) in e 1 , e 2 may be verified by computation of the values actm ( i , j ), act ( i , j ) a supplemental life updates matrix ( slu ) may be constructed for computing updates to the life functions associated with an object . these updates may be used to preserve the user experience after a transition to another device . for each user in a restricted environment , an slu matrix may be constructed between the user and each other user , such that at least one of the users from the pair of users belong to the restricted environment . where an additional decrease may be applied to the life function for every object of type j ′ of player m when attack ( i , n , j , m ) is performed . if j ′= j , this decrease is in addition to that given by ( f1 ). the function slu is defined for ( i , j ) in e 1 . where the sum is taken over e , e runs the object type pairs ( i ′, j ′) belonging to e 2 . the function slu 0 ( i , n , j , m , e ) may be defined for ( i , j ) in e 1 , and e =( i ′, j ′) in e 2 as follows : slu 0 ( i , n , j , m , ( i ′, j ′ ))= dens ( i ′, n , j ′, m )* strike ( i ′, n , j ′, m )/( defenced ( i ′, n , j ′, m ) * a * b ), ( f8 ) where a = sum dens ( k , n , l , m ), the sum is taken over ( k , l ) from e 1 , and b is the number of the objects of type j ′ currently held by player m . note that slu ( i , n , j , m , j ′) may be updated when the number of the object of user m is updated . the above algorithm may be appreciated by way of example , as follows . two scenarios are now considered . in the first scenario , the game is played within a desktop environment only . in the second scenario , user 1 switches to pda at time t 1 , and at time t 2 he returns to the desktop environment . the following illustrates preserving the user game experience for transitions to the mobile environment by similarity of the life function in both scenarios at time t 2 . by ( f 1 ), a new value of life function may be determined as life ( tank 3 )= 59 by ( f 1 ), a new value of life function may be determined as life ( plane 2 )= 48 a new value of life function may be determined as life ( plane 1 )= 10 a new value of life function may be determined as life ( tank 2 )= 13 a new value of life function may be determined as life ( tank 3 )= 58 a new value of life function may be determined as life ( tank 1 )= 29 a new value of life function may be determined as life ( plane 2 )= 46 a new value of life function may be determined as life ( plane 2 )= 44 a new value of life function may be determined as life ( plane 2 )= 36 a new value of life function may be determined as life ( tank 3 )= 57 a new value of life function may be determined as life ( tank 1 )= 27 a new value of life function may be determined as life ( tank 2 )= 12 a new value of life function may be determined as life ( tank 1 )= 26 a new value of life function may be determined as life ( tank 3 )= 54 a new value of life function may be determined as life ( tank 3 )= 51 a new value of life function may be determined as life ( tank 2 )= 10 a new value of life function may be determined as life ( tank 2 )= 9 tank 3 ( of user 2 ) attack plane 1 . a new value of life function may be determined as life ( plane 1 )= 8 a new value of life function may be determined as life ( tank 1 )= 24 a new value of life function may be determined as life ( tank 3 )= 50 therefore , at time t 2 the values of life function are as follows : the partition ( f 2 ) of set t is performed as follows : the matrix actm may be defined by ( f 5 ) as follows the sets e 1 , e 2 may be defined by ( f 6 ) as follows compute the value of a which is needed for computation of slu 0 (*, user 1 ,*, user 2 ,(*,*)): compute the value of a which is needed for computation of slu 0 (*, user 2 ,*, user 1 ,(*,*)): in time interval [ t 1 , t 2 ] the users performed the following 8 actions which correspond to the actions in the full environment : life ( tank 3 ) decreases by slu ( tanks , user 1 , tanks , user 2 , tanks )= 1 . 5 ; life ( tank 3 ) decreases by slu ( tanks , user 1 , tanks , user 2 , tanks )= 1 . 5 ; life ( tank 3 ) decreases by slu ( tanks , user 1 , tanks , user 2 , tanks )= 1 . 5 ; life ( tank 3 ) decreases by slu ( tanks , user 1 , tanks , user 2 , tanks )= 1 . 5 ; therefore , at time t 2 the values of life function will be are as follows : it is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown , without departing from the true spirit and scope of the invention . while the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software , it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques . while the present invention has been described with reference to one or more specific embodiments , the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown . it is appreciated that various modifications may occur to those skilled in the art that , while not specifically shown herein , are nevertheless within the true spirit and scope of the invention . for example , it is appreciated that game scaling as described hereinabove may be performed at a first device before the user switches from it to a second device , at a server communicating with the various gaming devices , or at the second device before game play is resumed on it .
a method for adapting a game session on a first device for continued play on a second device , the method including establishing a game session on a first device , scaling the functionality of the game within the game session , and continuing the game session with the scaled game functionality on a second device .