[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

NL2034883B1 - Computer-implemented method of generating a computer program product - Google Patents

Computer-implemented method of generating a computer program product Download PDF

Info

Publication number
NL2034883B1
NL2034883B1 NL2034883A NL2034883A NL2034883B1 NL 2034883 B1 NL2034883 B1 NL 2034883B1 NL 2034883 A NL2034883 A NL 2034883A NL 2034883 A NL2034883 A NL 2034883A NL 2034883 B1 NL2034883 B1 NL 2034883B1
Authority
NL
Netherlands
Prior art keywords
computer
computer program
implemented method
program product
game
Prior art date
Application number
NL2034883A
Other languages
Dutch (nl)
Inventor
Van De Berg Tony
Jonas David
Vroman Ruben
Challiou Belkasm
Original Assignee
Moonlander Tech B V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Moonlander Tech B V filed Critical Moonlander Tech B V
Priority to NL2034883A priority Critical patent/NL2034883B1/en
Application granted granted Critical
Publication of NL2034883B1 publication Critical patent/NL2034883B1/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a computer-implemented method of generating a computer program product, the method comprising: receiving input parameters describing characteristics of a computer program and a random seed value, generating at least one random number based on the random seed value, accessing a catalogue of computer program elements, wherein the elements comprise at least three-dimensional model data, two-dimensional image data, audio data, and codified rules, selecting computer program elements from the catalogue corresponding to the characteristics of the computer program based on at least one random number generated from the random seed value, composing the computer program product by combining the selected program elements, and storing the composed computer program product on a computer readable medium.

Description

Computer-implemented method of generating a computer program product
Field of the invention
[01] The invention relates to a computer implemented method of generating a computer program product.
Background art
[02] Integrated development environments (IDEs) are software applications which provide facilities for computer programmers for software development. Usually these applications contain lots of smaller applications which facilitate (or support) the ease of use to create programs. Software development kits (SDK) such as Android SDK or iOS
SDK are used to generate mobile applications in their respective platforms. Similar development kits exist for Personal Computing (PC) platforms and game consoles such as the Sony PlayStation and Microsoft XBox systems. Within such frameworks, game engines exist which form a framework for game development. For example, the Unreal
Engine and Unity3D are commonly used as software frameworks for the development of games.
[03] These IDEs, SDKs, game engines and the like usually comprise the relevant libraries and development tools for developing games. However, these platforms are typically toolboxes, and a developer must supply content in the form of three-dimensional (3D) graphical data, two-dimensional (2D) graphical data, audio data, avatar data, game rules and logic, etc. Where these toolboxes have defaults for said items, it is inevitable that, when a lot of users use these defaults, they will end up with software programs which look and feel alike.
[04] So, the two alternatives provided by the prior art is the ability to either create very generic-looking games using the default graphical and audio data, or developing all graphics, audio, rules, etc from the ground up, which is a very costly process (the budget for so-called triple-A games typically runs into the hundreds of millions).
[05] There is therefore a need to provide development environments which allows the users to make unique programs in a more simple manner.
Summary of the invention
[08] The invention relates to a computer-implemented method of generating a computer program product, the method comprising a) receiving, from a user, input parameters describing characteristics of a computer program, b) generating from a random seed value or receiving from the user at least one random number, wherein the random number may be in a predetermined range,
Cc) accessing a catalogue of computer program elements, wherein the elements comprise at least three-dimensional model data, two-dimensional image data, audio data, and codified rules, d) selecting computer program elements from the catalogue corresponding to the characteristics of the computer program based on the at least one random number, e) composing the computer program product by combining the selected program elements f) storing the composed computer program product an a computer readable medium.
[07] In an embodiment, each possible random number is within a predetermined range and corresponds to a unique combination of said three-dimensional model data, two- dimensional image data, audio data, and codified rules. In an embodiment of the invention, steps ¢) through f) are done so that repeating the procedure using the same input parameters and random number results in the same computer program product.
[08] The random seed value can be provided by the user, or it can be generated by the system (e.g. taking the time in milliseconds precision or any other suitable random seed value). The random number can be used a shortcut to regenerate the same game again.
The random number can be supplied by the user or generated by the system and shown to the user for later use. The random number can be stored (in readable fashion) in the generated computer program product. All information needed to regenerate the same game may be stored in the computer program product or otherwise. Said information could be one or more of the input parameters, the random seed value, the generated random number, any fine-tuning information.
[09] In an embodiment of the invention, the catalogue of computer program elements is a catalogue of self-contained computer games, each game having one or more of the computer program elements.
[10] In an embodiment of the invention, the input parameters describe at least one of a game type, a set of three-dimensional model data, a set of two-dimensional model data, and a set of codified rules.
[11] In an embodiment of the invention, the method further comprises e-bis) adding a graphical user interface to the computer program product
[12] In an embodiment of the invention, step d} comprises a trial and error iterative process.
[13] In an embodiment of the invention, the user input comprises additional data concerning an avatar.
[14] In an embodiment of the invention, the user input comprises additional boundary conditions used in the selecting program elements step d)
[15] In an embodiment of the invention, the user input is in the form of natural language text. In an embodiment of the invention, the user input is processed in a tokenizer stage, an embedding stage and an encoding or decoding stage to obtain a hidden state representation, wherein at least one of the selecting computer program elements and composing computer program product steps are based on the hidden state representation.
[16] In an embodiment of the invention, the tokenizer stage, the embedding stage and the encoding or decoding stage are part of a transformer based encoder or decoder.
[17] In an embodiment of the invention, the method further comprises the step of generating, through a generative artificial intelligence model, at least one asset based on the user input.
[18] The invention further provides a computer program product comprising instructions which, when run on a computer device, implement the above described method.
[19] The invention further provides a computer device comprising a processing unit, a memory, and input/output means, the computer device configured to implement the above described method.
Description of the Drawings
[20] Inthe attached drawings, ° Figure 1 schematically shows a prior art method of generating a computer program product; © Figure 2 schematically shows another prior art method of generating a computer program product; . Figure 3 schematically shows a method of generating a computer program product according to an embodiment of the invention; ° Figure 4 schematically shows a system of generating a computer program product according to an embodiment of the invention; ° Figure 5 schematically shows a method of generating a computer program product according to an embodiment of the invention; and ° Figure 6 schematically shows a method of generating a computer program product according to an embodiment of the invention.
Detailed description of the invention
[21] Figure 1 shows the most basic method for creating and running a computer program. A user types commands into a file using an editor 100 and compiles the file with a compiler 200 to create an executable program which, when run, may output data to another window 300. In order to compile the program correctly, the user needs to know a computer programming language which is accepted by the compiler in order to generate the executable program. In this case, the user needs to program (or ‘code’) every possible scenario in order to obtain the desired output, which may be tedious and time consuming.
[22] According to an embodiment of the invention, in the field of game generation, this coding procedure (also known as ‘PureCode’) may be separated into complex mechanics code and complex rendering code, as shown in Figure 2. Here, the mechanics code may refer to code describing how the game progresses, the scientific programming used to implement the physics in, for example, projectile motion, and the like, and the rendering code may refer to code describing how the output is displayed, for example, the avatar, and the like. As stated above, as everything needs to be implemented manually into the code, this results in a file containing lots of lines, which may result in a more time consuming and complex debugging process.
[23] In order to streamline the process as shown in Figure 2, in the field of game generation, a user starts with a library of tools which can be used to generate the graphical user interface (GUI) and implement simple mechanics code to create a complete game.
This is commonly called using the ‘Game Engine’ to develop games. The library of tools (or repositories’) comprise code routines which a pre-built lines of executable code which are made available to the user. Such routines can be sometimes referred to as modules.
The user can then select the relevant modules {and tools) for their game design. This means that the user does not, per se, have to code everything from scratch, saving time.
The user is then burdened with implementing code in order for the modules to communicate with each other, however this may be less tedious than writing everything from scratch. Examples of such code repositories are available in the Unity, Unreal and
Godot engines.
[24] A common downside of using such repositories is that users, who are not well acclimatised to programming games {or game products), may encounter a steep learning curve. While modules which perform the necessary functions may be present in the repository, the user needs to locate said modules for use in their programs. Furthermore, the cost of using repositories may be expensive. Problems may also arise when modules are not designed to be compatible with each other. Thus, the quality of the generated game product is heavily dependent on the user's abilities.
[25] Another downside is that the available 2D and 3D graphics data and audio data in the repositories could be limited. This results in games which are visually and otherwise very similar to each other. Such generic looking games are not very attractive to users and thus represent a reduced economic value.
[26] Figure 3 shows an embodiment according to the present invention.
[27] Instead of having as the starting point as the compiler (which determines the programming language used to code) or the library of tools (or repositories) as shown in
Figure 2, the computer implemented method of generating a computer program product according to the present invention makes use of a game that is procedurally generated 5 from a catalogue of games. The procedural generation is based on a user's input and on a random number (generated based on a seed value that is part of the user's input). The users input may take any form, provided it is understood by a computer. Examples of input are input files, choices made on an input screen on a display of the computer, voice/audio commands, gestures, and the like.
[28] On top of the procedurally generated game, a customized graphical user interface (GUI) may be added to complete the game. Such a GUI will give the procedurally generated game an even more individual look and feel.
[29] Figure 4 schematically shows a system of generating a computer program product according to an embodiment of the invention. The system comprises a procedural game generator 400 and a configurator 46. The procedural game generator 400 is controlled by user input (including random seed value or other random number initiator} 43a and user tuning input 45a. The configurator 46 takes as input a procedural computer program product (or game) as produced by procedural game generator 400, is controlled by user config input 46a, and outputs a customized game. The procedural game generator 400 comprises an asset meta-data 41, an asset catalogue 42, an asset selector 43, a procedural world builder 44, and a fine tuner 45.
[30] The user input 43a comprises parameters describing the characteristics of a computer program. These parameters may describe one or more of a game type, a set of three-dimensional model (3D) data (such as data concerning in-game character avatars), a set of two-dimensional (2D) model data, audio data, and a set of codified rules.
[31] The catalogue 42 holds related data, such as 3D data, 2D data, audio date and rule data. A collection of such data may also be called a module. The catalogue may be or comprise a set of self-contained games comprising said data or modules.
[32] The catalogue 42 is described by a layer of meta-data 41, comprising e.g. tags, themes, dependencies and mutual exclusivity. For example, the tag "spaceship" or "forest" may be applied to 3D or 2D data, to indicate that the data is suitable for use in a game that is described by that tag. Likewise themes like "shooter", "racing", "puzzle" can be used as meta-data to rule data.
[33] The user-provided characteristics 43a are analysed by the asset selector 43 to determine, in conjunction with the asset meta-data 41, which modules in the catalogue 42 are capable of functioning as said characteristic. In other words, the traditional game-
designing process is flipped/inverted - instead of manually selecting modules in a repository, the characteristics from the user input 43a in conjunction with compatibility data and other meta-data 41 determine the modules in the catalogue 42 which may be used.
[34] The asset selector's mode of operation may be pre-taught (e.g. hardcoded rules), or taught using an iterative processes or through training of neural networks or other (deep) learning techniques, in order to determine which modules are suitable in view of the user's input characteristic. A characteristic mentioned here is for example, the game mechanics, the style of game play, assets used to aid the game mechanics (for example, a vehicle in a car racing game, a house in a simulation game, and so on) and/or the style of game play (for example, a moving background in ‘scroller’ type games, and so on).
Such flipped/inverted design process may be called a template-based design.
[35] The asset selector 43 may use a compatibility module (not shown in figure 4) to determine the compatibility of each characteristic and asset based on the meta-data layer.
The compatibility may be determined based on a graph based wave function collapse algorithm. The compatibility module is thus tasked to determine the optimal asset compatibility and eventual configuration.
[36] The catalogue 42 should preferably be sufficiently large that there are more compatible assets that fit in any single game. A random number (e.g. generated from a user supplied seed value as part of the user input 43a) may then be used to select which of the compatible assets are actually selected. Such a random number based procedure ensures that each generated game is unique. Using a user-supplied seed value for the random number generator ensures that the process is reproducible -- using the same user input with the same seed value will always, given the same catalogue 42 and meta-data 41, result in the same unique game.
[37] Once the compatible assets and characteristics (or styles) are determined, a procedural world builder 44 generates a gaming world. The procedural world builder 44 may use genetic algorithms, such as Perlin Noise and Wave Function Collapse, as well as other noise functions and custom procedural algorithms to generate a gaming world that corresponds the characteristics of the user input 43a. The procedural world builder may distribute assets selected by the asset selector 43 into a generated world according to requirements and boundary conditions based on the user input. The world builder will also apply rules of logic and other rules from the meta-data 41. For example, such rules may specify how to combine rock-like 3D assets in order to create a convincing mountainous area, or how to use vegetation 3D assets to create a forest or jungle environment. These predetermined rules in the asset meta-data 41 can be supplemented by user specified rules in the fine tuning phase (see below).
[38] The fine tuner 45 receives fine tuning input 45a from the user and is configured to fine tune the procedurally generated game, including the world in the game, according the fine tuning input. For example, fine tuning information could dictate that a certain type of asset be placed on a specific place, or that the world should have other specific aspects outside of the procedurally generated content. The fine tuner 45 may also affect other aspects of the game, such as the game logic, rules, lighting, physics. The elements affected by the fine tuner 45 may comprise one or more of three-dimensional assets, two- dimensional assets, audio assets, and codified rules, where the codified rules may comprise the physics behind the game engine or gameplay logic (e.g. sequence of events to take place in the world, cause-and-effect rules, rules for behaviour of Non-Player
Characters (NPCs)). After the fine tuning, a complete and unique procedural game is created.
[39] The system comprises a configurator 46 for the user to configure, through user config input 46a, elements of the characteristics (or assets) in the game template to generate a unique game. The user can specify a specific avatar to be used. For example, the user can specify a Graphical User Interface (GUI) of the game. The user can also specify other aspects, such as game play characteristics, options to purchase game items, non-fungible tokens, and the like through a store, or online characteristics of the game (e.g. allowing online games with and/or against other online users). The user may be able to specify in-game advertising. The user may be able to specify device specific aspects, such as in-game utilization of a device's microphone, GPS sensor, camera, and the like.
This allows the user to customize the template further to obtain an unique game 48 with the required look and feel. The resulting game can then be stored and published.
[40] As was mentioned, a random seed value may be used to generate a random number. The procedural generation by the parts of procedural game generator 400 could be performed using a random and/or a pseudo-random number generators before the process of obtaining compatible assets. The random number determines which assets (elements), which correspond to the desired characteristics, are selected from the repository (or catalogue). This allows for random elements to be randomly inserted into the game, resulting in a unique game template and custom game.
[41] The random seed value or the random number itself can also be based on the input parameters describing the characteristics. In this manner, the random number may be calculated based on the meta-data layer. This allows for better optimization, as the random number would then be similar for similar games, which can then be used to the advantage of the user to modify the game template to make a more unique custom game.
[42] As the procedural method described here may select modules that, even though fitting the user input, the user may not like, the user input may further comprise additional boundary conditions to further limit the selected elements.
[43] According to another embodiment of the present invention, the computer is further configured to store the random number and/or the user input. This allows for a simple check to see if a game that is being created has already been created before, without the need to store the actual game.
[44] Figure 5 schematically shows a method of generating a computer program product according to an embodiment of the invention. This method may be applied in the context of a system as described in figure 4.
[45] The method of generating a computer program product could be performed on any electronic device — such as a personal computer (PC), laptop, smartphone, tablet and so on — provided they have sufficient hardware capabilities to run software implementing the method according the invention.
[48] In Step 501, the electronic device prompts a user for input parameters describing the characteristics of the computer program. This may be performed on a display of the electronic device, in the form of a command line, graphics terminal, or a user interface.
Furthermore, the input parameters may be entered manually through a keyboard, however the electronic device may be configured with a microphone for speech input. Furthermore, the electronic device may be configured with a wireless receiver unit, which is configured to receive input from a user using a separate electronic device. For example, a smartphone held by the user may be configured to transmit input parameters to the electronic device.
[47] The user input can be in the form of structured data (e.g. an XML file with predefined tags) or in unstructured form, in which case a Natural Language Processor (NLP) module is used to interpret the user input. Wherever this specification mentions user input of any type, this input can be in the form of natural language (spoken or written) which is processed by an NLP module in a system according the invention (see also figure 6).
[48] Examples of input parameters and characteristics have already been described above. They may include characteristics of a game type (e.g. racing game, first person shooter, puzzle game, side-scroller, flight simulator, space simulator, etc). They may include characteristics of a game world or theme (e.g. urban, jungle, desert, arctic region, alien planet, spaceship, etc). They may include characteristics of assets (e.g. type of buildings or vegetation, type of NPCs populating the world). They may include characteristics of gameplay elements and rules for the player interaction with NPCs or world assets. The user may also input additional data concerning a two-dimensional or three-dimensional avatar.
[49] Also in Step 501, the electronic device may be configured to receive a random seed value from the user. This may be an alphanumeric combination input by the user.
This random seed value could also be generated by a processor of the electronic device.
This random seed value could also be generated based on the input parameters or the described characteristics of the computer program by said input parameters.
[50] In Step 502, the electronic device may be configured to generate at least one random number based on the random seed value. When more than one random number is generated, each random number may define a different characteristic of the computer program. By generating more than one random number, it simplifies the process of identifying duplicate characteristics with respect to other computer programs, and thus results in a simplified method for determining which characteristics need to be (re)generated or (re)determined in order for the computer program to be unique. Similarly, the random number may also be used to identify other aspects of the computer program, such as a game type, a class of three-dimensional model data, a class of two-dimensional model data, and a class of codified rules.
[51] In Step 503, the electronic device may be configured to accesses a catalogue of computer program elements, wherein the elements comprise at least three-dimensional model data, two-dimensional image material, and codified rules. The catalogue may be stored in the electronic device, or may be stored in a server connected (wired, wireless or in a combination of both) to the internet. The catalogue may be a database, and said database could be modified (or updated) by the end user to introduce more program elements into a computer game.
[52] In Step 504, the electronic device may be configured to select computer program elements from the catalogue corresponding to the characteristics of the computer program based on the at least one random number, and to procedurally generate a world according the characteristics. The selection and generation may be performed by a trial and error iterative process, using brute-force trials, or using statistical methods to optimally select the elements for the appropriate characteristics. During the selection process, the electronic device is configured to identify any elements which may result in duplicate characteristics to a game product already stored in the database. When such an identification is made, the electronic device may be further configured to identify an element, out of the plurality of elements in the catalogue (or database), in order to differentiate the current game product with existing game products.
[53] In order to improve the selection process by, for example, improved statistical methods (e.g. better fitting algorithms), the user may be prompted to provide additional fine tuning input in Step 504. These inputs could be in the form of boundary conditions used in the selection of program elements. Such boundary conditions may specify the limitations on, for example, the codified rules (such as the terrain or physics engine), or restrictions on data in order to generate a unique computer program product. The step 504 may comprise one or more of the features as described in connection with the asset selector 43, procedural world builder 44 and fine tuner 45 of figure 4.
[54] In Step 505, the electronic device may be configured to compose a computer program product by combining the selected program elements. In this step, user config input may be used to provide additional configuration of the computer program product, as described in the context of the configurator 46 in figure 4.
[55] In Step 506, the electronic device may be configured to store the composed computer program product onto a computer readable medium. The computer program product may also be stored in the catalogue (or database), to function as future input for procedurally generated games.
[56] Figure 6 schematically shows a method of generating a computer program product according to an embodiment of the invention, based on user text input. For example, the user can input text 801 such as "A vertical scrolling game featuring a world war 2 era propeller airplane, seen from above, flying across islands in the pacific and fighting attacking enemy plains. The airplane is equipped with an unlimited amount of bullets and a limited amount of bombs". The user can also specify a random seed value, or it can be default. Based on the (default) random seed value, a random number 601a can be generated. By storing this random number (or the seed used to generate it), the user can later re-generate the exact same game.
[57] The text is processed by a tokenizer 602, turning the text into a numeric sequence and an embedder 603, turning the numeric sequence into a sequence of vectors. The sequence of vectors is processed in a encoder or decoder stack 604, e.g. an encoder or decoder of a transformer-based natural language processing deep learning model.
Various existing encoder or decoder models can be used for this task, e.g. variants of
BERT (Bidirectional Encoder Representations from Transformers) or variants of GPT (Generative Pretrained Transformer). The stack results in a hidden states 605 representation of the user input data.
[58] From the hidden state representation 605, at least one of the asset selection or the computer program product composition (both as described in reference to figure 5) can be done. For example, the above provided example user input describes both assets and game mechanics.
[59] Typically, the use of the hidden state will involve sampling using random numbers.
A hyperparameter called temperature 606 may determine how the sampling is done, as is known in the art of NLP, with lower temperatures promoting conservative choices and higher temperatures promoting more experimental choices. However, in an embodiment all randomness is repeatable because of the used seed value. That is, given the same random seed value and/or same random number 601a as well as the same text input, the asset selection and game configuration will have the same outcome.
[60] A finetuning step 608, as described earlier, may be used to steer the selection and/or composition 607.
[61] The present invention has been described above with reference to a number of exemplary embodiments as shown in the drawings. Modifications and alternative implementations of some parts or elements are possible, and are included in the scope of protection as defined in the appended claims.
[82] In the foregoing description of the figures, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the scope of the invention as summarized in the attached claims.
[63] In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
[64] In particular, combinations of specific features of various aspects of the invention may be made. An aspect of the invention may be further advantageously enhanced by adding a feature that was described in relation to another aspect of the invention.
[65] It is to be understood that the invention is limited by the annexed claims and its technical equivalents only. In this document and in its claims, the verb "to comprise" and its conjugations are used in their non-limiting sense to mean that items following the word are included, without excluding items not specifically mentioned. In addition, reference to an element by the indefinite article "a" or "an" does not exclude the possibility that more than one of the element is present, unless the context clearly requires that there be one and only one of the elements. The indefinite article "a" or "an" thus usually means "at least one".

Claims (14)

Conclusies 1: Een door een computer geïmplementeerde werkwijze voor het genereren van een computerprogrammaproduct, de methode omvat: a) het ontvangen, van een gebruiker, van invoerparameters die kenmerken van een computerprogramma beschrijven, b) het genereren vanaf een willekeurige startwaarde of het ontvangen van de gebruiker van ten minste één willekeurig getal, c) toegang krijgen tot een catalogus van computerprogramma-elementen, waarbij de elementen ten minste driedimensionale modelgegevens, tweedimensionale beeldgegevens, audiogegevens en gecodificeerde regels omvatten, d) het selecteren van computerprogramma-elementen uit de catalogus die overeenkomen met de kenmerken van het computerprogramma op basis van het ten minste ene willekeurige getal, e) het samenstellen van het computerprogrammaproduct door de geselecteerde programma-elementen te combineren f het opslaan van het samengestelde computerprogrammaproduct op een door een computer leesbaar medium.Claims 1: A computer-implemented method for generating a computer program product, the method comprising: a) receiving, from a user, input parameters describing features of a computer program, b) generating from a random starting value or receiving from the user at least one random number, c) accessing a catalogue of computer program elements, the elements comprising at least three-dimensional model data, two-dimensional image data, audio data and codified rules, d) selecting computer program elements from the catalogue that correspond to features of the computer program based on the at least one random number, e) assembling the computer program product by combining the selected program elements f) storing the assembled computer program product on a computer-readable medium. 2. De door een computer geïmplementeerde werkwijze volgens conclusie 1, waarbij de stappen c) tot en met f) zo worden uitgevoerd dat het herhalen van de procedure met dezelfde invoerparameters en willekeurige getallen resulteert in hetzelfde computerprogrammaproduct.2. The computer-implemented method of claim 1, wherein steps c) through f) are performed such that repeating the procedure with the same input parameters and random numbers results in the same computer program product. 3. De door een computer geïmplementeerde werkwijze volgens conclusie 1 of 2, waarbij de catalogus van computerprogramma-elementen een catalogus is van op zichzelf staande computerspellen, waarbij elk spel één of meer van de computerprogramma- elementen heeft. 3. The computer-implemented method of claim 1 or 2, wherein the catalogue of computer program elements is a catalogue of standalone computer games, each game having one or more of the computer program elements. 4: De door een computer geïmplementeerde werkwijze volgens één van de bovenstaande conclusies, waarbij de invoerparameters ten minste één beschrijven van een speltype, een set van driedimensionale modelgegevens, een set van tweedimensionale modelgegevens en een set van gecodificeerde gegevens. reglement.4: The computer-implemented method according to any one of the preceding claims, wherein the input parameters describe at least one of a game type, a set of three-dimensional model data, a set of two-dimensional model data and a set of codified data. rules. 5. De door een computer geïmplementeerde werkwijze volgens één van de bovenstaande conclusies, verder omvattende:5. The computer-implemented method of any one of the preceding claims, further comprising: e-bis) het toevoegen van een grafische gebruikersinterface aan het computerprogrammaproducte-bis) adding a graphical user interface to the computer program product 6. De door een computer geïmplementeerde werkwijze volgens één van de bovenstaande conclusies, waarbij stap d} een iteratief proces van vallen en opstaan omvat.6. The computer-implemented method of any preceding claim, wherein step d} comprises an iterative process of trial and error. 7. De door een computer geïmplementeerde werkwijze volgens een van de bovenstaande conclusies, waarbij de gebruikersinvoer aanvullende gegevens omvat met betrekking tot een avatar.7. The computer-implemented method of any one of the preceding claims, wherein the user input comprises additional data relating to an avatar. 8. De door een computer geïmplementeerde werkwijze volgens een van de bovenstaande conclusies, waarbij de gebruikersinvoer aanvullende randvoorwaarden omvat die worden gebruikt bij het selecteren van programma-elementen stap d)8. The computer-implemented method of any preceding claim, wherein the user input includes additional boundary conditions used in selecting program elements in step d) 9. De door een computer geïmplementeerde werkwijze volgens een van de bovenstaande conclusies, waarbij de gebruikersinvoer de vorm heeft van natuurlijke taaltekst.9. The computer-implemented method of any one of the preceding claims, wherein the user input is in the form of natural language text. 10. De door een computer geïmplementeerde werkwijze volgens conclusie 9, waarbij de gebruikersinvoer wordt verwerkt in een tokenizer-stadium, een inbeddingsstadium en een coderings- of decoderingsstadium om een weergave van de verborgen toestand te verkrijgen, waarbij ten minste één van de selecterende computerprogramma-elementen en samenstellen productstappen van computerprogramma's zijn gebaseerd op de weergave van de verborgen toestand.10. The computer-implemented method of claim 9, wherein the user input is processed in a tokenizer stage, an embedding stage, and an encoding or decoding stage to obtain a representation of the hidden state, wherein at least one of the selecting computer program elements and composing computer program product steps are based on the representation of the hidden state. 11. De door een computer geïmplementeerde werkwijze volgens conclusie 10, waarbij de tokenizer-trap, de inbeddingstrap en de codeer- of decodeertrap deel uitmaken van een op een transformator gebaseerde codeerder of decodeerder.11. The computer-implemented method of claim 10, wherein the tokenizer stage, the embedding stage and the encoding or decoding stage are part of a transformer-based encoder or decoder. 12. De door een computer geïmplementeerde werkwijze volgens een van de conclusies 9 - 11, verder omvattende de stap van het genereren, door middel van een generatief artificieel intelligentiemodel, van ten minste één bedrijfsmiddel op basis van de gebruikersinvoer.12. The computer-implemented method of any of claims 9 to 11, further comprising the step of generating, by means of a generative artificial intelligence model, at least one asset based on the user input. 13. Een computerprogrammaproduct omvattende instructies die, wanneer ze worden uitgevoerd op een computerinrichting, een van de conclusies 1 - 12 implementeren.13. A computer program product comprising instructions which, when executed on a computing device, implement any of claims 1 to 12. 14. Computerinrichting omvattende een verwerkingseenheid, een geheugen en invoer/uitvoermiddelen, waarbij de computerinrichting is geconfigureerd om een werkwijze te implementeren volgens een van de conclusies 1-13.14. A computer device comprising a processing unit, a memory and input/output means, the computer device being configured to implement a method according to any of claims 1 to 13.
NL2034883A 2023-05-22 2023-05-22 Computer-implemented method of generating a computer program product NL2034883B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
NL2034883A NL2034883B1 (en) 2023-05-22 2023-05-22 Computer-implemented method of generating a computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL2034883A NL2034883B1 (en) 2023-05-22 2023-05-22 Computer-implemented method of generating a computer program product

Publications (1)

Publication Number Publication Date
NL2034883B1 true NL2034883B1 (en) 2024-12-03

Family

ID=88517361

Family Applications (1)

Application Number Title Priority Date Filing Date
NL2034883A NL2034883B1 (en) 2023-05-22 2023-05-22 Computer-implemented method of generating a computer program product

Country Status (1)

Country Link
NL (1) NL2034883B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107982920A (en) * 2017-11-28 2018-05-04 上海波克城市网络科技股份有限公司 Become more meticulous adjusting of difficulty method based on the game of outpost of the tax office class
US20220143509A1 (en) * 2019-03-19 2022-05-12 Highwire Games Llc Dynamic 3d environment generation
CN116071452A (en) * 2023-03-07 2023-05-05 网易(杭州)网络有限公司 Style image generation method and device, computer equipment and storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107982920A (en) * 2017-11-28 2018-05-04 上海波克城市网络科技股份有限公司 Become more meticulous adjusting of difficulty method based on the game of outpost of the tax office class
US20220143509A1 (en) * 2019-03-19 2022-05-12 Highwire Games Llc Dynamic 3d environment generation
CN116071452A (en) * 2023-03-07 2023-05-05 网易(杭州)网络有限公司 Style image generation method and device, computer equipment and storage medium

Similar Documents

Publication Publication Date Title
Gregory Game engine architecture
Smith et al. Variations forever: Flexibly generating rulesets from a sculptable design space of mini-games
Liapis et al. Orchestrating game generation
Karavolos et al. Mixed-Initiative Design of Game Levels: Integrating Mission and Space into Level Generation.
Togelius et al. Procedural content generation: Goals, challenges and actionable steps
Salter et al. Flash: Building the interactive web
KR20200024733A (en) Seasonal reward distribution system
Eladhari et al. AI-based game design: Enabling new playable experiences
Pirovano et al. Fuzzy Tactics: A scripting game that leverages fuzzy logic as an engaging game mechanic
NL2034883B1 (en) Computer-implemented method of generating a computer program product
Borromeo Hands-on Unity 2021 game development: create, customize, and optimize your own professional games from scratch with Unity 2021
Miller et al. Stories of the town: balancing character autonomy and coherent narrative in procedurally generated worlds
Ventura et al. Digital Storytelling with DINAH: dynamic, interactive, narrative authoring heuristic
Abbadi Casanova 2: a domain specific language for general game development
Ciesla Mostly codeless game development
Schroeder LUME
Prakash et al. Advances in games technology: Software, models, and intelligence
Fulton et al. The Essential Guide to Flash Games
US20250190768A1 (en) Generative neural application engine
Vu et al. Multi-Agents System for Game Development Through Unreal Engine
KR102195471B1 (en) Method and apparatus for determining difficulty level of game
Patten Context sensitive grammatical evolution: a novel attribute grammar based approach to the integration of semantics in grammatical evolution
Hämäläinen et al. Predictive physics simulation in game mechanics
Neto et al. Developing digital games through software reuse
Cicanci Creating an RTS Game in Unity 2023: A comprehensive guide to creating your own strategy game from scratch using C