Game development support system, game development support method, and game development support program

By measuring and setting alternative loads during cutscenes, the system proactively adjusts rendering settings to prevent frame rate drops caused by sudden GPU load increases, enhancing gameplay stability.

JP7808073B2Active Publication Date: 2026-01-28NINTENDO CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023128254
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-08-07
Publication Date
2026-01-28
Estimated Expiration
2043-08-07

AI Technical Summary

Technical Problem

Existing dynamic resolution techniques in game processing fail to prevent temporary frame rate drops due to sudden increases in GPU load because they base resolution changes on the previous frame's load, leading to delayed reductions in resolution.

Method used

Measure GPU load during cutscenes in advance and set alternative loads for specific frames where sudden increases are anticipated, allowing dynamic resolution to adjust rendering settings proactively.

Benefits of technology

Prevents temporary frame rate drops by adjusting rendering settings before sudden GPU load increases occur, ensuring smoother gameplay experiences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007808073000001
    Figure 0007808073000001
  • Figure 0007808073000002
    Figure 0007808073000002
  • Figure 0007808073000003
    Figure 0007808073000003
Patent Text Reader

Abstract

To provide a game development support system, a game development support method and a game development support program that are able to inhibit reduction in a frame rate.SOLUTION: A game program is executed that includes a program of dynamic rendering setting for changing a rendering setting in accordance with a load of a rendering process during a game. A predetermined cut scene during the game is reproduced with the dynamic rendering setting being invalidated, and the load of the rendering process during reproduction of the cut scene is measured. When the cut scene is reproduced with the dynamic rendering setting being valid, at timing in the cut scene satisfying a predetermined condition, on the basis of transition of the measured load, a substitute load is set that is to be used for the dynamic rendering setting instead of the load of the rendering process being executed at the timing, and data of the substitute load is stored.SELECTED DRAWING: Figure 17
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to image processing in game processing. [Background technology]

[0002] BACKGROUND ART Conventionally, a technique called dynamic resolution or variable resolution is known, which is used in game processing and the like (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 in accordance with the GPU's processing load. However, this technology determines whether to lower the resolution based on the GPU's processing load in a frame prior to the current frame (e.g., the frame immediately preceding). Therefore, if the GPU's processing load 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 can be 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 in accordance with the load of rendering processing during the game, plays a predetermined cutscene during the game with the dynamic rendering setting disabled, measures the load of the rendering processing during the playback of the cutscene, and, for a timing within the cutscene that satisfies a predetermined condition, sets an alternative load to be used for the dynamic rendering setting in place of the load of the rendering processing being executed at that timing when the cutscene is played with the dynamic rendering setting enabled, and records data of the alternative load.

[0007] According to the above configuration example, the rendering processing load of a cutscene is measured in advance after the dynamic rendering settings are disabled, and an alternative load to be used with the dynamic rendering settings at a predetermined timing within the cutscene is determined and recorded based on the measurement results. As a result, in the game processing of the product version, when rendering a cutscene, 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 cutscene that indicates a predetermined timing in the cutscene in a first case where 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 suddenly increases in a cutscene. This allows the rendering settings to be changed at that timing. Therefore, it is possible to prevent a sudden increase in the load of the rendering process.

[0010] (Configuration 3) In a third aspect of the second aspect, the cut scene may be 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, the maximum load within a second period that begins a predetermined period after the switch as an alternative load at the second timing when the cut switch occurs, 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 settings from being lowered too much during a cut. In a frame where a cut switch occurs, the load may be higher than during the cut due to the processing associated with the switch. However, since the content (picture) of the cut changes significantly, the processing drop in that frame is less noticeable. Therefore, by using the maximum load during the second period starting shortly after the switch, rather than the time when the switch occurs, it is possible to prevent the drawing settings from being lowered too much. Furthermore, it is also possible to eliminate the need to set an alternative load as in the first case described above between the second timing and the third period.

[0014] (Configuration 5) In a fifth aspect of the present invention, the cut scene may be composed of at least one cut. In a second case where a cut change occurs, the processor may store a maximum load within a second period that begins 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 slowdown when a cut switch occurs is difficult to see, 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 that has increased beyond a predetermined standard during a first period 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) A seventh aspect of the present invention is any one of the first to fifth aspects, 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 configured such that, in any of configurations 1 to 7 above, 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 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 where frequent resolution switching 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 may be such that, in any of configurations 1 to 5 above, the processor automatically executes a game program periodically at a predetermined 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 content of the rendering process or cutscenes is changed during development, appropriate rendering settings can be made for the latest version without the developer having to redo the work. [Effects of the Invention]

[0024] According to the present disclosure, rendering settings that can suppress temporary drops in frame rate when playing cutscenes can be automatically set during the game development stage. [Brief explanation of the drawings]

[0025] [Figure 1] 1 is a schematic diagram showing an overall view of a development support system according to an embodiment of the present invention; [Figure 2] Block diagram showing the hardware configuration of development terminal 1 [Figure 3] A block diagram showing the hardware configuration of the game device 2. [Figure 4] Diagram to explain cutscenes [Figure 5] Diagram to explain cutscenes [Figure 6] Diagram to explain cutscenes [Figure 7] Diagram to explain cutscenes [Figure 8] FIG. 1 is a diagram for explaining an outline of the processing of this embodiment. [Figure 9] FIG. 1 is a diagram for explaining an outline 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 processing [Figure 16] Flowchart showing details of load measurement processing [Figure 17] Flowchart showing details of analysis processing [Figure 18] Flowchart showing details of cutscene drawing process DETAILED DESCRIPTION OF THE INVENTION

[0026] An embodiment of the present invention will now be described. FIG. 1 is a schematic diagram showing an overall picture of a game development support system according to this embodiment. Game development support system 100 of this embodiment includes a development terminal 1 and a game device 2. Development terminal 1 is, for example, a personal computer (PC). Development terminal 1 and game device 2 are configured to be able to communicate via wire. In this embodiment, predetermined commands can be sent from development terminal 1 to game device 2, causing the game device to execute various processes. The execution status and execution results can also be obtained from game device 2. In other words, an environment is created in which a game developer can run predetermined programs, etc. on game device 2 connected to development terminal 1 and proceed with development work while checking game processing results, etc. on the actual machine.

[0027] [Hardware configuration of development device] Next, the hardware configuration of the development terminal 1 will be described. Figure 2 is a block diagram showing the hardware configuration of the development terminal 1. The development terminal 1 includes a processor 11. Processor 11 is an information processing unit that executes various types of information processing executed on the development terminal 1. Processor 11 executes various types of information processing by executing information processing programs (for example, programs for various tools used in game development) stored in storage unit 12. Note that storage unit 12 may be an internal storage medium such as flash memory or DRAM (Dynamic Random Access Memory), or may be configured to use an external storage medium 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 wired or wireless communication with various input devices 16 such as a keyboard or mouse. The development terminal 1 is also connected to a display unit 17 (e.g., a PC 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 the hardware configuration of a 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 types of information processing executed in the game device 2. In this embodiment, the processor 21 is configured as a system-on-a-chip (SoC) that includes at least a central processing unit (CPU) function and a graphics processing unit (GPU) function. The CPU and the GPU may be separate components. 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 types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit 22. The storage unit 22 may be an internal storage medium such as a flash memory or a dynamic random access memory (DRAM), or may be configured to use an external storage medium 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 the game device 2 to communicate with a game device controller 26 via wired or wireless communication.

[0033] Furthermore, a display unit 27 (e.g., a television or the like) is connected to the game device 2 via an image and audio output unit 25. The processor 21 outputs, for example, images and sounds generated by executing the above-described information processing to the display unit 27 via the image and audio output unit 25.

[0034] [Development environment and processing assumed in this embodiment] Next, an overview of the processing assumed in this embodiment will be described. The processing in this embodiment is intended to be used primarily during the game development stage. Specifically, this embodiment performs processing to reduce the load of rendering processing in cutscenes (sometimes called event demo scenes, etc.) that are visually displayed during specific events in the game. Before describing the overview of this processing, cutscenes in this embodiment will first be described. Cutscenes in this embodiment are displayed by rendering the virtual game space using 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. During cutscenes, player operations (movement operations, attack operations, etc.) for controlling the movement of player objects are not accepted. During cutscenes, each object located in the virtual space (within the rendering area) moves based on a predetermined movement pattern. In other words, cutscenes in this embodiment refer to scenes that are rendered in the virtual space but do not involve interactive responses to player operations. Therefore, cutscenes can also be considered to be reproducible scenes. However, control may be possible to a degree that does not affect the load of rendering processing. For example, as long as the controls do not significantly increase or decrease the load on the rendering process, such as slight camera operations, small UI display, turning on / off subtitles, or outputting sound effects, they can be applied even to scenes that require interactive responses.

[0035] The above cutscene consists of at least one "cut." Within a cut, the viewpoint (virtual camera) is generally not switched. The viewpoint is switched by the instantaneous movement of the virtual camera. The virtual camera also moves continuously but not at high speed within a cut. The transition between cuts is typically the timing when the viewpoint is switched.

[0036] FIG. 4 shows a schematic diagram of an example of the structure of a certain cut scene. Assume that the cut scene is composed of three cuts, cut #01 to cut #03. Assume that cut #01 is 5 seconds long, and cuts #02 and #03 are each 10 seconds long. Also, FIGS. 5 to 7 show schematic diagrams of the virtual space in each cut, from a bird's-eye view. FIG. 5 shows a player object and three pillar objects in an outdoor virtual space. Cut #01 is an example in which the first viewpoint (i.e., the position of the virtual camera) is set behind the player object. Therefore, cut #01 depicts the virtual space as seen from the first viewpoint. FIG. 6, which shows cut #02, shows that the second viewpoint is set in a predetermined indoor location, different from the scene of cut #01. Therefore, in cut #02, the scene switches from outdoors to indoors, and the indoor scene as seen from the second viewpoint is depicted. Also, in FIG. 7 showing cut #03, it is shown 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, resulting in a cut configuration like this.

[0037] As mentioned above, cutscenes are rendered in real time, and so the GPU load can vary depending on the conditions of the rendering target (number of objects, number of polygons, presence or absence of various effects). Under certain circumstances, such as when switching scenes where the rendering content can change significantly, the GPU load can suddenly increase to the limits of its performance. As a result, in such cases, the frame rate can temporarily decrease (GPU processing slowdown occurs). Furthermore, for example, if the GPU load reaches the GPU's performance limits in a certain frame, the processing slowdown may continue for several frames thereafter.

[0038] Here, a technology called "dynamic resolution" is known in relation to the GPU processing load described above. Simply put, dynamic resolution is a technology that reduces the GPU load by lowering the rendering resolution when the GPU processing load becomes so high that processing slowdown occurs. The game device 2 also implements this function. More specifically, dynamic resolution involves determining whether 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 at a resolution of 720p, exceeds a predetermined threshold, the resolution of the current frame is lowered to 540p and rendered. 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 actual reduction in resolution. Therefore, when the GPU processing load suddenly increases to near its limit, processing slowdown occurs momentarily (because processing is performed without the resolution being lowered). In other words, because dynamic resolution changes the resolution after measuring the GPU load, it cannot prevent slowdowns from occurring when processing a frame where the GPU load has risen to the point where slowdowns occur (or, in some cases, when processing several frames after that). Also, when changing the resolution based on the processing load of a single frame, there is a possibility that the resolution will increase and decrease rapidly, and in order to prevent this from happening, 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 consideration of the above, this embodiment addresses the occurrence of the above-mentioned processing slowdown by performing the following process. First, during the development phase, the GPU load for each frame in a cutscene is checked in advance. Next, the frame where the GPU load suddenly increases is analyzed based on the transition of the GPU load. The GPU load for that frame is stored as an "alternative load." A predetermined frame (described in detail below) preceding the frame where the GPU load suddenly increases is stored as a "resolution forced setting frame." Then, in actual game processing (product version ROM), the dynamic resolution function described above is activated in processing the frame number corresponding to the resolution forced setting frame using the "alternative load" information indicating the previously checked GPU load. This allows the dynamic resolution function to recognize a situation where the GPU load is high even before the frame where the GPU load actually suddenly increases, and to perform processing to lower the resolution. As a result, processing for the frame where the GPU load suddenly increases is performed with reduced resolution, thereby preventing processing slowdown (a drop in frame rate) due to a sudden increase in GPU load. Furthermore, the above-mentioned "resolution forced setting frame" and "alternative load" can be applied for various purposes, not just when the GPU load suddenly increases. Below, we will use the diagram 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 overview of the processing in this embodiment. In this embodiment, as shown in FIG. 8, first, using cut scene data that is the basis for drawing the cut scene, the game device 2 performs a cut scene drawing process and a process for measuring the GPU load for each frame. At this time, the game device 2 is set not to use the dynamic resolution function and the drawing process is performed. In other words, the cut scene is played back on the game device 2 without using the dynamic resolution function, and a process for checking the GPU load during playback is performed. More specifically, for each frame of the cut scene, the GPU load and whether or not a cut change has occurred are measured. The measurement results are then 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 transition of GPU load immediately after a scene change It is believed that there is a tendency for the GPU load to fluctuate significantly immediately after a scene changes. For example, when switching from an outdoor scene to an indoor scene, the content of the "picture" drawn before and after the scene change may change significantly. In other words, it is believed that the fluctuations in the processing load in real-time rendering will also increase due to a significant change in the objects to be drawn. In consideration of this, in this embodiment, the frame immediately after the scene change is first selected 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 scene change is selected as the alternative load.

[0042] Note that the period from the 5th frame to the 20th frame is just 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] Furthermore, this analysis does not use any special thresholds such as "more than ~%" to determine the GPU load, but simply picks the "maximum" GPU load during the period. Therefore, the GPU load picked up may not necessarily be high enough to cause processing slowdowns.

[0044] (2) Analysis of sudden increases in GPU load within the same scene Even if it is not immediately after a scene change, there may be cases where the GPU load suddenly increases within the same scene. In this case, there is a possibility that processing will slow down by several frames. Furthermore, since processing slowdown occurs within the same scene, the "picture" does not necessarily change drastically as when a scene changes, and even a processing slowdown of about one or two frames may be noticeable. Therefore, even in such cases where the GPU load suddenly increases within the same scene, a resolution forced setting frame and an alternative load are set. Specifically, in this embodiment, frames within the same scene are examined 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 after the frame being analyzed, the frame being analyzed is set as a frame with forced resolution setting, and the GPU load in the frame where the detected load increased is selected as an alternative load. (2C) For the 10 frames since the previous frame selected as the forced resolution setting frame, the above forced resolution setting frame and alternative load will not be picked up even if the GPU load has increased by 30% or more. This is because if the GPU load continues to increase continuously, the condition (2B) above will be met every frame.

[0045] The threshold values ​​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 cutscene or the content of the game.

[0046] Furthermore, the above analysis is performed within the same cut, and 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 analysis process described above, 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 retail version of the ROM.

[0048] Furthermore, in this embodiment, the load measurement process and analysis process described above are configured to be executed periodically. Hereinafter, these processes will be 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 content of a cutscene or drawing process, appropriate drawing settings can be made in accordance with the updated content 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-mentioned GPU load forced setting data will be explained using Figure 9. First, it is assumed that the above-mentioned 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 processing is as follows: obtain information on the GPU load of the previous frame → determine the resolution → perform rendering processing.

[0050] In this embodiment, in the processing of each frame, first, a GPU load specification process is performed using cutscene data and the GPU load forced setting data. In this process, it is determined whether the frame number to be currently processed is registered in the GPU load forced setting data. Then, based on the result, "load specification information" is output. If the frame number to be currently processed is not registered in the GPU load forced setting data, the "load specification information" is set to the GPU load information of the previous frame. On the other hand, if the frame number to be currently processed 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 during the development stage is set.

[0051] Next, dynamic resolution processing is executed using the load specification information as an argument, and information indicating the resulting determined resolution (hereinafter, resolution specification 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 by the resolution specification information, and as a result, a game image with the resolution indicated by the resolution specification information is generated and output.

[0053] In addition, when analyzing cut transitions, the frame with the highest GPU load is simply picked up as described above. Therefore, if the picked load is not so high that it causes processing slowdowns, the resolution may not necessarily change.

[0054] Furthermore, the dynamic resolution function also has a function that prevents further resolution changes for 60 frames (2 seconds) after a resolution change to prevent chattering (frequent resolution changes). More specifically, if the processing load remains high even after the resolution is lowered, further reductions may be considered. Therefore, the resolution may be prevented from being increased for 60 frames (2 seconds) after the resolution change. Even in this case, the reduced resolution may be forcibly restored by (forcibly) specifying the load specification information during the dynamic resolution processing. For example, if a "GPU load that does not cause processing slowdowns" is passed to the dynamic resolution processing as load specification information before 60 frames have elapsed after the resolution is lowered, the resolution may be forcibly restored at this frame. This allows for a rapid restoration of the resolution if, for example, the GPU load decreases relatively quickly after a cut switch.

[0055] [Details of the processing of this embodiment] Next, the processing in this embodiment will be described in more detail with reference to FIGS.

[0056] [About data usage] First, various types of data used in this embodiment will be explained. Here, the data used in the development terminal 1 will be explained first, and then the data used in the game device 2 will be explained.

[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, etc.

[0058] The development tool program 501 is a program for executing the above-mentioned processes on the development terminal 1. For example, the development tool program 501 includes a program that can realize a function for instructing the game device 2 to execute predetermined processes such as rendering processes for cut scenes, and a function for acquiring information such as 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 as a value in the range of 0% to 100%. The cut switch flag 513 is a flag indicating whether a cut switch has occurred in that frame. If the flag is True, it indicates that a cut switch has occurred in that frame. In other words, it indicates that this is the first frame (first frame) of each cut. If the flag is False, it indicates that a cut switch has not occurred.

[0060] Returning to FIG. 10 , the GPU load forced setting data 503 is data output as a result of the above-described 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 the frame number selected as the resolution forced setting frame in the above-described analysis process, and specifies the frame number to which the alternative load value 515 is to be applied. The alternative load value 515 is the GPU load 512 selected as the alternative load in the above-described analysis process. Furthermore, the GPU load forced setting data 503 is ultimately written into the ROM of the retail version as part of the game data.

[0061] [Data stored in game device 2] Next, we will explain the data stored in the game device 2. Here, we will explain separately 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 the 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), cutscene data 602, object data 603, and the like. The game program 601 includes a program for rendering cutscenes, and also includes a program for measuring the GPU load for each frame. The cutscene data 602 includes data for rendering the cutscenes. For example, the data includes information identifying objects (contents of the virtual space) to be displayed in each cut, data defining the movement patterns of various objects, and camera parameters such as the position and angle of view of the virtual camera in each cut. The cutscene data 602 also includes information equivalent to the cut switch flag 513. The object data 603 is data on various objects to be rendered in cutscenes. The object data 603 includes modeling data and texture data for each object.

[0063] [Data (product version ROM) stored in game device 2] FIG. 14 is a memory map illustrating an example of various data stored in the storage unit 12 of the game device 1 using a 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, cutscene data 602, object data 603, GPU load forced setting data 503, and the like, which are loaded from the product version ROM. The game program 601, cutscene data 602, and object data 603 are essentially the same as the data shown in FIG. 15 , except that they are finalized for the product version. The GPU load forced setting data 503 is data output as a result of the analysis process. During the development phase, the GPU load forced setting data 503 may be output multiple times, and the finalized data to be included in the product version ROM is stored in the product version ROM. Even during the development phase, the latest GPU load forced setting data 503 may be stored at that time to confirm cutscenes during normal operation other than the periodic measurement process described below; however, this is not described here.

[0064] Next, the details of the processing in this embodiment will be described. In this embodiment, the flowchart shown below is realized by one or more processors reading and executing a program stored in one or more memories. Furthermore, this flowchart is merely an example of the processing process. Therefore, the processing order of each step may be changed as long as the same results are obtained. Furthermore, the values ​​of variables and thresholds used in the determination steps are merely examples, and other values ​​may be used as necessary.

[0065] [Regarding periodic measurement processing] Fig. 15 is a flowchart showing the details of the periodic measurement process that is executed periodically during the development stage. In Fig. 17, first, in step S1, the processor 11 of the development terminal 1 executes a load measurement process. Then, 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 the details of the load measurement process. In Fig. 16, first, in step S11, processor 11 sends an instruction to processor 21 of game device 2 to start processing (drawing processing) to play back a cutscene (all cutscenes, if there are multiple cutscenes) without using the dynamic resolution function. In response to this, game device 2 starts playing back cutscenes that do not use the dynamic resolution function. Furthermore, although not shown, game device 2 also performs processing to send to development terminal 1, for the cutscene being played back, the current frame number, GPU load information, and information indicating whether the frame corresponds to a cut change.

[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 this information may be acquired for each frame, or information for multiple frames may be accumulated in game device 2 and acquired collectively. Subsequently, in 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 processing of the cut scene in game device 2 has ended. As a result, if it has not yet ended (NO in step S14), the process returns to step S12 and the processing is repeated. On the other hand, if it has ended (YES in step S14), in step S15, processor 11 confirms and saves the contents of measurement result data 502. This ends the load measurement processing.

[0069] Next, the analysis process of step S2 will be described in detail. Fig. 17 is a flowchart showing the details of the analysis process. In Fig. 17, first, in step S21, the processor 11 reads the measurement result data 502.

[0070] Next, in step S22, processor 11 analyzes the GPU load immediately after a cut change. Specifically, processor 11 identifies the period of each cut based on the cut change flag 513. Then, processor 11 selects the frame immediately after the cut change as the resolution-forced setting frame. Furthermore, processor 11 selects the frame with the highest GPU load during the period from the fifth frame to the twentieth frame after the cut change as the alternative load corresponding to the resolution-forced setting frame.

[0071] Next, in step S23, processor 11 analyzes 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, within each cut, processor 11 determines, in order of frame number, whether or not there is a frame within a 40-frame period from each frame (the analysis target frame used as the comparison reference), excluding periods overlapping with the analysis in step S22, in which the GPU load is 30% or more higher. If there is a frame with a GPU load 30% or more higher, processor 11 also determines whether that frame is within 10 frames of the frame previously selected as the resolution-forced setting frame. If the frame is not within 10 frames, processor 11 selects the analysis target frame used as the comparison reference as the resolution-forced setting frame. Furthermore, processor 11 selects the GPU load of the frame with a GPU load 30% or more higher as an alternative load. For example, if the GPU load of frame 230 is 30% or more higher than the GPU load of frame 200, processor 11 selects frame 200 as the resolution-forced setting 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 across different cuts are not made.

[0072] Next, in step S24, the processor 11 generates and stores GPU load forced setting data 503 based on the results of the analysis in steps S22 and S23. This completes the analysis process.

[0073] This concludes the description of the processing executed on the development terminal 1.

[0074] [Regarding the rendering process of cutscenes executed on game device 2] Next, a process executed by the game device 2 using the GPU load forced setting data 503 will be described. That is, a game process using a game ROM in which the finalized GPU load forced setting data 503 is included as game data for the product version will be described. Note that a description of game processing in scenes other than cutscenes will be omitted. FIG. 18 is a flowchart showing an example of a cutscene rendering process based on a program and game data read from the product version game ROM. Note that the flowchart in FIG. 18 shows rendering processing for one frame. Therefore, assuming 30 fps, for example, this process will be repeated 30 times per second.

[0075] In FIG. 18, first, in step S31, processor 21 obtains data for one frame to be drawn this time from cut scene data 602.

[0076] Next, in step S32, processor 21 determines whether or not the frame number to be drawn this time is registered in GPU load forced setting data 503. If the result of this determination is that the frame number is registered (YES in step S32), then in step S33 processor 21 sets 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 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 specification information" as an argument, and as a result, the rendering resolution of the current frame is determined based on the "load specification 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 game image.

[0079] This concludes the detailed description of the cutscene rendering process in the game device 2.

[0080] In this embodiment, the GPU load in a cutscene is measured in advance, and the resolution-forced setting frame and the alternative load are determined based on the measurement results. In the actual product, when processing a frame designated as a resolution-forced setting frame, the alternative load is passed to the dynamic resolution function. This allows dynamic resolution to function based on the alternative load. Therefore, for example, rendering processing for a frame that would result in a 100% GPU load at the pre-change resolution can be executed at a lower resolution. This reduces the GPU processing load and ultimately prevents temporary frame rate drops.

[0081] [Variations] In the above embodiment, the resolution is reduced as an example of a measure to address a decrease in frame rate due to an increase in GPU processing load. Alternatively, the GPU processing load may be reduced by changing rendering settings other than 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 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. Game devices 11 processors 12 Storage section 21 processors 22 Memory section

Claims

1. at least one processor, the processor comprising: Execute a game program including a dynamic drawing setting program that changes drawing settings according to the load of drawing processing during the game; a predetermined cut scene in the game is played with the dynamic rendering setting disabled; Measure the load of the rendering process during playback of the cutscene; A game development support system that, for a timing within a cutscene that satisfies a specified condition based on the measured load transition, when the cutscene is played with the dynamic drawing setting enabled, sets an alternative load to be used in the dynamic drawing setting in place of the load of the drawing process being executed at that timing, and records the data of the alternative load.

2. The processor: A game development support system as described in claim 1, wherein, in a first case where, at a predetermined timing within the cut scene, the degree of load increase within a first period after that timing exceeds a predetermined standard, the alternative load is set for a first timing within the cut scene indicating that 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 has occurred, a maximum load within a second period that begins after a predetermined period has elapsed after the switching is stored as the alternative load at the second timing when the cut switching has occurred; 4. The game development support system according to claim 3, wherein the alternative load based on the first case is not stored during a third period from the second timing.

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 predetermined standard is set as the alternative load at the first timing.

7. 6. The game development support system according to claim 1, wherein the dynamic rendering settings include at least a dynamic resolution setting that lowers the rendering resolution when the load of rendering processing during the 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 raises the drawing resolution when the alternative load is low or when the load of the drawing process is low after a predetermined period 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 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, Execute a game program including a dynamic drawing setting program that changes drawing settings according to the load of drawing processing during the game; a predetermined cut scene in the game is played with the dynamic rendering setting disabled; Measure the load of the rendering process during playback of the cutscene, A game development support method in which, for a timing within a cutscene that satisfies a predetermined condition based on the measured load transition, when the cutscene is played with the dynamic drawing setting enabled, an alternative load to be used in the dynamic drawing setting is set in place of the load of the drawing process being executed at that timing, and data on the alternative load is recorded.

11. The computer, A game development support method as described in claim 10, wherein, in a first case where, at a predetermined timing within the cutscene, the degree of load increase within a first period after the timing exceeds a predetermined standard, the alternative load is set for a first timing within the cutscene that indicates 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, In a second case where the cut switching has occurred, a maximum load within a second period that begins after a predetermined period has elapsed after the switching is stored as the alternative load at the second timing when the cut switching has occurred; 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, A game development support method as described in claim 10, 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.

15. The computer, 14. A game development support method according to claim 11, 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.

16. 15. The game development support method according to claim 10, wherein the dynamic rendering settings include at least a dynamic resolution setting that lowers the rendering resolution when the load of rendering processing during the game is high.

17. 15. A game development support method according to claim 13 or 14, 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 has elapsed since the drawing resolution was lowered.

18. The computer, A game development support method according to any one of claims 10 to 14, wherein the game program is automatically executed periodically at a predetermined 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, a game device that disables a dynamic drawing setting that changes drawing settings in accordance with a load of a drawing process during a game, and then plays a predetermined cut scene during the game by executing a game program that includes the dynamic drawing setting, and acquires a measurement result of the load of the drawing process during the playback of the cut scene; A game development support program that, for a timing within a cutscene that satisfies a predetermined condition based on the measurement results, when the cutscene is played on the game device with the dynamic drawing setting enabled, sets an alternative load to be used in the dynamic drawing setting in place of the load of the drawing process being executed at that timing, and records data on the alternative load.

20. The computer, 20. A game development support program as described in claim 19, wherein, in a first case where, at a predetermined timing within the cut scene, the degree of load increase within a first period after the timing exceeds a predetermined standard, the alternative load is set for a first timing within 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, In a second case where the cut switching has occurred, a maximum load within a second period that begins after a predetermined period has elapsed after the switching is stored as the alternative load at the second timing when the cut switching has occurred; 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, 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 the second timing at the time of the cut switching.

24. The computer, 23. A 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 that lowers rendering resolution when the load of rendering processing during the game is high.

26. 24. 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 processing during the game is high, and raises the drawing resolution when the alternative load is low, or when the load of the drawing processing is low after a predetermined period has elapsed since the drawing resolution was lowered.

27. The computer, 24. A game development support program according to any one of claims 19 to 23, which automatically executes the game program periodically at a predetermined 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