Game development support system, game development support method, and game development support program
Patent Information
- Application Number
- JP2023128254
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-07
- Publication Date
- 2025-02-20
- Estimated Expiration
- 2043-08-07
AI Technical Summary
【0024】 本開示によれば、カットシーンの再生時にフレームレートが一時的に低下してしまうことを抑制できるような描画設定を、ゲームの開発段階で自動的に行うことができる。
Smart Images

Figure 2025024271000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to image processing in game processing. [Background technology]
[0002] 2. Description of the Related Art Conventionally, a technique called dynamic resolution or variable resolution, which is used in game processing and the like, has been known (for example, Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Unity Technologies, "Unity User Manual Dynamic Resolution", [online], [Retrieved July 13, 2023], Internet (URL: https: / / docs.unity3d.com / ja / 2018.4 / Manual / DynamicResolution.html) Summary of the Invention [Problem to be solved by the invention]
[0004] The above technology reduces the load on a Graphics Processing Unit (GPU) by lowering the resolution according to the processing load of the GPU. However, this technology determines whether to lower the resolution based on the processing load of the GPU in a frame prior to the current frame (e.g., one frame prior). Therefore, if the processing load of the GPU increases suddenly, a temporary drop in frame rate may occur before the resolution is actually lowered. In this regard, there is room for improvement to suppress the drop in frame rate. [Means for solving the problem]
[0005] In view of the above, the following configuration example is given.
[0006] (Configuration 1) Configuration 1 is a game development support system including at least one processor. The processor executes a game program including a dynamic rendering setting program that changes rendering settings according to the load of rendering processing during the game, plays a predetermined cut scene during the game with the dynamic rendering setting disabled, measures the load of the rendering processing during the playback of the cut scene, and sets an alternative load to be used for the dynamic rendering setting in place of the load of the rendering processing being executed at a timing in the cut scene that satisfies a predetermined condition when the cut scene is played with the dynamic rendering setting enabled based on a transition of the measured load, and records data of the alternative load.
[0007] According to the above configuration example, the rendering processing load of a cut scene is measured in advance after disabling the dynamic rendering settings, and an alternative load to be used in the dynamic rendering settings at a predetermined timing in the cut scene is determined and recorded based on the measurement result. As a result, in the game processing of the product version, when rendering a cut scene, the alternative load based on the previously measured load is used, so that the rendering settings can be changed before the frame rate drops.
[0008] (Configuration 2) In configuration 2, in the above configuration 1, the processor may set an alternative load for a first timing in the cut scene indicating a predetermined timing in the cut scene in a first case in which the degree of increase in load within a first period after the timing exceeds a predetermined standard.
[0009] According to the above configuration example, an alternative load can be set in accordance with the timing when the load of the rendering process increases suddenly in the cut scene. This allows the rendering settings to be changed at that timing. This makes it possible to prevent the load of the rendering process from increasing suddenly.
[0010] (Configuration 3) Configuration 3 is the above-mentioned configuration 2, wherein the cut scene is made up of at least one cut, and the first period may be a period from the first timing onwards up to a predetermined length within the cut.
[0011] According to the above configuration example, since the alternative load is set for each cut, an appropriate alternative load can be set for each cut.
[0012] (Configuration 4) In configuration 4, in configuration 3, the processor may store, in a second case in which a cut switch occurs, a maximum load within a second period that begins a predetermined period after the switch as an alternative load at a second timing at the time of the cut switch, and may not store an alternative load based on the first case from the second timing to a third period.
[0013] According to the above configuration example, it is possible to prevent the drawing setting from being lowered too much during a cut. In a frame where a cut is switched, the load may be higher than during the cut due to the processing associated with the switch, but on the other hand, since the content (picture) of the cut changes significantly, the processing drop in the frame is difficult to visually recognize. Therefore, by using the maximum load within the second period starting slightly after the switch, rather than the time when the switch occurs, it is possible to prevent the drawing setting from being lowered too much. In addition, it is also possible to eliminate the need to set an alternative load according to the first case from the second timing to the third period.
[0014] (Configuration 5) In a fifth aspect of the present invention, in the first aspect, the cut scene may be composed of at least one cut. In addition, in a second case where a cut change occurs, the processor may store a maximum load within a second period that starts after a predetermined period after the change as an alternative load at a second timing when the cut change occurs.
[0015] According to the above configuration example, since the processing drop when a cut switch occurs is difficult to visually notice, by using the maximum load within the second period that begins a predetermined period after the cut switch occurs as an alternative load, it is possible to prevent the drawing settings from being lowered too much during the cut.
[0016] (Configuration 6) In a sixth configuration in any one of the second to fourth configurations, the processor may set, in a first case, a load within a first period that has increased beyond a predetermined standard, as an alternative load at a first timing.
[0017] According to the above configuration example, if the load after the increase is high, the rendering settings can be changed at a timing before the load increases.
[0018] (Configuration 7) Configuration 7 is any one of configurations 1 to 5 above, wherein the dynamic rendering settings may include at least a dynamic resolution setting that lowers the rendering resolution when the load of the rendering process during the game is high.
[0019] According to the above configuration example, the load of the drawing process can be reduced by lowering the drawing resolution.
[0020] (Configuration 8) Configuration 8 may be a dynamic resolution setting in any of configurations 1 to 7 above, in which the dynamic rendering setting at least lowers the rendering resolution when the load of the rendering process during the game is high, and raises the rendering resolution when the alternative load is low or when the load of the rendering process is low after a predetermined period of time has elapsed since the rendering resolution was lowered.
[0021] According to the above configuration example, by using an alternative load even in situations other than when the load is high when switching cuts, in a setting in which frequent switching of resolution is suppressed, if the load has decreased after switching cuts, it is possible to allow the original resolution to be restored.
[0022] (Configuration 9) Configuration 9 is a configuration in which, in any of configurations 1 to 5 above, the processor automatically executes a game program periodically at a pre-specified timing, plays back cut scenes and measures the load for each cut scene included in the game, and updates and stores the alternative load data.
[0023] According to the above configuration example, even if the rendering process or the contents of a cut scene are changed during development, appropriate rendering settings can be made for the latest version without the developer having to redo the work. Effect of the Invention
[0024] According to the present disclosure, rendering settings that can suppress temporary drops in frame rate when playing cut scenes can be automatically set during the game development stage. [Brief description of the drawings]
[0025] [Figure 1] FIG. 1 is a schematic diagram showing an overall view of a development support system according to an embodiment of the present invention; [Diagram 2] Block diagram showing the hardware configuration of development terminal 1 [Diagram 3] A block diagram showing the hardware configuration of the game device 2. [Figure 4] Diagram to explain cut scenes [Diagram 5] Diagram to explain cut scenes [Figure 6] Diagram to explain cut scenes [Figure 7] Diagram to explain cut scenes [Figure 8] FIG. 1 is a diagram for explaining an overview of the processing of this embodiment. [Figure 9] FIG. 1 is a diagram for explaining an overview of the processing of this embodiment. [Figure 10] A memory map showing an example of various data stored in the memory unit 12 of the development terminal 1. [Figure 11] An example of the data configuration of the measurement result data 502 [Figure 12] An example of the data configuration of the GPU load forced setting data 503 [Figure 13] A memory map showing an example of various data stored in the memory unit 22 of the game device 2 (at the development stage) [Figure 14] A memory map showing an example of various data stored in the storage unit 22 of the game device 2. [Figure 15] Flowchart showing details of periodic measurement process [Figure 16] Flowchart showing details of load measurement processing [Figure 17] Flowchart showing details of analysis process [Figure 18] Flowchart showing details of cut scene drawing process DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] An embodiment of the present invention will be described below. FIG. 1 is a schematic diagram showing an overall image of a game development support system according to this embodiment. The game development support system 100 of this embodiment includes a development terminal 1 and a game device 2. The development terminal 1 is, for example, a personal computer (PC). The development terminal 1 and the game device 2 are configured to be able to communicate with each other via wires. In this embodiment, the development terminal 1 can send a predetermined command to the game device 2 to cause the game device to execute various processes. In addition, the execution status and execution results can also be obtained from the game device 2. In other words, an environment is created in which a game developer can run a predetermined program or the like on the game device 2 connected to the development terminal 1 and proceed with development work while checking the game processing results on the actual machine.
[0027] [Hardware configuration of development device] Next, the hardware configuration of the development terminal 1 will be described. FIG. 2 is a block diagram showing the hardware configuration of the development terminal 1. The development terminal 1 includes a processor 11. The processor 11 is an information processing unit that executes various information processes executed in the development terminal 1. The processor 11 executes various information processes by executing information processing programs (for example, programs of various tools for game development) stored in a storage unit 12. Note that the storage unit 12 may be an internal storage medium such as a flash memory or a DRAM (Dynamic Random Access Memory), or may be configured to use an external storage medium or the like that is inserted into a slot not shown.
[0028] The development terminal 1 also includes a communication unit 13 for communicating with the game device 2. In this embodiment, it is assumed that communication is via a wired connection, but in other embodiments, wireless communication may be used.
[0029] The development terminal 1 also includes an input device communication unit 14 for performing wired or wireless communication with various input devices 16 such as a keyboard and a mouse. The development terminal 1 is also connected to a display unit 17 (e.g., a personal computer monitor) via an image and audio output unit 15. The processor 11 outputs, for example, images and sounds generated by executing the above information processing to the display unit 17 via the image and audio output unit 15.
[0030] [Hardware configuration of game device 2] FIG. 3 is a block diagram showing an example of a hardware configuration of the game device 2 according to this embodiment. In FIG. 3, the game device 2 includes a processor 21. The processor 21 is an information processing unit that executes various information processes executed in the game device 2. In this embodiment, the processor 21 is configured as a SoC (System-on-a-chip) including at least a CPU (Central Processing Unit) function and a GPU (Graphics Processing Unit) function. The CPU and the GPU may be configured separately. The present invention is also applicable to a configuration in which graphics processing is performed by the CPU without a GPU. The processor 21 executes various information processes by executing an information processing program (e.g., a game program) stored in the storage unit 22. The storage unit 22 may be an internal storage medium such as a flash memory or a DRAM (Dynamic Random Access Memory), or may be configured to use an external storage medium or the like that is inserted into a slot not shown.
[0031] The game device 2 also includes a communication unit 23 for communicating with the development terminal 1.
[0032] The game device 2 also includes a controller communication unit 24 for allowing the game device 2 to communicate with a game console controller 26 in a wired or wireless manner.
[0033] Furthermore, a display unit 27 (e.g., a television or the like) is connected to the game device 2 via an image / audio output unit 25. The processor 21 outputs, for example, images and sounds generated by executing the above-mentioned information processing to the display unit 27 via the image / audio output unit 25.
[0034] [Development environment and processing assumed in this embodiment] Next, an outline of the process assumed in this embodiment will be described. The process of this embodiment is a process assumed to be used mainly in the development stage of a game. Specifically, in this embodiment, a process is performed to reduce the load of the drawing process in a cut scene (sometimes called an event demo scene, etc.) that is video-expressed in a predetermined event in the game. Before describing the outline of the process, a cut scene in this embodiment will be described first. A cut scene in this embodiment is shown as a virtual game space that is drawn by real-time rendering (on-the-fly rendering). The frame rate may be any value, but in this embodiment, it is assumed to be 30 fps, for example. In this embodiment, during a cut scene, the player's operation (movement operation, attack operation, etc.) for controlling the operation of the player object is not accepted. During a cut scene, each object arranged in the virtual space (within the drawing range) moves based on a predetermined movement pattern. In other words, a cut scene in this embodiment refers to a scene that does not undergo interactive response to the player's operation in a scene that is drawn through rendering of the virtual space. Therefore, a cut scene can also be said to be a scene with reproducibility. However, control may be possible to a degree that does not affect the load of the drawing process. For example, as long as the control does not significantly increase or decrease the load on the rendering process, such as slight camera operation, small UI display, turning on / off subtitles, output of sound effects, etc., it can be applied even to scenes that require interactive response.
[0035] The above cut scene is composed of at least one "cut". In one cut, basically, the viewpoint (virtual camera) is not switched. The viewpoint is switched by the instantaneous movement of the virtual camera. The virtual camera is not continuously moved at high speed even in a cut. The switching of each cut is typically the timing when the viewpoint is switched.
[0036] FIG. 4 shows a schematic example of the configuration of a certain cut scene. The cut scene is composed of three cuts, cut #01 to cut #03. The length of each cut is 5 seconds for cut #01, and 10 seconds for cuts #02 and #03. Also, FIG. 5 to FIG. 7 show schematic diagrams of the virtual space in each cut from above. FIG. 5 shows that a player object and three pillar objects exist in a virtual space that is outdoors. Also, cut #01 is an example in which a first viewpoint (i.e., the position of the virtual camera) is set on the back side of the player object. Therefore, in cut #01, the state of the virtual space seen from the first viewpoint is drawn. FIG. 6 showing cut #02 shows that a second viewpoint is set in a predetermined indoor location that is different from the scene of cut #01. Therefore, in cut #02, the scene switches from outdoors to indoors, and the state of the indoors seen from the second viewpoint is drawn. Also, FIG. 7 showing cut #03 shows that the third viewpoint is set in the same outdoor location as cut #01, but at a different position from the first viewpoint. Therefore, in cut #03, the scene switches from indoors to outdoors, and the same player object and pillar object as in cut #01 are depicted as seen from the third viewpoint. In other words, the cut scene depicts the virtual space as seen from the first viewpoint for five seconds, then the scene switches to indoors, and the indoor view as seen from the second viewpoint is depicted for ten seconds. After that, the scene switches back to outdoors, and the outdoor view as seen from the third viewpoint is depicted for ten seconds. This is the cut configuration.
[0037] As described above, since cut scenes are rendered in real time, the GPU load may vary depending on the conditions of the rendering target (number of objects, number of polygons, presence or absence of various effects). In addition, under certain conditions, such as when switching between cuts where the rendering contents may change significantly, the GPU load may suddenly increase to the limit of the GPU's performance. As a result, in such cases, the frame rate may temporarily decrease (GPU processing slowdown may occur). Also, for example, if the GPU load increases to the limit of the GPU's performance in a certain frame, the processing slowdown may continue for several frames thereafter.
[0038] Here, in relation to the above-mentioned GPU processing load, a technology called "dynamic resolution" is known. In short, dynamic resolution is a technology that reduces the load on the GPU by lowering the rendering resolution when the GPU processing load becomes high enough to cause processing slowdown. The game device 2 also has this function implemented. More specifically, in dynamic resolution, a process is performed in which it is determined whether or not to lower the resolution based on the GPU load of the previous frame. For example, if the measurement result of the GPU load of the previous frame, which was processed with a resolution of 720p, exceeds a predetermined threshold, the resolution of the current frame is lowered to 540p and rendered, etc. In other words, since the measurement of the GPU load is delayed by at least one frame, there is a delay between the occurrence of processing slowdown and the reduction in the resolution. Therefore, when the GPU processing load suddenly rises close to the limit, processing slowdown occurs instantaneously (because processing is performed without the resolution being reduced yet). In other words, because dynamic resolution changes the resolution after the GPU load has been measured, it cannot prevent slowdowns from occurring in the processing of a frame where the GPU load has risen to the point where slowdowns occur (or in some cases, in the processing of several frames thereafter). Also, when changing the resolution with the processing load of one frame, there is a possibility that the resolution will increase and decrease rapidly, and in order to prevent this phenomenon, the resolution may be set to decrease only after a certain amount of high load has continued, in which case slowdowns will be more noticeable.
[0039] In view of the above, in this embodiment, the occurrence of the above-mentioned slowdown in processing is dealt with by performing the following processing. First, in the development stage, the GPU load of each frame in a cut scene is checked in advance. Next, the frame in which the GPU load increases suddenly is analyzed based on the transition of the GPU load. The GPU load in the frame is stored as an "alternative load". In addition, a predetermined frame (details will be described later) before the frame in which the GPU load increases suddenly is stored as a "resolution forced setting frame". Then, in the actual game processing (production version ROM), the dynamic resolution as described above is made to function in the processing of the frame number related to the resolution forced setting frame using the information "alternative load" indicating the GPU load checked in advance. This allows the dynamic resolution function to recognize the situation in which the GPU load is high at a stage before the frame in which the GPU load actually increases suddenly, and to perform processing to lower the resolution. As a result, the processing in the frame in which the GPU load increases suddenly is performed in a state in which the resolution is lowered, and it is possible to prevent the occurrence of slowdown in processing (a drop in frame rate) due to a sudden increase in the GPU load. In addition, the above-mentioned "resolution forced setting frame" and "alternative load" can be applied for various purposes, not just when the GPU load increases suddenly. Below, we will use the figures to provide an overview of how the above-mentioned resolution forced setting frame and alternative load are determined.
[0040] 8 and 9 are diagrams for explaining an outline of the process in this embodiment. In this embodiment, as shown in FIG. 8, first, a process of drawing a cut scene and a process of measuring a GPU load in each frame are performed on the game device 2 using cut scene data that is the basis for drawing the cut scene. At this time, the game device 2 is set not to use the dynamic resolution function and the drawing process is performed. That is, the cut scene is played back on the game device 2 without using the dynamic resolution function, and a process of checking the GPU load during the playback is performed. More specifically, for each frame of the cut scene, the GPU load and whether or not a cut switch has occurred are measured. Then, the measurement result is output as measurement result data.
[0041] Next, a process for analyzing the measurement result data is executed on the development terminal 1. In this analysis process, the following analysis is performed. (1) Analysis of the change in GPU load immediately after a scene change It is considered that the GPU load tends to fluctuate greatly immediately after a cut is switched. For example, when switching from an outdoor cut to an indoor cut, the contents of the "picture" drawn before and after the cut switch may also change significantly. That is, it is considered that the fluctuation of the processing load in real-time rendering also becomes large due to a large change in the objects to be drawn. In view of this, in this embodiment, first, the frame immediately after the cut switch is picked up as the resolution setting frame. Furthermore, the GPU load that is maximum during the period from the 5th frame to the 20th frame after the cut switch is picked up as the alternative load.
[0042] Note that the above-mentioned period from the 5th frame to the 20th frame is merely an example, and a different period may be used. For example, a period from the 2nd frame to the 20th frame after a cut change may be used.
[0043] In addition, this analysis does not use any particular threshold such as "more than ~%" for GPU load, but simply picks up the "maximum" GPU load during the period. Therefore, the GPU load picked up may not necessarily be high enough to cause processing slowdown.
[0044] (2) Analysis of whether there was a sudden increase in GPU load within the same cut Even if it is not immediately after a cut change, there may be cases where the GPU load increases suddenly within the same cut. In this case, there is a possibility that a processing drop of several frames may occur. In addition, in this case, since the processing drop occurs within the same cut, the "picture" does not necessarily change significantly as when a cut changes, and even a processing drop of about one or two frames may be noticeable. Therefore, even in such cases where the GPU load increases suddenly within the same cut, a resolution forced setting frame and an alternative load are set. Specifically, in this embodiment, frames within the same cut are checked according to the following rules. (2A) After the cut change, the period that overlaps with the analysis immediately after the cut change (up to the 20th frame in this example) is excluded from the analysis. (2B) If there is a frame in which the GPU load increases by 30% or more within a period of 40 frames following the frame being analyzed, the frame being analyzed is designated as a frame with forced resolution setting, and the GPU load in the frame where the detected load increase is selected as an alternative load. (2C) Even if the GPU load increases by 30% or more during the 10 frames from the previous frame picked as the forced resolution setting frame, the above forced resolution setting frame and alternative load picking will not be performed. This is because if the GPU load continues to increase continuously, the above condition (2B) will be met every frame.
[0045] Note that the above thresholds of "a period of 40 frames" and "an increase of 30% or more" are merely examples, and different values may be used as appropriate depending on the content of the cut scene or the content of the game.
[0046] In addition, the above analysis is performed within the same cut, so judgments are not made across different cuts. For example, in the analysis of (2B) above, if the cut ends in a period shorter than 40 frames, the analysis of that cut will cover up to that frame.
[0047] As a result of the above analysis process, the information on the resolution forced setting frames and alternative loads that are picked up is output as "GPU load forced setting data." This data is then ultimately included in the ROM of the final version.
[0048] Moreover, in this embodiment, the load measurement process and analysis process as described above are configured to be executed periodically. Hereinafter, these processes are referred to as "periodic measurement processes." For example, the development environment may be configured so that the periodic measurement process is executed automatically once a day (like a batch process). By executing the periodic measurement process in this manner, even if a developer updates the contents of a cut scene or a drawing process, appropriate drawing settings can be made according to the updated contents without having to redo the development work. This is expected to reduce the workload in development work.
[0049] Next, an overview of game processing using the above GPU load forced setting data will be described with reference to Fig. 9. First, it is assumed that the above dynamic resolution processing is used in game processing. As described above, the dynamic resolution processing determines the resolution for the current frame based on the GPU load of the previous frame. Therefore, the general flow of the processing is as follows: obtain information on the GPU load of the previous frame → determine the resolution → draw processing.
[0050] In this embodiment, in the processing of each frame, first, a GPU load designation process is performed using cut scene data and the GPU load forced setting data. In this process, it is determined whether or not the frame number to be processed this time is registered in the GPU load forced setting data. Then, based on the result, "load designation information" is output. If the frame number to be processed this time is not registered in the GPU load forced setting data, the content of the "load designation information" is set to the GPU load information of the previous frame. On the other hand, if the frame number to be processed this time is registered in the GPU load forced setting data, the alternative load set in the GPU load forced setting data is set. In other words, the GPU load measured in the development stage is set.
[0051] Next, dynamic resolution processing is executed using the load designation information as an argument, and information indicating the resolution determined as a result (hereinafter, resolution designation information) is output and passed to the drawing processing.
[0052] In the drawing process, various processes such as rendering are performed based on the resolution indicated in the resolution designation information, and as a result, a game image with the resolution indicated in the resolution designation information is generated and output.
[0053] In addition, when analyzing cut changes, the frame with the highest GPU load is simply picked up as described above. Therefore, if the GPU load picked up is not high enough to cause processing slowdowns, the resolution may not necessarily change.
[0054] In addition, the dynamic resolution function also has a function of not changing the resolution further for 60 frames (2 seconds) after the resolution is changed in order to prevent chattering (frequent resolution switching). More specifically, if the processing load is still high even after the resolution is lowered, it may be possible to further lower the resolution, so it is sufficient not to increase the resolution for 60 frames (2 seconds) after the resolution is changed. Even in this case, the lowered resolution may be forcibly returned by (forcibly) specifying the load designation information in the dynamic resolution processing. For example, after the resolution is lowered, if "GPU load that does not cause processing slowdown" is passed to the dynamic resolution processing as load designation information before 60 frames have elapsed, the resolution may be forcibly returned at the time of this frame. This allows the resolution to be quickly returned if the GPU load has decreased relatively early after a cut switch, for example.
[0055] [Details of the processing in this embodiment] Next, the processing in this embodiment will be described in more detail with reference to FIGS.
[0056] [About data usage] First, various data used in this embodiment will be described. Here, the data used in the development terminal 1 will be described first, and then the data used in the game device 2 will be described.
[0057] [Data stored on Development Device 1] 10 is a memory map showing an example of various data stored in the storage unit 12 of the development terminal 1. The storage unit 12 stores a development tool program 501, measurement result data 502, GPU load forced setting data 503, and the like.
[0058] The development tool program 501 is a program for executing the above-mentioned processes in the development terminal 1. For example, the development tool program 501 includes a program capable of realizing a function for instructing the game device 2 to execute a predetermined process such as a rendering process of a cut scene, and a function for acquiring information such as a GPU load from the game device 2.
[0059] The measurement result data 502 is a result of measuring the GPU load and the like when the game device 2 is caused to render a cut scene without using the dynamic resolution function as described above. FIG. 11 shows an example of the data configuration of the measurement result data 502. The measurement result data 502 includes a frame number 511, a GPU load 512, and a cut switch flag 513. The frame number 511 is the number of each frame constituting the cut scene. The GPU load 512 is information indicating the GPU load in processing each frame. In this example, it is indicated by a value in the range of 0% to 100%. The cut switch flag 513 is a flag indicating whether or not a cut switch has occurred in the frame. If it is True, it indicates that a cut switch has occurred in that frame. In other words, it indicates that it corresponds to the first frame (first frame) of each cut. If it is False, it indicates that a cut switch has not occurred.
[0060] Returning to FIG. 10, next, the GPU load forced setting data 503 is data output as a result of the above-mentioned analysis process. FIG. 12 shows an example of the data configuration of the GPU load forced setting data 503. The GPU load forced setting data 503 includes a forced setting frame number 514 and an alternative load value 515. The forced setting frame number 514 is a frame number picked up as a resolution forced setting frame in the above-mentioned analysis process, and specifies a frame number to which the alternative load value 515 is applied. The alternative load value 515 is the GPU load 512 picked up as an alternative load in the above-mentioned analysis process. The GPU load forced setting data 503 is also ultimately written into the ROM of the product version as a part of game data.
[0061] [Data stored in game device 2] Next, a description will be given of data stored in the game device 2. Here, the description will be divided into data stored in the game device 2 at the development stage and data stored in the storage unit 12 of the game device 1 using a product version ROM.
[0062] FIG. 13 is a memory map showing an example of various data stored in the storage unit 12 of the game device 1 in the development stage. The storage unit 12 stores a game program 601 (in the development stage), cut scene data 602, object data 603, and the like. The game program 601 includes a program for drawing a cut scene, and the like. It also includes a program for measuring the GPU load in each frame. The cut scene data 602 includes data for drawing the cut scene. For example, it includes information for identifying an object (content of the virtual space) to be displayed in each cut, data defining the movement patterns of various objects, camera parameters such as the position and angle of view of the virtual camera in each cut, and the like. In addition, the cut scene data 602 also includes information equivalent to the cut switching flag 513. The object data 603 is data of various objects drawn in a cut scene. The object data 603 includes modeling data and texture data of each object, and the like.
[0063] [Data (product version ROM) stored in game device 2] FIG. 14 is a memory map showing an example of various data stored in the storage unit 12 of the game device 1 using the product version ROM. In other words, these data are also stored in the product version ROM. The storage unit 12 stores a game program 601, cut scene data 602, object data 603, GPU load forced setting data 503, etc., read from the product version ROM. The game program 601, cut scene data 602, and object data 603 are data with the same purpose as the data in FIG. 15, except that they are contents confirmed as the product version. The GPU load forced setting data 503 is data output as a result of the above analysis process. In the development stage, the GPU load forced setting data 503 may be output multiple times, and among them, the data that is finally confirmed as being included in the product version ROM is stored in the product version ROM. Note that, even in the development stage data, the latest GPU load forced setting data 503 may be stored at that time in order to check cut scenes during normal operation other than the periodic measurement process described later, but an explanation will be omitted.
[0064] Next, the details of the processing in this embodiment will be described. In this embodiment, one or more processors read and execute a program stored in one or more memories, thereby realizing the flowchart shown below. In addition, the flowchart is merely an example of the processing process. Therefore, the processing order of each step may be changed as long as the same result is obtained. In addition, the values of the variables and the threshold values used in the judgment step are merely examples, and other values may be adopted as necessary.
[0065] [Regular measurement processing] Fig. 15 is a flow chart showing details of the periodic measurement process that is periodically executed in the development stage. In Fig. 17, first, in step S1, the processor 11 of the development terminal 1 executes a load measurement process. After that, in step S2, the processor 11 executes an analysis process. In this embodiment, these two processes are executed periodically and automatically. Each process will be described below.
[0066] Fig. 16 is a flowchart showing details of the load measurement process. In Fig. 16, first, in step S11, processor 11 transmits to processor 21 of game device 2 an instruction to start a process (drawing process) of playing a cut scene (all cut scenes, if there are multiple cut scenes) without using the dynamic resolution function. In response to this, game device 2 starts playing the cut scene without using the dynamic resolution function. Although not shown in the figure, game device 2 also transmits to development terminal 1 the current frame number, GPU load information, and information indicating whether or not the frame corresponds to a cut change for the cut scene being played.
[0067] Next, in step S12, processor 11 acquires the frame number, GPU load information, and information indicating a cut change from game device 2. Note that the information may be acquired for each frame, or information for multiple frames may be accumulated in game device 2 and acquired collectively. In the following step S13, processor 11 registers the acquired information in measurement result data 502.
[0068] Next, in step S14, processor 11 determines whether or not the playback process of the cut scene in game device 2 has ended. If the playback process has not ended (NO in step S14), the process returns to step S12 and the process is repeated. On the other hand, if the playback process has ended (YES in step S14), processor 11 confirms and saves the contents of measurement result data 502 in step S15. This ends the load measurement process.
[0069] Next, the analysis process in step S2 will be described in detail. Fig. 17 is a flowchart showing the analysis process in detail. In Fig. 17, first, in step S21, the processor 11 reads the measurement result data 502.
[0070] Next, in step S22, the processor 11 analyzes the GPU load immediately after a cut is switched. Specifically, the processor 11 identifies the period of each cut based on the cut switch flag 513. Then, the processor 11 picks up the frame immediately after the cut is switched as the resolution forcibly set frame. Furthermore, the processor 11 picks up the frame with the highest GPU load within the period from the 5th frame to the 20th frame after the cut is switched as the alternative load corresponding to the picked resolution forcibly set frame.
[0071] Next, in step S23, the processor 11 performs an analysis of whether or not there is a sudden increase in GPU load within the same cut, as described above. That is, the process of examining frames within the same cut is performed according to the rules described above. Specifically, the processor 11 determines whether or not there is a frame with a GPU load 30% or more higher within a period of 40 frames from each frame (analysis target frame used as a comparison standard) in each cut, excluding the period overlapping with the analysis in step S22, in order of frame numbers. If there is a frame with a GPU load 30% or more higher, it also determines whether or not the frame is within 10 frames from the frame previously picked up as the resolution forcibly set frame. If the frame is not within 10 frames, the analysis target frame used as the comparison standard is picked up as the resolution forcibly set frame. In addition, the GPU load of the frame with the GPU load 30% or more higher is picked up as an alternative load. For example, if the GPU load of the 230th frame is 30% or more higher than the GPU load of the 200th frame, the 200th frame is picked up as the resolution forcibly set frame. In addition, the GPU load at frame 230 is picked up as an alternative load. Note that, as mentioned above, this analysis is performed on a cut-by-cut basis, and judgments are not made across different cuts.
[0072] Next, in step S24, the processor 11 generates and stores the GPU load forced setting data 503 based on the results of the analyses in steps S22 and S23. This ends the analysis process.
[0073] This completes the explanation of the processing executed on the development terminal 1.
[0074] [Regarding the rendering process of cut scenes executed on game device 2] Next, the process executed by the game device 2 using the GPU load forced setting data 503 will be described. That is, the game process using the ROM of the game in which the finally confirmed GPU load forced setting data 503 is included as game data of the product version will be described. Note that the game process in scenes other than cut scenes will not be described. FIG. 18 is a flowchart showing an example of a cut scene drawing process based on a program and game data read from the game ROM of the product version. Note that the flowchart in FIG. 18 shows the drawing process for one frame. Therefore, for example, when 30 fps is assumed, the process is repeated 30 times per second.
[0075] In FIG. 18, first, in step S31, the processor 21 acquires, from the cut scene data 602, data for one frame to be drawn this time.
[0076] Next, in step S32, the processor 21 determines whether or not the frame number to be the current rendering target is registered in the GPU load forced setting data 503. If the result of the determination is that the frame number is registered (YES in step S32), then in step S33 the processor 21 sets the alternative load value 515 to a parameter called "load designation information." If the frame number is not registered (NO in step S32), then in step S34 the processor 21 sets the GPU load for the previous frame as the "load designation information."
[0077] Next, in step S35, the processor 21 uses the dynamic resolution function with the "load designation information" as an argument, so that the rendering resolution of the current frame is determined based on the "load designation information."
[0078] Next, in step S36, processor 21 draws a game image at the determined resolution, and then outputs the game image. This completes the drawing process for one frame of the game image.
[0079] This completes the detailed description of the cut scene drawing process in the game device 2.
[0080] In this manner, in this embodiment, the GPU load in a cut scene is measured in advance, and the above-mentioned resolution forcibly set frame and alternative load are determined based on the measurement result. In the actual product, in processing a frame designated as a resolution forcibly set frame, the above-mentioned alternative load is passed to the dynamic resolution function. This allows the dynamic resolution to function based on the alternative load. Therefore, for example, a rendering process related to a frame in which the GPU load is 100% at the resolution before the change can be executed with a lowered resolution. As a result, the processing load of the GPU is reduced, and the occurrence of a temporary drop in frame rate can be suppressed.
[0081] [Variations] In the above embodiment, the resolution is reduced as an example of a measure to deal with a drop in frame rate caused by an increase in the GPU processing load. Alternatively, the GPU processing load may be reduced by changing rendering settings other than the resolution. In other words, instead of using the dynamic resolution function based on the alternative load, the rendering settings may be temporarily changed to turn off the processing of "heavy" effects such as anti-aliasing.
[0082] In addition, in the above embodiment, the value measured in the load measurement process is used as the "alternative load" as an example. In other embodiments, the value used as the alternative load does not necessarily have to be an actual measurement value. For example, "100%" may always be used as the alternative load value, regardless of the actual measurement value. [Explanation of symbols]
[0083] 1 Development device 2. Gaming Devices 11 Processors 12 Storage section 21 Processors 22 Memory section
Claims
1. At least one processor, the processor comprising: Executing a game program including a dynamic drawing setting program for changing drawing settings in response to a load of drawing processing during the game; a predetermined cut scene in the game is played while disabling the dynamic drawing setting; Measure the load of a rendering process during playback of the cut scene; A game development support system which, based on the measured load trend, sets an alternative load to be used in the dynamic drawing settings in place of the load of the drawing process being executed at a timing within the cutscene that satisfies a specified condition when the cutscene is played with the dynamic drawing settings enabled, and records data on the alternative load.
2. The processor, 2. A game development support system as described in claim 1, wherein in a first case where the degree of load increase within a first period after a predetermined timing in the cut scene exceeds a predetermined standard, the alternative load is set for a first timing in the cut scene indicating the timing.
3. The cut scene is composed of at least one cut, 3. The game development support system according to claim 2, wherein the first period is a period from the first timing onward up to a predetermined length within the cut.
4. The processor, In a second case where the cut switching occurs, a maximum load within a second period starting after a predetermined period has elapsed after the switching is stored as the alternative load at a second timing when the cut switching occurs; 4. The game development support system according to claim 3, wherein the alternative load based on the first case is not stored during a period from the second timing to a third period.
5. The cut scene is composed of at least one cut, The processor, A game development support system as described in claim 1, wherein in a second case in which the cut switching occurs, the maximum load within a second period starting a predetermined period after the switching is stored as the alternative load at the second timing at the time of the cut switching.
6. The processor, 5. A game development support system according to claim 2, wherein in the first case, the load during the first period that has increased beyond the specified standard is set as the alternative load at the first timing.
7. 6. The game development support system according to claim 1, wherein said dynamic rendering settings include at least a dynamic resolution setting for lowering rendering resolution when a load of rendering processing during said game is high.
8. 6. A game development support system as described in claim 4 or 5, wherein the dynamic drawing settings at least include a dynamic resolution setting that lowers the drawing resolution when the load of the drawing process during the game is high, and that raises the drawing resolution when the alternative load is low or when the load of the drawing process is low after a predetermined period of time has elapsed since the drawing resolution was lowered.
9. The processor, A game development support system as described in any one of claims 1 to 5, which automatically executes the game program periodically at a pre-specified timing, plays back cut scenes and measures the load for each cut scene included in the game, and updates and stores the alternative load data.
10. A game development support method executed by a computer of a game development support system, comprising: The computer includes: Executing a game program including a dynamic drawing setting program for changing drawing settings in response to a load of drawing processing during the game; a predetermined cut scene in the game is played while disabling the dynamic drawing setting; Measure the load of the rendering process during playback of the cut scene, A game development support method which, based on the measured load trend, sets an alternative load to be used in the dynamic drawing settings in place of the load of the drawing process being executed at a timing within the cutscene that satisfies a specified condition when the cutscene is played with the dynamic drawing settings enabled, and records data of the alternative load.
11. The computer includes: A game development support method as described in claim 10, wherein in a first case where the degree of load increase within a first period after a predetermined timing in the cut scene exceeds a predetermined standard, the alternative load is set for a first timing in the cut scene indicating the timing.
12. The cut scene is composed of at least one cut, 12. The game development support method according to claim 11, wherein the first period is a period from the first timing onward up to a predetermined length within the cut.
13. The computer includes: In a second case where the cut switching occurs, a maximum load within a second period starting after a predetermined period has elapsed after the switching is stored as the alternative load at a second timing when the cut switching occurs; 13. The game development support method according to claim 12, wherein the alternative load based on the first case is not stored during a third period from the second timing.
14. The cut scene is composed of at least one cut, The computer includes: A game development support method as described in claim 10, wherein in a second case in which the cut switching occurs, a maximum load within a second period starting a predetermined period after the switching is stored as the alternative load at a second timing at the time of the cut switching.
15. The computer includes:
14. A game development support method according to claim 11, further comprising the step of: in the first case, setting the load during the first period that has increased beyond the predetermined standard as the alternative load at the first timing.
16. 15. The game development support method according to claim 10, wherein the dynamic rendering settings include at least a dynamic resolution setting for lowering rendering resolution when a load of rendering processing during the game is high.
17. 15. A game development support method as described in claim 13 or 14, wherein the dynamic drawing settings at least include dynamic resolution settings that lower the drawing resolution when the load of the drawing process during the game is high, and that raise the drawing resolution when the alternative load is low or when the load of the drawing process is low after a predetermined period of time has elapsed since the drawing resolution was lowered.
18. The computer includes: A game development support method according to any one of claims 10 to 14, wherein the game program is automatically executed periodically at a pre-specified timing, cut scenes included in the game are played and loads are measured, and the alternative load data is updated and stored.
19. A game development support program executed by a computer of a game development terminal connected to a game device, The computer includes: in said game device, disabling a dynamic drawing setting that changes a drawing setting according to a load of a drawing process during a game, and reproducing a predetermined cut scene during the game by executing a game program including the dynamic drawing setting, acquiring a measurement result of a load of a drawing process during reproduction of the cut scene in said game device; A game development support program which, based on the measurement results, sets an alternative load to be used in the dynamic drawing settings in place of the load of the drawing process being executed at a timing within the cut scene that satisfies a specified condition when the cut scene is played on the game device with the dynamic drawing settings enabled, and records data of the alternative load.
20. The computer includes:
20. A game development support program as described in claim 19, wherein in a first case where the degree of load increase within a first period after a predetermined timing in the cut scene exceeds a predetermined standard, the alternative load is set for a first timing in the cut scene indicating the timing.
21. The cut scene is composed of at least one cut, 21. The game development support program according to claim 20, wherein the first period is a period from the first timing onward up to a predetermined length within the cut.
22. The computer includes: In a second case where the cut switching occurs, a maximum load within a second period starting after a predetermined period has elapsed after the switching is stored as the alternative load at a second timing when the cut switching occurs; 22. The game development support program according to claim 21, wherein the alternative load based on the first case is not stored during a third period from the second timing.
23. The cut scene is composed of at least one cut, The computer includes: A game development support program as described in claim 19, wherein in a second case in which the cut switching occurs, the maximum load within a second period starting a predetermined period after the switching is stored as the alternative load at a second timing at the time of the cut switching.
24. The computer includes:
23. The game development support program according to claim 20, wherein in the first case, the load during the first period that has increased beyond the predetermined standard is set as the alternative load at the first timing.
25. 24. The game development support program according to claim 19, wherein the dynamic rendering settings include at least a dynamic resolution setting for lowering rendering resolution when a load of rendering processing during the game is high.
26. A game development support program as described in claim 22 or 23, wherein the dynamic drawing settings at least include a dynamic resolution setting that lowers the drawing resolution when the load of the drawing process during the game is high, and raises the drawing resolution when the alternative load is low or when the load of the drawing process is low after a predetermined period of time has elapsed since the drawing resolution was lowered.
27. The computer includes:
24. A game development support program as described in any one of claims 19 to 23, which automatically executes the game program periodically at a pre-specified timing, acquires the measurement results from the game device which plays each cut scene included in the game and measures the load, and updates and stores the alternative load data.
Citation Information
Patent Citations
Game information, information storage medium, and game device
JP2003093734A
Program and method for data reading, video game device, and computer readable recording medium
JP2004041593A
Game program and recording medium
JP2018061674A
Game development system
JP2022084336A
Image generation apparatus, image generation method, and program
US20210235139A1