Action synchronization
The system addresses latency issues in electronic devices by locally performing intermediate actions and synchronizing user interface actions across devices based on network delays, enhancing user experience.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-04-12
- Publication Date
- 2026-03-18
AI Technical Summary
Existing electronic devices experience jitter and delay in user interface interactions due to network latency and processing delays, especially when multiple users attempt to synchronize actions, leading to inconsistent and contradictory user experiences.
A system and method that includes a display screen, processor, and server to generate and synchronize user requests, performing intermediate actions locally while waiting for server instructions, and adjusting execution times based on network delays to ensure synchronized user interface actions across devices.
Provides a jitter- and delay-free graphical user interface, ensuring synchronized actions and superior user experience by locally controlling intermediate actions and adjusting execution times based on network delays.
Smart Images

Figure 0007833051000001 
Figure 0007833051000002 
Figure 0007833051000003
Abstract
Description
Technical Field
[0001] The disclosure of the present application (hereinafter referred to as the present disclosure) relates to an apparatus including a display screen and a processor. The present disclosure also relates to a system for synchronizing actions. The system includes a server communicably coupled to a plurality of devices. The present disclosure also relates to a method for synchronizing actions, which is implemented by a computer. Background
[0002] In recent years, the use of electronic devices such as smartphones, tablets, and notebook computers has increased dramatically for daily activities such as (but not limited to) calls, message exchange, Internet browsing, navigation, media consumption, etc. Recently, electronic devices are also widely used for playing games (such as single-user or multi-user games), rendering and editing images and videos by one or more users using a common interface, simulations, etc. Many of such electronic devices incorporate a touch sensor type display screen, and applications implemented on the electronic devices can be controlled through touch sensor operations on such a screen. An important point of an application implemented on an electronic device is that it is easy for a user to interact with the user interface of the application and control various operations.
[0003] In particular, for a superior user experience, applications are designed to seamlessly render a user interface free from jitter and delay (latency or time lag). However, when an application (such as a client-server application) is given a command, the application interacts with the server, and during this interaction, the user experiences jitter and delay on their electronic device due to network latency between the server and the electronic device, and the processing time required for the server and / or the electronic device itself to process the command. As a result, commands given by the user on the user interface do not begin executing immediately upon the start of the command, but rather begin executing at a later time, which is a function of the aforementioned delays caused by communication and processing. In fact, a user may provide the same command multiple times, leading to an increase in the number of commands, increased unnecessary communication between the application and the server, and consequently, increased latency, which degrades the user experience.
[0004] Furthermore, when two or more users control their respective user interfaces within the application, they may face different latency issues, leading to a degraded user experience when individual users attempt to synchronize their actions but perform them relatively differently. For example, suppose the first user performs a first action on an object at a specific time, and the second user performs a second action on the same object at a later time. However, due to the differing latency between users, the execution of the second action may become visible in the second user's interface before the first user has completed their first action. Thus, differing latency can lead to contradictory user actions and, in some cases, impossible situations. One available conventional technique is to collect commands from two or more users on a server and simultaneously provide instructions to the processors of their electronic devices. However, even then, latency occurs in the electronic devices, preventing the user interfaces of the electronic devices from being properly synchronized.
[0005] Therefore, there is a need to overcome the aforementioned shortcomings associated with conventional systems. Summary
[0006] This disclosure aims to provide a device comprising a display screen and a processor. This disclosure also aims to provide a system for synchronizing actions, which includes a server communicatively coupled to multiple devices. This disclosure also aims to provide a method for synchronizing actions, which is implemented by a computer. The purpose of this disclosure is to provide solutions that at least partially overcome the problems encountered in the prior art.
[0007] According to the first aspect, embodiments of the present disclosure provide an apparatus. This apparatus is Display screen and; Processor and; The processor is equipped with, • Generate a graphical user interface and display it on the aforementioned display screen; The graphical user interface receives a user request to perform the requested action; • Send the aforementioned user request to the server; While waiting for the server to create and provide instructions related to the user request, perform intermediate actions on the graphical user interface; · The server receives the instructions related to the user request; • The execution of the aforementioned intermediate action is completed; • Execute the received instructions related to the user request on the graphical user interface; It is configured in this way.
[0008] According to a second aspect, embodiments of the present disclosure provide a system including a server communicatively coupled to a plurality of devices according to the first aspect. The plurality of devices cooperate through their respective graphical user interfaces, and the server, · Receiving user requests from each of the aforementioned devices to perform each requested action on each of their respective graphical user interfaces; From the aforementioned received user requests, collect a specific set of user requests received within a specific time interval; • Process the aforementioned set of specific user requests and create multiple instructions, each associated with any of the user requests included in the set; The system is configured such that, when processing a particular set of user requests, the server determines the time period during which each request action is performed based on various network delays between the server and the individual devices, and each of the multiple instructions indicates to the individual devices the determined time period during which each request action is performed, and the server, - To transmit the plurality of instructions related to the user requests included in the set to the plurality of devices; It is configured in this way.
[0009] According to a third aspect, embodiments of the present disclosure provide a method that is implemented on a computer. This method is • To generate a graphical user interface and display it on the device's display screen; • Receiving user requests to perform requested actions through the graphical user interface; • Sending the aforementioned user request to the server; • Performing intermediate actions on the graphical user interface while waiting for the server to create and provide instructions related to the user request; • Receiving the instructions related to the user request from the server; • To terminate the execution of the aforementioned intermediate action; • Executing the received instructions related to the user request on the graphical user interface; Includes.
[0010] According to a fourth aspect, one embodiment of the present disclosure provides a computer program product having a non-volatile computer-readable storage medium storing computer-readable instructions executable by a computer device having a processor for performing the method according to the third aspect.
[0011] Embodiments of the present disclosure substantially eliminate, or at least partially address, the aforementioned problems in the prior art, enabling a graphical user interface to be rendered on a device so that the user does not experience jitter or delay in performing actions when interacting with the application's user interface to control various operations.
[0012] Further aspects, advantages, features, and objectives of what is disclosed herein will be made apparent by the accompanying drawings and the detailed description of exemplary embodiments, which shall be interpreted together with the accompanying claims.
[0013] It will also be understood that a feature of this disclosure is that it can be combined in various ways without departing from the scope defined by the attached claims. [Brief explanation of the drawing]
[0014] The above summary and the following detailed description of exemplary embodiments will be better understood in conjunction with the accompanying drawings. For illustrative purposes of this disclosure, exemplary configurations of this disclosure are shown in the drawings. However, this disclosure is not limited to the specific methods and apparatus disclosed herein. The scale of the drawings is not accurate. Similar elements are indicated by the same number whenever possible. Hereinafter, embodiments of the present disclosure will be described with reference to the following drawings as an example. [Figure 1] This is a schematic diagram of a device for rendering a graphical user interface according to an embodiment of the present disclosure. [Figure 2] This is a schematic diagram of the timeline for processing user requests according to an embodiment of the present disclosure. [Figure 3]Schematic diagram of steps depicting the movement of a user-controllable object on a graphical user interface according to an embodiment of the present disclosure. [Figure 4] 4A and 4B are flowcharts showing steps of a computer-implemented method for synchronizing actions according to an embodiment of the present disclosure. In the accompanying drawings, underlined numbers are used to represent the item at the location of the number or the item adjacent to the number. Non-underlined numbers are associated with the item specified by the line extending from the number. When a number is written without an underline and accompanied by an arrow, the number is used to identify the general item indicated by the arrow. Detailed Description of Embodiments
[0015] The following detailed description illustrates embodiments of the present disclosure and methods by which they may be implemented. Although several forms for implementing the present disclosure have been disclosed, those skilled in the art will recognize that other forms for implementing the present disclosure are also possible.
[0016] According to a first aspect, an embodiment of the present disclosure provides an apparatus. The apparatus includes a display screen; a processor; and the processor is configured to · generate a graphical user interface and display it on the display screen; · receive a user request to perform a requested action via the graphical user interface; · send the user request to a server; · perform an intermediate action on the graphical user interface while waiting for the server to create and provide an instruction related to the user request; · receive the instruction related to the user request from the server; · terminate the execution of the intermediate action; · execute the received instruction related to the user request on the graphical user interface. It is configured in this way.
[0017] According to a second aspect, embodiments of the present disclosure provide a system including a server communicatively coupled to a plurality of devices according to the first aspect. The plurality of devices cooperate through their respective graphical user interfaces, and the server, · Receiving user requests from each of the aforementioned devices to perform each requested action on each of their respective graphical user interfaces; From the aforementioned received user requests, collect a specific set of user requests received within a specific time interval; • Process the aforementioned set of specific user requests and create multiple instructions, each associated with any of the user requests included in the set; The system is configured such that, when processing a particular set of user requests, the server determines the time period during which each request action is performed based on various network delays between the server and the individual devices, and each of the multiple instructions indicates to the individual devices the determined time period during which each request action is performed, and the server, • Send the plurality of instructions, each associated with any of the user requests included in the set; It is configured in this way.
[0018] According to a third aspect, embodiments of the present disclosure provide a method that is implemented on a computer. This method is • To generate a graphical user interface and display it on the device's display screen; • Receiving user requests to perform requested actions through the graphical user interface; • Sending the aforementioned user request to the server; • Performing intermediate actions on the graphical user interface while waiting for the server to create and provide instructions related to the user request; • Receiving the instructions related to the user request from the server; • To terminate the execution of the aforementioned intermediate action; • Executing the received instructions related to the user request on the graphical user interface; Includes.
[0019] According to a fourth aspect, one embodiment of the present disclosure provides a computer program product having a non-volatile computer-readable storage medium storing computer-readable instructions executable by a computer device having a processor for performing the method according to the third aspect.
[0020] This disclosure provides the aforementioned apparatus, system, and method. Embodiments of this disclosure provide a jitter- and delay-free graphical user interface, providing a superior user experience. In this regard, the execution of intermediate actions on the graphical user interface is locally controlled while the server is processing user requests. Beneficially, the intermediate actions are provided on the graphical user interface immediately after the user request is received, thereby providing feedback to the user that the user request is in progress. This provides the user with superior usability. Also, since user requests received from multiple devices within a given time interval are processed by the server simultaneously, inconsistencies in the actions performed can be avoided. Each of the multiple instructions indicates to the individual device the determined time period during which the respective request action will be executed, so that the permitted request actions are executed in a synchronous manner across the multiple devices. Therefore, even if different network delays occur in each device, each user can experience synchronous actions.
[0021] Throughout this disclosure, the term “device” as used herein means an electronic device associated with (i.e., used by) a user that enables the user to perform a particular task. The user may be any entity associated with or operating the device, and may be a person (i.e., a human), a virtual program (such as an autonomous program or bot), etc. In particular, the device is a user device. The device is configured to provide a graphical user interface on its display screen and may, in non-limiting examples, be a mobile phone, a PDA (Personal Digital Assistant), a handheld device, a laptop computer, a personal computer, etc. Beneficially, the interaction between the user and the device enables effective operation and control.
[0022] As used herein, the term “graphical user interface” refers to the space in which the user interacts with the device. Typically, a graphical user interface displays one or more elements in a spatially distributed manner. A graphical user interface allows the user to interact with the elements displayed on the screen using a mouse, stylus, or finger. Beneficially, graphical user interfaces are designed to allow the user to interact with the device easily, efficiently, and in a user-friendly manner, providing the device with maximum usability.
[0023] As used herein, the term "display screen" refers to the screen of an apparatus. Typically, a display screen is configured to provide the user with the visual graphics of a graphical user interface.
[0024] As used herein, the term “processor” refers to a computing element capable of operating in response to and processing user-provided instructions and controlling the operation of a device. Examples of processors include, but are not limited to, microprocessors, microcontrollers, composite instruction set computing (CISC) microprocessors, reduced instruction set (RISC) microprocessors, very long instruction word (VLIW) microprocessors, or any other type of processing circuit. The term “processor” may also refer to one or more individual processors, processing units, and various elements related to processing units that may be shared by other processing units.
[0025] As used herein, the term “server” refers to a powerful, virtualized physical or virtual infrastructure that performs application processing and information processing storage, enabling users in remote locations to access stored information over a data communication network. A server includes appropriate logic, circuitry, interfaces, and / or code configured to store, process, and / or receive information from devices in response to requested actions. Furthermore, a server is configured to provide real-time instructions based on requested actions. A server may be a cloud server. A server may also be a single server or multiple servers operating in a parallel or distributed architecture. Servers are combined to work with disclosed devices or similar systems. Examples of servers include, but are not limited to, storage servers, web servers, application servers, or combinations thereof.
[0026] As used herein, the term “user request” refers to a command provided by the user. Such commands may be provided via any appropriate input, such as touch input (if the display screen is a touchscreen) or a mouse click. A user request contains information corresponding to a requested action to be performed on the graphical user interface. Furthermore, a command may be provided, for example, as a word, phrase, or sentence to bring about a change on the graphical user interface. For example, a user request may be provided by tapping a touchscreen to move to a target location.
[0027] In some embodiments, the date and / or time (timestamp) of a user request is recorded. In particular, the time at which the user request is received from the user is recorded in the device. In this regard, the server has information about the time at which the user made the user request. The timestamp of the user request allows the processor to determine the time to start an intermediate action, and in some embodiments, it can also determine the time at which, upon receiving instructions from the server, it can calculate the time period during which the requested action will be performed. For example, along with the user request, the server may receive a timestamp of the time (t0) when the user request was received by the device. After processing the user request, the server can provide a time period during which the user request should be performed, where this time period may begin at time (t0). Since the timestamp of time (t0) is available to the server, the server can instead provide an end time (t2) for when the time period ends. Thus, the instructions can indicate a time period by providing a time period or the end time of the time period. Beneficially, the timestamp also eliminates various delay problems in the device, as it allows the server to collect user requests received over a specific time interval.
[0028] As used herein, the term “intermediate action” refers to an action that occurs between the time a user request is received and the time when instructions for executing the requested action on the graphical user interface are received from the server or processed by the processor. Typically, intermediate actions are executed immediately after the user request is received. Furthermore, intermediate actions create the illusion that the action is being executed on the graphical user interface, even in the event of network and / or processing delays. As a result, the user can see the intermediate action being executed immediately after providing the user request, thus avoiding sending the user request unnecessarily multiple times. During the execution of an intermediate action, the server processes the user request for the requested action and generates instructions to be provided to the processor. The intermediate action ends when the processor processes or executes the instructions received from the server (in response to the requested action) on the graphical user interface. If the server determines that the requested action is permissible, the instructions received from the server trigger the execution of the requested action on the graphical user interface. Otherwise, if the server determines that the requested action cannot be permitted, the execution of the instructions received from the server may involve canceling the intermediate action and / or indicating to the user that the requested action is not possible. With regard to the former, for example, if the intermediate action is to slowly move a user-controllable object toward a target position, and the user-controllable object has already moved partway toward the target at the time the instructions from the server are received, the intermediate action may be canceled. In some embodiments, the time difference between receiving a user request and executing the intermediate action is less than a default time length. The default time length may be, for example, 0.5 seconds, 0.4 seconds, 0.3 seconds, 0.2 seconds, 0.1 seconds, or 0.01 seconds. This ensures that the intermediate action is performed before the user notices the delay.
[0029] Depending on the embodiment, the requested action includes repositioning at least one user-controllable object from a specific position to a target position on a graphical user interface, and the intermediate action is • To indicate that the relocation of at least one user-controllable object is in progress, a visual indicator should be displayed on the graphical user interface; • To display the movement of at least one user-controllable object from a specific position to a target position on a graphical user interface; It may include at least one of the following.
[0030] In this regard, the requested action includes instructions to reposition at least one user-controllable object on the graphical user interface from a specific location to a target location. This specific location is the location where the user-controllable object is positioned at the time the user request is received. In particular, the specific location is the starting point of the user-controllable object, and the target location is the ending point of the user-controllable object.
[0031] Herein, the term “user-controllable object” as used herein refers to a user-controllable symbol presented on a graphical user interface. A symbol may represent, for example, a character. For instance, a user-controllable object may be a visual (or graphical) representation of a character generated by a user-controlled application. In this regard, for example, in real-time games, navigation systems, simulators, etc., a user-controllable object indicates the real-time position and movement of a character on a graphical user interface. In some embodiments, a user-controllable object may have geographic coordinates associated with it. Furthermore, in multiplayer video games, etc., a user-controllable object may also enable a user to locate the positions of other users. In some embodiments, a user-controllable object may be a pointer, an avatar, or an animated character.
[0032] Here, the intermediate action includes providing a visual indicator on the graphical user interface to show the user that the repositioning of at least one user-controllable object is in progress. Depending on the embodiment, the visual indicator may be text, a symbol, or an image. For example, the visual indicator may be an arrow that falls from the top of the graphical user interface toward the target position. Depending on the embodiment, the intermediate action includes indicating the movement of at least one user-controllable object from a specific position toward a target position on the graphical user interface.
[0033] In some embodiments, the processor is configured to determine the speed at which at least one user-controllable object moves based on the distance between a specific location and a target location. In some embodiments, the processor is further configured to determine the speed based on at least one of the following: network delay between the device and the server, processing delay in the server, and processing delay in the device. In some embodiments, the processor is also configured to move at the determined speed towards the target location from the specific location when performing an intermediate action.
[0034] The processor is configured to determine the distance between a specific location and a target location. Based on the determined distance, the processor calculates a suitable speed for the movement of at least one user-controllable object. Furthermore, the processor determines the network delay between the device and the server and / or the processing delay between the server and the device. The network delay is caused by the latency of data propagating through the data communication network between the device and the server. In some embodiments, the network delay may represent the average delay. The processing delay is caused by the time required for the processors of the server and / or the device to process the user request and the received instruction, respectively.
[0035] In some embodiments, the received instruction indicates a time period until at least one user-controllable object reaches the target position. This time period begins from the start time (t0) when the user request is received by the processor. The processor also, The speed is adjusted based on the time it takes for at least one user-controllable object to reach the target position, and the distance between the target position on the graphical user interface and the current position of at least one user-controllable object; When executing a received instruction, move at least one user-controllable object toward the target position at the adjusted speed; It is configured in this way.
[0036] In this regard, the time period is the time required for the user-controllable object to reach a target position from a specific position. The processor is configured to increase or decrease the velocity of the user-controllable object based on the time period and the remaining distance between the target position and the current position.
[0037] For illustrative purposes, consider an example. At time t0, a user request is provided to move a user-controllable object on the graphical user interface from a first position (such as the specific position) to a second position (such as the target position). For example, a user request is provided to move from coordinates (first position 100, 200) to coordinates (second position 300, 800), where these numbers represent the number of pixels in the X and Y directions from the upper-left corner of the graphical user interface, respectively. The execution of the intermediate action may begin at time t1, indicating that the user-controllable object is to be moved toward the second location at a first velocity. At time t2, the server receives the user request and begins processing it. After the user request has been processed by the server, at time t3, instructions are delivered from the server to the device. These instructions may instruct the processor to complete the user request by time t4. It should be noted that the time period during which the requested action should be performed is from t0 to t4. The device finishes executing the intermediate action once the instructions are received or processed. The instructions are then executed by time t4. If the user-controllable object cannot reach the target position within the given time using the first velocity, the velocity can be increased. Alternatively, if there is a possibility that the user-controllable object will reach the target position sooner, the velocity of the user-controllable object can be slowed down.
[0038] In some embodiments, the intermediate action includes only presenting a visual indicator on a graphical user interface. The received instruction indicates a time period until at least one user-controllable object reaches a target position. This time period begins from the start time (t0), which is the time the user request is received by the processor. The processor also, Based on the distance between a specific position and a target position, and the time it takes for at least one user-controllable object to reach the target position, the speed at which at least one user-controllable object moves is determined; • When executing a received instruction, move at least one user-controllable object from a specific position towards a target position at a determined speed; It is configured in this way.
[0039] The visual indicator is preferably timed to be displayed for a period no shorter than the delay time required to transmit the requested action to the server. The processor is configured to determine the distance between a specific location and a target location. The processor then controls the velocity of the user-controllable object based on the determined distance and the time period indicated in the received instruction.
[0040] In some embodiments, the processor is configured to determine the time duration for which an intermediate action is performed based on at least one of the following: network delay between the device and the server, processing delay in the server, or processing delay in the device. The execution of the intermediate action terminates after the completion of the determined time duration. This “time duration” refers to the length of time for which the intermediate action is performed. The time duration for which the intermediate action is performed is shorter than the time duration for at least one user-controllable object to reach its target position. Beneficially, this time duration allows the processor to perform the intermediate action without the user noticing any jitter or delay in the graphical user interface.
[0041] Depending on the embodiment, the execution of an intermediate action may be performed. • Receiving instructions related to user requests; • Processing instructions related to user requests; Termination is performed by at least one of the following, provided that the aforementioned process is performed before the execution of the aforementioned instruction.
[0042] To prevent intermediate actions and the requested action from being executed simultaneously, it is beneficial that the termination of intermediate actions be performed before the received instructions are executed.
[0043] This disclosure also relates to the system described above. The various embodiments and modifications disclosed above are applicable mutatis mutandis to the system described above.
[0044] The aforementioned plurality of devices, and the graphical user interfaces, user requests, and requested actions relating to each of the plurality of devices, respectively correspond to the aforementioned devices, graphical user interfaces, user requests, and requested actions in the first aspect. The plurality of devices can cooperate using the same software application. Examples of such software applications include, but are not limited to, multiplayer games, multi-user simulators, multi-user design software, and multi-user text editing software.
[0045] As used herein, the term “time interval” refers to a period of time during which a set of user requests is collected from among the received user requests. After collection, the user requests in the set are processed to create each instruction. The server of this system is configured to process sets of user requests simultaneously. Furthermore, the server is configured to resolve inconsistencies between multiple user requests included in the set, so as to ensure there are no inconsistencies between the requested actions. The (multiple) requested actions associated with a set of user requests are executed at different times because, although these actions are instructed to be executed within the same time period, they are instructed to begin at different start times (i.e., the time each user request was received by the device to which it pertains). Beneficially, this execution allows for the synchronization of the graphical user interface, because a device with little network latency is not at an advantage compared to other devices with significant network latency.
[0046] For the sake of explanation, we will describe an example in which a first user and a second user are working together using the same software simultaneously (using a first device and a second device, respectively). Assume that the first network delay between the first device and the server is greater than the second network delay between the second device and the server. The first user's device and the second user's device each have timers; that is, they each have internal clocks for receiving user requests and assigning timestamps.
[0047] Assume that user requests are received by the first device and the second device, respectively, at time t0=0 seconds and time t0'=0.1 seconds. Then, assume that these user requests are received by the server from the first device and the second device, respectively, at time t2=0.5 seconds and time t2'=0.2 seconds. The server collects and processes the user requests and creates instructions for the first device and the second device, respectively. Here, each instruction tells the corresponding device in the first device or the second device to perform the requested action within a specific time from time t0 or t0', respectively. For example, the instruction to the first device may be to perform the action requested at time t0+1.0 seconds, and the instruction to the second device may be to perform the action requested at time t0'+1.0 seconds. Thus, the second user of the second device has shorter network latency compared to the first user of the first device, but this does not provide an advantage. Furthermore, to maintain the smoothness of the user interface, intermediate actions are performed while waiting for instructions from the server.
[0048] In some embodiments, the server is configured to determine a specific time interval at which the server waits to collect a particular set of user requests, based on different network delays between the server and individual devices. In this regard, the server is also configured to determine the network delays between the server and individual devices. Furthermore, the time period for performing intermediate actions may also vary based on the network delays.
[0049] In some embodiments, the server is configured to adjust specific time intervals based on fluctuations in network latency. Therefore, if network latency is low, the specific time interval can be shortened. As a result, user requests are collected and processed without any delay that the user perceives.
[0050] This disclosure also relates to a computer-implemented method, as described above. The various embodiments and variations disclosed above are applicable mutatis mutandis to such computer-implemented method.
[0051] Depending on the embodiment, the requested action includes repositioning at least one user-controllable object from a specific position to a target position on a graphical user interface, and the intermediate action is • To indicate that the relocation of at least one user-controllable object is in progress, a visual indicator should be displayed on the graphical user interface; • To display the movement of at least one user-controllable object from a specific position to a target position on a graphical user interface; It includes at least one of the following.
[0052] In some embodiments, the method includes determining the speed at which at least one user-controllable object moves based on the distance between a specific location and a target location. In some embodiments, the method further includes determining the speed based on at least one of the following: network delay between the device and the server, processing delay in the server, and processing delay in the device.
[0053] Here, performing the intermediate action involves moving at least one user-controllable object from a specific position toward a target position at the determined speed.
[0054] In this regard, depending on the embodiment, the received instruction indicates a time period until at least one user-controllable object reaches a target position. This time period begins at a start time (t0), which is the time the user request was received. The method also includes adjusting the speed based on the time until at least one user-controllable object reaches the target position and the distance between the target position on the graphical user interface and the current position of at least one user-controllable object.
[0055] Furthermore, executing the received instructions includes moving at least one user-controllable object toward a target position at the adjusted speed.
[0056] In some embodiments, the intermediate action includes only presenting a visual indicator on a graphical user interface. The received instruction indicates a time period until at least one user-controllable object reaches a target position. This time period begins at a start time (t0), which is the time the user request was received. The method also includes determining the speed at which to move the at least one user-controllable object based on the distance between a specific position and a target position and the time it takes for the at least one user-controllable object to reach the target position.
[0057] Furthermore, executing the received instructions includes moving at least one user-controllable object from a specific position toward a target position at the determined speed.
[0058] Depending on the embodiment, the method includes determining a time period during which an intermediate action is performed based on at least one of the following: network delay between the device and the server, processing delay in the server, and processing delay in the device. The execution of the intermediate action terminates after the completion of the determined time period.
[0059] Depending on the embodiment, the execution of the intermediate action may be: • Receiving instructions related to user requests; • Processing instructions related to user requests; Termination is performed by at least one of the following, provided that the aforementioned process is performed before the execution of the aforementioned instruction.
[0060] Depending on the embodiment, the method further includes assigning a timestamp to the user request.
[0061] Depending on the embodiment, the method further includes the server receiving user requests from a plurality of devices, wherein the user requests are requests to perform the respective request actions in their respective graphical user interfaces, and the plurality of devices cooperate through their respective graphical user interfaces, and the method further includes The server collects a set of specific user requests received within a specific time interval from among the received user requests; The server processes the specific set of user requests and creates multiple instructions, each associated with one of the user requests included in the set; The method includes, however, processing the particular set of user requests includes determining the time period during which each of the request actions will be performed based on various network delays between the server and the individual devices, each of the multiple instructions indicating to the individual devices the determined time period during which each of the request actions will be performed, and the method This includes transmitting the plurality of instructions related to the user requests included in the set from the server to the plurality of devices.
[0062] This disclosure also relates to the computer program product described above. The various embodiments and modifications disclosed above will be applied mutatis mutandis to the computer program product.
[0063] Depending on the embodiment, the computer program product is implemented as an algorithm incorporated into software stored on a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium includes, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. Examples of implementations of the computer-readable storage medium include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drives (HDDs), flash memory, secure digital (SD) cards, solid-state drives (SSDs), computer-readable storage media, and / or CPU cache memory.
[0064] [Detailed explanation of the drawing]
[0065] Referring to Figure 1, an apparatus 100 for rendering a graphical user interface 102 according to an embodiment of the present disclosure is illustrated. As shown, the graphical user interface 102 is rendered on a display screen 104 of the apparatus 100. The graphical user interface 102 displays an object 106 and at least one user-controllable object 108. The user can control the movement of the user-controllable object 108 on the graphical user interface 102 of the apparatus 100. For example, a user can provide a request on the graphical user interface to move the user-controllable object 108 by tapping on a target position 110 on the graphical user interface 102. In some embodiments, this user request is transmitted to a server through the processor 112 of the apparatus 100. The server verifies the user request and sends a movement instruction back to the apparatus 100. This instruction is executed by the processor 112 of the apparatus 100, and the user-controllable object 108 is moved from a specific position 114 to the tapped position (in this case, the target position 110).
[0066] Referring to Figure 2, a timeline 200 relating to the processing of a user request 202 according to an embodiment of the present disclosure is illustrated. As shown, a user controlling the user interface provides a user request 202 to perform a request action at time t0. The user request 202 is transmitted to the server 204. The user request 202 is received by the server 204 at time t2. The user request 202 given at time t0 triggers an intermediate action 206. The intermediate action 206 is initiated at time t1, immediately after time t0 and before time t2.
[0067] At time t3, instruction 208 arrives from the server. Intermediate action 206 can continue to execute until the received instruction is received or processed by the device's processor. At time t4, instruction 208 is executed to perform request action 210.
[0068] Referring to Figure 3, a schematic diagram of step 300 describing the movement of a user-controllable object 302 in a graphical user interface 304 according to an embodiment of the present disclosure is shown. As shown, moments in time are depicted as t0, t1, t2, t3, and t4. At time t0, a user request is received to move the user-controllable object 302 to a target position 306. At time t2, the user request is received by the server 308. At time t1, an intermediate action is performed using the device's processor. The intermediate action is a moving visual indicator 310, which is rendered on the graphical user interface 304 of the device. As shown, the visual indicator 310 is an arrow descending from the top of the graphical user interface 304 toward the target position 306. In some embodiments, the visual indicator 310 is configured to touch the ground at time t3, i.e., simultaneously with the processor receiving instructions based on the action requested by the server 308. Between times t3 and t4, the user-controllable object 302 moves to the target position 306 at a velocity v1 (indicated by the dashed line).
[0069] Referring to Figures 4A and 4B, a flowchart 400 is shown illustrating the steps of a computer-implemented method according to an embodiment of the present disclosure. In step 402, a graphical user interface is generated and displayed on the device's display screen. In step 404, a user request for performing a requested action is received on the graphical user interface. In step 406, the user request is sent to the server. In step 408, an intermediate action is performed on the graphical user interface while waiting for the server to create and provide instructions related to the user request. In step 410, instructions related to the user request are received from the server. In step 412, the execution of the intermediate action is completed. In step 414, the instructions related to the received user request are executed on the graphical user interface.
[0070] Steps 402, 404, 406, 408, 410, 412, and 414 are merely illustrative, and other options may be provided. That is, one or more steps may be added, one or more steps may be omitted, or one or more steps may be performed in a different order without departing from the scope of the appended claims.
[0071] It is possible to modify the embodiments of this disclosure described above without departing from the scope defined by the attached claims. Expressions such as “includes,” “equip,” “incorporates,” “possesses,” and “is” used to describe and claim this disclosure are intended to be interpreted non-exclusively, that is, to allow for the existence of items, parts, or components not expressly described. The absence of explicit indication that an element is plural does not preclude the existence of multiple such elements.
Claims
1. It is a device, Display screen and, Processor and The processor is equipped with, To generate a graphical user interface and display it on the aforementioned display screen, Receiving a user request in the graphical user interface to perform a requested action, wherein the requested action is to move at least one user-controllable object from a specific position to a target position on the graphical user interface, and Sending the user request to a server configured to generate and provide commands related to the user request, Performing intermediate actions on the aforementioned graphical user interface, The processor is configured to perform the intermediate action, which refers to the movement of the user-controllable object toward the target position at a first speed while waiting for the server to generate and provide the instruction related to the user request, and the processor is configured to determine the time period for which the intermediate action is performed based on at least one of the network delay between the device and the server, the processing delay in the server, and the processing delay in the device. The aforementioned processor further, Receiving from the server an instruction related to the user request, which includes a time period for completing an operation to move the user-controllable object; Before executing the received command, the execution of the intermediate action shall be terminated, To complete the movement of the user-controllable object to the target position within the indicated time period, the command related to the received user request is executed on the graphical user interface by accelerating or decelerating the first speed to a second speed, The device is configured to perform the following, and the decision to accelerate or decelerate from the first speed to the second speed is based on the distance between the user-controllable object and the target position, and the network delay between the device and the server.
2. The requested action includes, on the graphical user interface, repositioning at least one user-controllable object from the specific location to the target location. The aforementioned intermediate action is, To indicate that the rearrangement of at least one user-controllable object is in progress, a visual indicator is displayed on the graphical user interface, The graphical user interface displays the movement of at least one user-controllable object from a specific position to a target position, Including at least one of the following: The apparatus according to claim 1.
3. The apparatus according to claim 2, wherein the processor is further configured to determine the second speed for moving the at least one user-controllable object using the processing delay in the server and the processing delay in the apparatus.
4. The apparatus according to claim 3, wherein the time period begins at a start time which is the time when the user request is received by the processor.
5. The apparatus according to claim 2, wherein the intermediate action comprises only displaying the visual indicator on the graphical user interface.
6. The execution of the aforementioned intermediate action is Reception of the command related to the user request and the expiration of the time period of the network delay, or Processing of the instruction related to the user request, The apparatus according to claim 1, wherein the process is terminated by at least one of the above, provided that the process is performed before the execution of the instruction.
7. The apparatus according to claim 1, wherein the user request is accompanied by a timestamp.
8. A system comprising a server that can communicate with multiple devices, wherein a device included in the multiple devices comprises a display screen and a processor, and the processor is To generate a graphical user interface and display it on the aforementioned display screen, Receiving a user request in the graphical user interface to perform a requested action, wherein the requested action is to move at least one user-controllable object from a specific position to a target position on the graphical user interface, and Sending the user request to a server configured to generate and provide commands related to the user request, Performing intermediate actions on the aforementioned graphical user interface, The processor is configured to perform the intermediate action, which refers to the movement of the user-controllable object toward the target position at a first speed while waiting for the server to generate and provide the instruction related to the user request, and the processor is configured to determine the time period for which the intermediate action is performed based on at least one of the network delay between the device and the server, the processing delay in the server, and the processing delay in the device. The aforementioned processor further, Receiving from the server an instruction related to the user request, which includes a time period for completing an operation to move the user-controllable object; Before executing the received command, the execution of the intermediate action shall be terminated, To complete the movement of the user-controllable object to the target position within the indicated time period, the command related to the received user request is executed on the graphical user interface by accelerating or decelerating the first speed to a second speed, The multiple devices are configured to perform the following, and the decision to accelerate or decelerate from the first speed to the second speed is based on the distance between the user-controllable object and the target position, and the network delay between the device and the server, with the devices cooperating through their respective graphical user interfaces. The aforementioned server, The plurality of devices receive user requests to perform their respective requested actions on their respective graphical user interfaces. From the received user requests, collect a set of specific user requests that were received within a specific time interval. Processing the aforementioned set of specific user requests and creating multiple instructions associated with each of the user requests included in the set, The system is configured such that, when processing a particular set of user requests, the server determines the time period during which each request action is performed based on various network delays between the server and the individual devices, and each of the multiple instructions indicates to the individual devices the determined time period during which each request action is performed, and the server, The plurality of instructions related to the user request included in the set are transmitted to the plurality of devices. It is configured in such a way. system.
9. The system according to claim 8, wherein the server is configured to adjust the specific time interval based on fluctuations in network latency.
10. A method implemented by a computer, To generate a graphical user interface and display it on the device's display screen, Receiving a user request in the graphical user interface to perform a requested action, wherein the requested action is to move at least one user-controllable object from a specific position to a target position on the graphical user interface, and Sending the user request to a server configured to generate and provide commands related to the user request, Performing intermediate actions on the aforementioned graphical user interface, The intermediate action includes, and the intermediate action refers to the movement of the user-controllable object toward the target position at a first velocity while waiting for the server to generate and provide the instruction relating to the user request. The aforementioned method further, The time period during which the intermediate action is performed is determined based on at least one of the following: network delay between the device and the server, processing delay in the server, and processing delay in the device. Receiving from the server an instruction related to the user request, which includes a time period for completing an operation to move the user-controllable object; Before executing the received command, the execution of the intermediate action shall be terminated, To complete the movement of the user-controllable object to the target position within the indicated time period, the command related to the received user request is executed on the graphical user interface by accelerating or decelerating the first speed to a second speed, A method comprising a decision to accelerate or decelerate the first speed to the second speed, based on the distance between the user-controllable object and the target position, and the network delay between the device and the server.
11. The requested action includes repositioning at least one user-controllable object from the specific location to the target location on the graphical user interface, and the intermediate action is To indicate that the rearrangement of at least one user-controllable object is in progress, a visual indicator is displayed on the graphical user interface, The graphical user interface displays the movement of at least one user-controllable object from a specific position to a target position, The method according to claim 10, comprising at least one of the following.
12. The method according to claim 11, comprising determining the second speed for moving the at least one user-controllable object using the processing delay in the server and the processing delay in the device.
13. The method according to claim 12, wherein the time period begins at the start time, which is the time when the user request was received.
14. The method according to claim 11, wherein the intermediate action comprises only displaying the visual indicator on the graphical user interface.
15. The execution of the aforementioned intermediate action is Reception of the command related to the user request and the expiration of the time period of the network delay, or Processing of the instruction related to the user request, The method according to claim 10, wherein the process is terminated by at least one of the above, wherein the process is performed before the execution of the instruction.
16. The method according to claim 10, further comprising adding a timestamp to the user request.
17. A method according to claim 10, comprising the server receiving user requests from a plurality of devices, wherein each user request is a request to perform a request action in its respective graphical user interface, and the plurality of devices cooperate through their respective graphical user interfaces. The aforementioned method further, The server collects a set of specific user requests from among the received user requests that were received within a specific time interval. The server processes the specific set of user requests and creates multiple instructions, each associated with one of the user requests included in the set. The method includes, however, processing the particular set of user requests includes determining the time period during which each of the request actions will be performed based on various network delays between the server and the individual devices, each of the multiple instructions indicating to the individual devices the determined time period during which each of the request actions will be performed, and the method A method comprising transmitting the plurality of instructions relating to user requests included in the set from the server to the plurality of devices.
18. A computer program comprising program instructions configured, when executed by the processor of a computer device, to cause the computer device to perform the method according to any one of claims 10 to 17.
Citation Information
Patent Citations
Traffic monitoring tool for bandwidth management
JP2002500469A
Dialog system, control method of dialog system, and apparatus
JP2018205616A