User Creatable Machines
A number of components parts are presented to a user in a game from which they can select and assemble a number of parts into a machine. Some or all of the component parts may have controllable parameters and these are mapped to an input on the games controller used to play the game.
Latest Microsoft Patents:
Some current computer games enable a user to customize vehicles, such as racing cars, by changing elements such as spoilers, wheels etc. However, the number of permitted variations is limited and the physical performance of each permitted combination of features has been pre-calculated and hard coded into the game. This limits the flexibility which can feasibly be offered to a user.
Some educational software games aimed at children exist which provide a greater degree of flexibility by providing a construction kit of parts and a drag and drop interface to enable a user to construct a Rube-Goldberg contraption to solve a puzzle.
SUMMARYThe following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
A number of components parts are presented to a user in a game from which they can select and assemble a number of parts into a machine. Some or all of the component parts may have controllable parameters and these are mapped to an input on the games controller used to play the game.
Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
DETAILED DESCRIPTIONThe detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
The operation of the game application 101 can be described with reference to
Within the game application, a control module (not shown in
As indicated by the dotted arrow in
Where a user created machine (assembled in block 202) comprises several elements which have the same controllable parameter (e.g. two rocket boosters, each having the controllable parameter of ‘thrust’), that controllable parameter for each element may be mapped to the same control on the games controller and therefore when a user operates that control, each element will provide thrust within the game play. The amount of the control parameter (e.g. thrust) provided by each of the elements may depend upon parameters associated with element and with that controllable parameter. For example, two identical rocket thrusters may provide identical amounts of thrust and respond identically to the same control, however, attaching thrusters of different sizes or types (rocket, jet, ion, propeller, etc) may provide different amounts of power, different power curves and/or different responses to the same control. In another example, however, a machine may comprise a number of sub-machines each of which may be operated by a separate gamer (e.g. a vehicle may comprise a first sub-machine whilst the weapon mounted on the vehicle may comprise a second sub-machine). In such an example, the controllable parameters for elements in each particular sub-machine may be mapped to controls on a different games controller (e.g. sub-machine 1 mapped to controls on games controller 1, sub-machine 2 mapped to controls on games controller 2, etc).
Unlike known games, the method and game described above does not include pre-calculated parameters for the performance of assembled machines, but instead the physical parameters for each component part, coupled with the inputs relating to the controllable parameters for those controllable component parts are used to generate, in real time, the control forces on the machine. Some initial calculations, in preparation for the calculation of the forces in real time, may be performed on assembly of the machine. The calculated forces may then be used to define the resultant motion of the machine. Therefore elements may be combined in any manner, according to the user's choice, rather than selection from a limited number of options which have been defined by the game developer.
It will be appreciated that whilst all component parts (or elements) will have at least one physical parameter, not all component parts will have a controllable parameter (e.g. a metal panel has no controllable parameters). Whilst some component parts are capable of moving (e.g. a wheel) they may still not have a controllable parameter because they require a motor or other power source to be able to move under the user's control (otherwise they will only move based on other applied forces, such as gravity).
Each of the elements may have an individual purpose and in some examples, each element may have only one controllable parameter, e.g. a motor may have the controllable parameter of ‘speed’, a rocket booster may have the controllable parameter of ‘thrust’ etc. Whilst elements may have a limited number of controllable parameters (e.g. only one), the effect of these controllable parameters on the forces applied to the assembled machine may result in changes to many aspects of the motion of an assembled machine. For example, a wheel or rudder may be able to control direction; however multiple thrusters strategically placed may also be used to control direction. A wheel may also be able to supply a braking force under a particular control, but so too might an anchor that has been deployed.
The physical parameters associated with each of the elements may be representative of the same element in the real world, for example a steel panel may have physical parameters such as mass and density that match a real steel panel. However many game worlds do not simulate accurate Newtonian Dynamics and therefore in many examples the physical parameters or the way in which the forces are calculated (in block 204) may be adjusted according to the particular requirements of the game (e.g. the panel may have a mass parameter which is less than the real life equivalent so that a war machine constructed from it may be able to fly or float).
Each of the elements may have one or more defined connection points where the element may be connected to another element (e.g. a wheel may have a single connection point of the axle, or two connection points of the axle on either side of the wheel). Details of these connection points 301 may be stored associated with the element 302 in the library of elements 102, as shown in the schematic diagram of
The defined connection points for a particular element may be selective so that rather than having a standard connection point type that may be available in one or more locations on each component, and having any connection point on any component attach to any connection point on any other component, some/all of the connection points on some/all components may not attach to some/all connections points on some/all other components, or components of the same type. This selectivity of connection points may be defined in the mechanism within a particular game. For example, it might not be allowed to attach steerable wheels directly to a thruster to form a machine from only two components; however, a gamer may be able to attach the wheels to any connection point on a standard chassis component, and the thruster to any remaining connection point on the same chassis component.
In order to assist in the assembly of the selected elements (in block 202), the game application may provide a mechanism for aligning elements (or blocks). A number of example mechanisms are described below.
In a first example mechanism, a visual indication of a 3D matrix may be provided around the element showing the connection points and the object may jump from one connection point to the next in response to a control input from the user. In another example, instead of jumping from one point to another, the object may pause whilst at a connection point whilst waiting for an input to indicate the requirement to connect at that point.
In another example mechanism, the game application may provide a simulated magnetic attraction between connection points and a corresponding simulated repulsion force when a user attempts to connect elements at points other than the defined connection points (e.g. if two elements are brought together at points which are not connection points, the elements may be shown to spring apart when released by the user).
In a further example mechanism, any other kind of visual or audible indication may be provided to a user when two elements are aligned in a correct position for joining. Alternatively, alerts may be provided when two elements are brought together in a position which does not correspond to the defined connection points.
Whilst the description of the mechanisms for assisting in aligning elements relate to joining of individual elements, the mechanisms are also applicable to groups of elements, such as partially completed machines, sub-machines and whole machines. The connection points for a group of elements may be user defined (e.g. a user may define the connection points for a weapon which may be considered a sub-machine as it is subsequently mounted on a vehicle and operated by a second gamer) or the connection points may be the resultant effect of the particular combination of elements in the group (e.g. those connection points for the elements in the group which are not already used and which are accessible). In another example, the connection points for a group of elements may be selective in a similar manner to that described above for individual elements.
Whilst all the elements in the library 102 may be provided by the games developer, in some examples additional elements may be provided by third parties, such as other games developers, or generated by gamers. This may lead to a situation, in networked game play, where gamers have different feature sets (i.e. different libraries of elements resulting in them being able to construct a machine using an element that others do not have). In order that gamers with different feature sets can still play together, the method described in co-pending U.S. patent application Ser. No. 11/425,258 entitled ‘Transfer of features between gaming devices’ and filed on 20 Jun. 2006 may be used. This method is described below with reference to
This method of connecting gaming devices together, which is described below, enables multi-party gaming between devices with different feature sets. A device receives data from several gaming devices and determines which features each gaming device requires. These required features are those which are not held at the particular device but are held by one or more of the other devices. Code relating to the particular features required by each gaming device is then transferred to each of the gaming devices.
In another example, the gaming devices 501 may operate without a central server in a peer-to-peer scenario where no one gaming device is dominant. Each gaming device may use standard peer-to-peer techniques to communicate and transfer feature data in a complex parallel networking mesh between each other. In an example implementation, the first gaming device may compile a list of its feature set and then send the list to the next gaming device which analyses this list, notes in it what extra features are held by that gaming device and which of the previous gaming devices features it does not hold. This list can then be sent on to each of the gaming devices in turn with each recipient gaming device annotating the list as described above. Having been annotated by all the gaming devices the list is passed back to the first gaming device. At this point each gaming device in the system is aware of which features are held by the other gaming devices and which gaming devices require feature data that they hold. The gaming devices can then stream out the required feature data to those other gaming devices which need it.
In another example in this peer-to-peer scenario, each gaming device sends a list of the features that it holds to each of the other gaming devices in the network. Having received a list from each of the other gaming devices in the network, any gaming device can determine which gaming devices need to be sent code that it holds. The code can then be streamed to the other gaming devices that require those features. Alternatively, gaming devices can, using the list received, request feature data from a particular other gaming device in the network (rather than have it streamed to them without first requesting it). It will be appreciated that there may be other ways in which the data relating to feature sets can be shared between gaming devices in a peer-to-peer network such that code relating to differences in feature sets can be subsequently transferred between gaming devices.
Computing-based device 700 comprises one or more processors 701 which may be microprocessors, controllers or any other suitable type of processors for processing computing executable instructions to control the operation of the device in order to perform the methods described above. The device may further comprise processors having dedicated tasks, such as a graphical processing unit (GPU) 702 and/or a physics processor (not shown in
The computer executable instructions may be provided using any computer-readable media, such as memory 703. The memory may be of any suitable type such as random access memory (RAM), a disk storage device of any type such as a magnetic or optical storage device, a hard disk drive, or a CD, DVD or other disc drive. Flash memory, EPROM or EEPROM may also be used.
The memory may be arranged to store platform software comprising an operating system 704 or any other suitable platform software may be provided at the computing-based device to enable application software 705 to be executed on the device. The application software stored in the memory 703 may include the game application 101 described above. The rigid body simulator (described above) may be included within the game application 101 or may comprise separate application software (not shown in
Although the present examples are described and illustrated herein as being implemented in a games console and a networked gaming system, the apparatus and system described is provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of computing systems. The methods may be implemented on any device on which games may be played and the device may be networked or a standalone device.
Whilst the above description refers to the use of a rigid body simulator to generate the motion of the assembled machine from the calculated forces, this is by way of example only and any suitable simulation tool may be used to generate the motion of the machine from the calculated forces. In other examples, the motion may be generated directly (e.g. through a combination of blocks 204 and 205) without first generating the forces on the object.
The term ‘computer’ is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term ‘computer’ includes PCs, servers, mobile telephones, personal digital assistants and many other devices.
The methods described herein may be performed by software in machine readable form on a storage medium. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
This acknowledges that software can be a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. It will further be understood that reference to ‘an’ item refer to one or more of those items.
The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.
It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.
Claims
1. A game comprising:
- a library of elements;
- a game application arranged to:
- provide the library of elements to a user;
- enable user selection and arrangement of a plurality of elements from the library to create a machine; and
- map any controllable parameters of each element to an input on a games controller.
2. A game according to claim 1, wherein the game application is further arranged to store mappings in a mapping data store.
3. A game according to claim 1, wherein the library of elements comprises, for each element, at least one associated physical parameter.
4. A game according to claim 3, wherein the game application is further arranged to:
- calculate at least one force on the machine at run time based on inputs received from the games controller and the at least one physical parameter associated with each of the plurality of elements.
5. A game according to claim 4, wherein the game application is further arranged to:
- input said at least one force to a simulator for defining a motion of the machine.
6. A game according to claim 1, wherein the library of elements comprises, for each element, at least one connection point.
7. A game according to claim 6, wherein the game application is further arranged to:
- provide a mechanism for aligning elements.
8. A game according to claim 1, wherein identical controllable parameters are mapped to the same input on a games controller.
9. A game according to claim 1, wherein the machine comprises a first sub-machine and a second sub-machine and mapping any controllable parameters of each element to an input on a games controller comprises:
- mapping any controllable parameters of each element in the first sub-machine to an input on a first games controller; and
- mapping any controllable parameters of each element in the second sub-machine to an input on a second games controller.
10. A method in a game comprising:
- providing a library of elements to a user;
- enabling user selection and arrangement of a plurality of elements from the library to create a machine; and
- mapping any controllable parameters of each element to an input on a games controller.
11. A method according to claim 10, further comprising:
- storing mappings in a mapping data store.
12. A method according to claim 10, wherein the library of elements comprises, for each element, at least one associated physical parameter and wherein the method further comprises:
- calculating at least one force on the machine at run time based on inputs received from the games controller and the at least one physical parameter associated with each of the plurality of elements.
13. A game according to claim 12, wherein the method further comprises:
- inputting said at least one force to a simulator for defining a motion of the machine.
14. A method according to claim 10, wherein mapping any controllable parameters of each element to an input on a games controller comprises:
- mapping identical controllable parameters to the same input on a games controller.
15. A method according to claim 10, wherein the machine comprises a first sub-machine and a second sub-machine and mapping any controllable parameters of each element to an input on a games controller comprises:
- mapping any controllable parameters of each element in the first sub-machine to an input on a first games controller; and
- mapping any controllable parameters of each element in the second sub-machine to an input on a second games controller.
16. A method according to claim 10, wherein the library of elements comprises, for each element, at least one connection point and wherein the method further comprises:
- providing a mechanism for aligning elements.
17. A method in a game comprising:
- displaying a plurality of machine components to a gamer;
- enabling receipt of a first user input selecting at least two machine components from said plurality of machine components to be joined to create a machine; and
- mapping any controllable parameters associated with each of said at least two machine components to at least one control on a user input device.
18. A method in a game according to claim 17, wherein said first user input further comprises information on relative positioning of said at least two machine components within said machine.
19. A method in a game according to claim 17, wherein each machine component has at least one associated physical parameter, and wherein said method further comprises:
- on receipt of a second user input from said at least one control, calculating at least one force on said machine based on said second user input, said controllable parameters associated with each of said at least two machine components and physical parameters associated with each of said at least two machine components.
20. A method in a game according to claim 19, further comprising:
- outputting said at least one force to a simulator arranged to generate motion parameters for said machine.
Type: Application
Filed: Jun 28, 2007
Publication Date: Jan 1, 2009
Applicant: Microsoft Corporation (Redmond, WA)
Inventors: Timothy Stamper (Twycross), Gregg Mayles (Ashby-de-la-Zouch)
Application Number: 11/770,118
International Classification: A63F 9/24 (20060101);