system
The system automatically converts server-dependent functions in online games to offline mode by replacing database access with local storage and emulating API calls, allowing continued gameplay post-termination.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-10-16
- Publication Date
- 2026-04-28
AI Technical Summary
Online games become unplayable when their services terminate due to the reliance on server-dependent functions, making manual conversion to offline versions costly and inefficient.
A system that automatically identifies and converts server-dependent functions in online games to operate in an offline environment by replacing database access with local storage and emulating API calls, removing unnecessary online features, and verifying the operation of the rewritten code.
Enables users to continue playing the game offline after service termination, reducing costs and improving efficiency for developers by providing a stable play environment.
Smart Images

Figure 2026071002000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance as a response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] It is required to make an online game that becomes unplayable due to service termination playable as an offline version on a user's device in a sustainable manner. However, online games have many server-dependent functions, and the work of manually making them offline is very costly and inefficient. Therefore, there is a need for a technology that can automatically convert the server-dependent functions of online games for an offline environment and further perform appropriate operation tests to provide a stable play environment.
Means for Solving the Problems
[0005] This invention provides a system that receives data files for online games, automatically identifies server-dependent functions within those files, and rewrites the code to operate in an offline environment. This makes it possible to replace database access with local storage and emulate API calls. Furthermore, the system includes means for automatically removing unnecessary online functions and verifying the operation of the rewritten code. Finally, the offline-compatible game data can be packaged and distributed to users in a usable format. This automated process allows users to continue enjoying the game even after the service ends, and enables cost reduction and improved work efficiency for developers.
[0006] An "online game" is an electronic game that allows players to interact with other players and servers in real time via the internet.
[0007] A "data file" is a file containing the program code and resources necessary for an online game to function, and often refers specifically to files in APK format.
[0008] "Server-dependent functions" are features in online games that rely on communication with a server, and are essential elements for game progression, including database access and API calls.
[0009] An "offline environment" refers to a situation where there is no internet connection, and the device is required to operate independently without going through a server.
[0010] "Rewriting code" refers to the process of editing a program's source code to change or optimize its existing behavior or functionality.
[0011] "Local storage" refers to memory areas located within a device, allowing data to be stored and retrieved without relying on an external network.
[0012] An "emulator system" is software that allows programs and functions designed for different environments to run in a similar manner.
[0013] "Operational verification" is a testing process that verifies whether a program works as designed, and is performed to detect defects and determine the accuracy of its functions.
[0014] "Packaging" refers to the process of bundling a program and its related data together into a single file or format for distribution. [Brief explanation of the drawing]
[0015] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11]It is a sequence sequence a sequence diagram showing the processing flow of the data processing system in Embodiment 1. [Figure 12] It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when the emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when the emotion engine is combined.
Mode for Carrying Out the Invention
[0016] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0017] First, the terms used in the following description will be explained.
[0018] In the following embodiments, a numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of a plurality of arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of a plurality of types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0019] In the following embodiments, a numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0020] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0021] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0022] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0023] [First Embodiment]
[0024] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0025] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0026] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0027] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0028] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0029] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0030] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0031] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0032] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0033] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0034] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0035] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0036] This invention provides a system that makes online games that are scheduled to end service or have already ended playable again in an offline environment. This system uses a process that automatically takes server-dependent functions offline based on the online game's APK file.
[0037] First, the server receives an APK file from the game development company. This file contains the program code and related resources necessary to run the online game.
[0038] Next, the device analyzes the received APK file to identify server-dependent functions. This process identifies network-dependent elements, such as functions that require server access or external API calls.
[0039] Subsequently, the device converts its code to adapt server-dependent functions to an offline environment. Specifically, it replaces database access with local storage operations and performs emulation as needed. This allows data to be processed within the device, enabling the game to progress even without an internet connection.
[0040] Next, the device will remove features that are not needed online. Examples include billing systems and chat functions. This will streamline the device, making it suitable for offline use.
[0041] In the final stage, the terminal verifies the operation of the refined game code. This testing process confirms that the modified code runs smoothly and that the game elements function correctly. Once testing is complete, the server packages the offline version of the game and makes it available for users to download.
[0042] Users can continue to enjoy the game even after the online service ends by downloading and installing the final packaged offline version of the game on their device. For example, one RPG game is offered as an offline version by removing the multiplayer cooperative elements and redesigning it to allow players to progress through the story independently. In this way, users can continue the gaming experience they enjoyed in the past.
[0043] The following describes the processing flow.
[0044] Step 1:
[0045] The server receives the APK file provided by the game development company. Based on this file, the server extracts the code and resources of the online game and makes them available for analysis.
[0046] Step 2:
[0047] The device analyzes the APK file obtained from the server. Static analysis tools are used to identify server-dependent functions in the code and understand how they contribute to the game's operation.
[0048] Step 3:
[0049] The device replaces identified server-dependent functions with logic that can operate in an offline environment. For example, it might change database access to local storage operations to enable data management without using a network.
[0050] Step 4:
[0051] The device will have online-only features removed or disabled if necessary. Specifically, billing systems and communication features such as chat will be removed, clearing elements that are unnecessary for offline gameplay.
[0052] Step 5:
[0053] The terminal tests the entire code of the converted game. Using emulators and test terminals, it is confirmed that players can enjoy the game smoothly in an offline environment. Here, the focus is on checking that the game does not freeze and that the newly implemented logic works as intended.
[0054] Step 6:
[0055] The server packages the verified game code and prepares it for distribution on platforms accessible to users. Users can download, install, and play the offline version of the game from the designated website or app store.
[0056] (Example 1)
[0057] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0058] When an online game service ends, players lose the gaming experience they've built up over time. This problem, especially for games played for extended periods, leads to a loss of player satisfaction and emotional investment. To address this challenge, there is a need for ways to continue enjoying games even after the online service has ended.
[0059] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0060] In this invention, the server includes means for receiving electronic files of online games, means for identifying network-dependent functions, means for converting instructions to operate in an offline environment, means for removing unnecessary online functions, means for checking the converted instructions and verifying their operation, and means for packaging the checked instructions and making them available. This allows players to continue enjoying the game offline even after the online service ends.
[0061] An "information processing device" is a device that has the function of inputting, outputting, and manipulating data, and is used to receive and analyze electronic files from online games.
[0062] An "electronic file" is a collection of information stored in digital format, and it is data that includes program code and resources that make up an online game.
[0063] "Network-dependent functions" are functions that operate via online services and require server access or external API calls.
[0064] "Instruction conversion" is the process of modifying program code to allow specific network-dependent functions to operate in an offline environment.
[0065] "Unnecessary online features" are features that are not needed for offline gameplay but are designed with online operation in mind.
[0066] "Inspection" refers to the testing process to verify that converted instructions or deleted functions work as intended.
[0067] "Packaging" refers to the process of compiling inspection orders into a format that can be redistributed.
[0068] This invention relates to a system that allows online games to be played offline even after the online game has ended. This system is configured and implemented as follows.
[0069] First, the server receives the electronic files of the online game from the game developer. These electronic files contain the program code and resources that make up the game. The server then transfers the received electronic files to the terminal.
[0070] Next, the terminal analyzes the received electronic files to identify functions that operate over the network, i.e., network-dependent functions. This process uses analysis tools to extract program parts that require server access and external API calls.
[0071] Subsequently, the terminal translates the commands for identified network-dependent functions to work even in an offline environment. This translation includes techniques such as replacing data management device access with internal storage access. For example, database queries are changed to read and write operations on local storage. Additionally, server functions are mimicked within the terminal using emulation techniques as needed.
[0072] Next, the device removes features that are not needed in an offline environment. This process removes features such as chat functions and billing systems to lighten the load on the game.
[0073] Finally, the server packages the offline version of the game that has completed testing and makes it available for users to download.
[0074] Users download the new offline version of the game from the server and install it on their devices. This allows users to continue enjoying the game world even after the online service ends.
[0075] As a concrete example, in one role-playing game, the multiplayer elements are removed and the game is redesigned to allow players to progress through the story independently, and then offered as an offline version.
[0076] An example of a prompt message might be: "Please explain the procedure for converting an online game's digital files to an offline version. Please provide specific examples of how to identify network-dependent functions and how to convert the commands."
[0077] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0078] Step 1:
[0079] The server receives electronic files of online games from the developer. It receives the APK file provided by the game developer as input and performs necessary security checks. As a result, it obtains electronic files containing the data and resources necessary for the application to function.
[0080] Step 2:
[0081] The terminal analyzes the received electronic files. Based on the electronic files obtained as input, it performs a disassembly of the compiled code to identify network-dependent functions. Specifically, it uses a tool to extract server access and external API call sections, listing specific files and code parts. The output is a list of identified server-dependent parts.
[0082] Step 3:
[0083] The terminal translates commands to adapt identified network-dependent functions to an offline environment. The input is the code for the dependent function, based on a specific list. This code is analyzed, and the translation is performed using techniques such as changing database access to local storage operations. In specific operations, for example, server queries are replaced with queries to a local database. The output is the translated program code.
[0084] Step 4:
[0085] The device removes unnecessary features in an offline environment. Using the converted program code as input, it removes unnecessary online features such as chat functions and billing systems from the code. Specifically, it removes unnecessary UI and backend logic by editing the source code. The output is further lightweight program code with unnecessary features removed.
[0086] Step 5:
[0087] The terminal tests the converted instructions to verify their operation. Based on the program code after feature removal, it performs unit and integration tests. Specific actions include running the game to confirm that all functions are working correctly. The output is the verification result of a properly functioning offline version of the game.
[0088] Step 6:
[0089] The server packages tested game code. It receives a tested offline game code as input and generates a new APK file. Specific operations include secure package creation, including signing. The output is a downloadable offline game.
[0090] Step 7:
[0091] The user downloads and installs the offline version of the game from the server. They use a download link provided by the server as input to obtain the APK file. The specific operation involves the process of installing the game on the device following the normal application installation procedure. The output is the installed offline version of the game.
[0092] (Application Example 1)
[0093] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0094] There is a need for technology that can make discontinued online content usable again without significant network reliance. Reviving content that users previously enjoyed, without relying on an online environment, is essential for the continued efficient use of content resources.
[0095] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0096] In this invention, the server includes means for receiving digital files of online content, means for analyzing the digital files to identify communication-dependent functions, and means for rewriting the code for the communication-dependent functions to operate in a distributed environment. This makes it possible to make content usable again in an offline environment after the service has ended.
[0097] "Online content" refers to a collection of information and digital media that users can access via the internet.
[0098] A "digital file" is a collection of information handled on a computer system, stored in a binary data format.
[0099] "Communication-dependent functions" refer to functions and services that are executed through external servers or network connections.
[0100] A "distributed environment" is a method of building a system that does not depend on a central authority by distributing data and processes across multiple terminals within a network.
[0101] "Rewriting code" refers to the act of modifying and restructuring source code in order to change the behavior or functionality of a program.
[0102] The system for realizing this invention consists of software that runs on the user's terminal and a system operated on the content provider's server. To obtain offline content, the user can first receive digital files of the content from the server via an application on their terminal. This process utilizes an existing internet connection and employs common data transfer protocols.
[0103] The server receives the digital file and analyzes the data to identify communication-dependent functions. This analysis uses APKTool and other decompilation tools to uncover online functions. For example, external API calls and server access may be detected.
[0104] Subsequently, the server rewrites the identified communication-dependent functions into a form that can operate within the terminal. In this conversion process, database access is converted to local storage access, and SQLite is used. An emulator system is also introduced to reproduce software interface calls within the terminal. In particular, the operation of the modified software is verified using JUnit, and network-dependent behavior can be simulated using a selected simulator.
[0105] Once this conversion process is complete, the server packages the final offline version of the content, making it available for download to users. Users can then install the packaged offline content on their devices and use it without needing a network connection.
[0106] As a concrete example, using the APK file of an old RPG game, it is possible to create an environment where users can enjoy the story offline even after the online service has ended on the application. Through a prompt such as, "I want to make an old RPG game playable offline again. Detect and remove server-dependent functions from the APK file and explain the process of making it playable offline," the generative AI model can suggest further optimizations and implementations.
[0107] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0108] Step 1:
[0109] The user launches the application and uploads the digital files of the content they want to make offline to the server. The input data is digital files, and the user selects the target files from the file system on their device using the file selection function. The server receives the digital files as output.
[0110] Step 2:
[0111] The server analyzes the received digital files to identify communication-dependent functions. Specifically, a decompilation tool is used to extract the parts involving data communication with the server. During this process, API calls are detected and recorded, and data identifying communication-dependent functions is generated as output.
[0112] Step 3:
[0113] The server rewrites the code for identified communication-dependent functions to make them work offline. The input is the specific data for the communication-dependent function, which is converted into an emulationable format using code conversion software. The output is code converted to local database access.
[0114] Step 4:
[0115] The server verifies the rewritten code. Specifically, it runs JUnit tests to check if the code works as intended. The input is the rewritten code, and the output is the test results.
[0116] Step 5:
[0117] The server packages the approved code, making it available for download to the user. The packaging process converts the validated code (input data) into a format that can be installed on the user's device. The output is a downloadable package file.
[0118] Step 6:
[0119] The user installs the packaged content on their device and starts operating in an offline environment. The input is a package file, and after the installation process, the output is an application that can operate offline on the device.
[0120] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0121] This invention provides a system that incorporates an emotion engine to recognize user emotions in the offline version of an online game. This system allows a discontinued online game to run in an offline environment using the game's data files, and provides an interactive game experience that responds to the user's emotions.
[0122] The server first receives the APK file provided by the game development company and analyzes it to identify server-dependent functions. This allows the device to find the server access parts necessary to make online functions available offline. The device then replaces the identified server-dependent functions with logic that can be handled offline. In this system, database access is converted to local storage, and API calls are handled by an emulator that mimics them within the device.
[0123] Furthermore, the device will remove unnecessary online features and modify the code to ensure a smooth offline gaming experience for players. After the game's functionality is confirmed, the server will package the offline version of the game and distribute it to users for easy access.
[0124] This system incorporates an emotion engine that can recognize the user's emotions in real time. The emotion engine analyzes the user's voice tone, facial expressions, and in-game behavior patterns to evaluate the user's stress and satisfaction levels. Based on the feedback from the emotion engine, the device adjusts the game difficulty and provides the user with advice on their play style.
[0125] In a specific example, in a puzzle game, if the system detects that the user is feeling frustrated, the emotion engine automatically reduces the game's difficulty and increases hints to alleviate stress. Conversely, if the user is overly satisfied, the system adjusts the difficulty to increase the challenge. Through these dynamic adjustments, users can enjoy a more personalized gaming experience.
[0126] The following describes the processing flow.
[0127] Step 1:
[0128] The server receives the APK file provided by the game development company. At this time, the server decompiles the received file into an analyzable format and prepares to extract various resources and source code.
[0129] Step 2:
[0130] The device retrieves the parsed APK file provided by the server and identifies server-dependent functions within it. This identification process uses static analysis tools to detect API calls and database connection code configured for server access.
[0131] Step 3:
[0132] The device will convert server-dependent functions to be offline-compatible. Specifically, it will add code to emulate API calls and replace database operations on the server with operations on local storage.
[0133] Step 4:
[0134] The device will remove unnecessary online features from the game. This includes removing elements that do not function in an offline environment, such as billing systems, real-time communication features, and online rankings.
[0135] Step 5:
[0136] The terminal will verify the operation of the rewritten code. Test benches and emulators will be used to verify that the game works correctly even in an offline environment.
[0137] Step 6:
[0138] The server packages the game code after testing is complete. This package is then prepared in a format that users can download and install offline.
[0139] Step 7:
[0140] The user installs and launches a game incorporating an emotion engine on their device. The emotion engine records and analyzes the user's state through the microphone and camera, recognizing emotions in real time.
[0141] Step 8:
[0142] The device dynamically adjusts the game's behavior based on the user's emotional data. For example, if the user is feeling frustrated, the device may lower the game's difficulty or increase the number of helpful hints.
[0143] Step 9:
[0144] Users continuously enjoy a customized gaming experience powered by the emotion engine. The game's difficulty and feedback are adaptively adjusted based on the user's emotional changes, optimizing the gameplay experience.
[0145] (Example 2)
[0146] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0147] The challenges include ensuring that users can continue to experience online competitions even after the service ends, and providing interactive gameplay experiences that respond to users' emotions. Another challenge is to transition from traditional online-dependent game designs to programs that can function smoothly in offline environments.
[0148] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0149] In this invention, the server includes means for receiving a dataset of online competitions, means for analyzing the dataset to identify network-dependent functions, and means for replacing the programs to operate the network-dependent functions in a non-online environment. This allows users to experience online competitions in an offline environment and enables interactive game adjustments based on user sentiment analysis.
[0150] "Online competition" refers to electronic games in which participants compete against each other via the internet.
[0151] A "dataset" is an aggregate of information that makes up an online competition, and includes program code, media files, and other similar files.
[0152] "Network-dependent features" is a general term for actions in online competitions that require a network connection.
[0153] A "non-online environment" refers to a system environment that assumes the absence of a network connection.
[0154] "Program replacement" refers to the operation of converting network-dependent functions into a form that can operate in a non-online environment.
[0155] "Emotion analysis" refers to a technology that evaluates a user's psychological state based on their voice and facial expressions.
[0156] "Interactive gameplay experience" refers to a method of providing a game experience that dynamically changes in response to the user's actions and emotions.
[0157] This invention receives a dataset of online competitions, converts network-dependent functions into a form that can operate offline, analyzes user emotions in real time, and provides an interactive gaming experience.
[0158] The server receives a dataset from the competition provider. This dataset may include the game's program code, media files, and network-dependent features. The received dataset is analyzed to identify network-dependent features. Software such as reverse engineering tools can be used for this analysis.
[0159] The terminal performs the task of converting network-dependent functions identified by the server into programs that can run in an offline environment. This conversion uses techniques such as replacing data repository access with access to internal storage devices like SQLite, and an emulator to simulate API calls. The emulator has the function of replicating API requests and responses within the terminal.
[0160] Furthermore, the device uses its camera and microphone to capture the user's voice and facial expressions in order to analyze the user's emotions. This makes it possible to evaluate the user's psychological state in real time. For example, if the user shows signs of frustration, the game difficulty will be immediately adjusted to alleviate stress.
[0161] For example, in a puzzle game, if the game detects that the user is frequently getting stuck, it can increase the number of hints provided and moderately lower the difficulty level. This kind of flexible adjustment provides users with a personalized gaming experience.
[0162] An example of a prompt message is, "If a user experiences stress while playing a puzzle game, how would you adjust the game difficulty?" By inputting such a message into a generation AI model, appropriate feedback can be obtained depending on the situation.
[0163] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0164] Step 1:
[0165] The server receives a dataset of online competitions from the competition provider. This input dataset includes program code and media files, and incorporates network-dependent functions necessary for online operation. The server analyzes the dataset and identifies the network-dependent functions. The analysis results in a list of identified network-dependent APIs.
[0166] Step 2:
[0167] The server sends information to the terminal to convert identified network-dependent functions into a form that can operate in an offline environment. The terminal uses this information to convert data repository access to internal storage access. It also uses an emulator to simulate API calls, internally simulating API requests and responses. As a result, the converted program code is output.
[0168] Step 3:
[0169] The terminal removes unnecessary online features from the converted program code. Specifically, it removes online multiplayer and ranking features and modifies the code to be dedicated to solo play mode. After the modification process, the terminal outputs code that allows the user to play the game normally.
[0170] Step 4:
[0171] The device will then run the game after the above modifications have been made to verify its operation. A test play will be performed to confirm that it works without problems even offline. If the test is successful, the game code confirming operation will be output.
[0172] Step 5:
[0173] The server receives the verified game code and packages it into a format usable by users. This involves compilation and the creation of the user installer. Finally, a distributable game installer package is output.
[0174] Step 6:
[0175] The device uses the user's camera and microphone to acquire voice and facial expression data for sentiment analysis. This data is input into a sentiment analysis algorithm, which then outputs an evaluation result regarding the user's psychological state.
[0176] Step 7:
[0177] The device dynamically adjusts the game content based on the user's emotional analysis. Specifically, if it determines that the user is experiencing stress, it lowers the game difficulty and increases hints. Conversely, if the user is satisfied, it increases the difficulty. This adjustment provides the user with an optimized gaming experience.
[0178] (Application Example 2)
[0179] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0180] A challenge in modern shopping experiences is the difficulty in providing personalized offerings tailored to customer preferences. This is especially true in brick-and-mortar stores, where real-time product recommendations that reflect customer emotions and preferences are challenging. This project aims to improve this situation and enable customers to have a more comfortable and engaging shopping experience.
[0181] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0182] In this invention, the server includes means for receiving the data structure of online content, means for analyzing the data structure to identify communication-dependent functions, and means for incorporating a device for identifying the user's emotional state. This makes it possible to recommend items based on the customer's emotional state and provide a real-time, personalized shopping experience.
[0183] "Online content" refers to information and services in digital format that are distributed via the internet.
[0184] "Data structure" refers to a way of organizing and managing information so that it can be accessed and modified efficiently.
[0185] A "communication-dependent function" refers to a function that operates in reliance on a specific means of communication.
[0186] "Code" refers to a set of instructions that make up software or a program.
[0187] "Modification" refers to changing or modifying something existing to make it new.
[0188] "Verification" refers to tests and checks conducted to confirm accuracy, completeness, and effectiveness.
[0189] "Operational verification" refers to the process of confirming whether a system or device functions as expected.
[0190] "Integration" refers to the process of combining individual elements or functions into a single entity.
[0191] "Emotional state" refers to the mental and emotional reactions that an individual experiences under specific circumstances.
[0192] The term "device" refers to a machine or equipment that has a specific function or purpose.
[0193] "Goods" refers to tangible items or merchandise.
[0194] "Recommendation" refers to selecting and recommending a particular subject based on specific objectives or criteria.
[0195] A "simulation system" refers to a system used to reproduce specific environments and conditions and perform simulations.
[0196] To implement this invention, it is necessary for a server to receive the data structure of online content and analyze it to identify communication-dependent functions. The identified functions can be operated in an offline environment using modified code. Specifically, a device that identifies emotional states is incorporated, and product recommendations are made in real time based on the user's emotions.
[0197] This system utilizes hardware such as terminals equipped with cameras and microphones, and software such as OpenCV and audio processing libraries for image and audio analysis. Emotions are analyzed by EmotionEngine based on the input and output data, and recommendations are made for items that the user has shown interest in. This process makes the in-store shopping experience more personalized and comfortable.
[0198] As a concrete example, when a user is exploring a store using smart glasses, their interests are detected from their facial expressions and voice, and information such as "Check out our recommended products" is visually presented. This allows users to effectively find items that suit their preferences, improving the overall user experience in the store.
[0199] An example of a prompt to input into a generative AI model is: "When a customer shows interest in a new fashion item, generate an algorithm for an application that analyzes the customer's emotions and presents related products and discount information."
[0200] This configuration allows us to provide the personalized shopping experience that modern consumers demand.
[0201] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0202] Step 1:
[0203] The server receives the data structure of online content. Specifically, it downloads information in digital format via the internet and converts it into a parseable format. The input is the original data of the online content, and the output is a parseable data format.
[0204] Step 2:
[0205] The server parses the received data structure and identifies communication-dependent functions. The analysis uses an algorithm that extracts communication-dependent parts from the data. It accepts a parseable data format as input, and the output is a list of communication-dependent functions.
[0206] Step 3:
[0207] The terminal is configured to operate offline by modifying identified communication-dependent functions. Specifically, it performs code changes that replace communication functions with local processes. It takes a list of communication-dependent functions as input and generates a set of modified code as output.
[0208] Step 4:
[0209] The device verifies the modified code and performs operational checks in an offline environment. It runs test cases to ensure code integrity and analyzes the results. The input is the modified code, and the output is the operational check result.
[0210] Step 5:
[0211] The device uses a device that identifies emotional states to analyze the user's emotions in real time. Camera video and audio data are input into an emotion analysis algorithm to identify the emotional state. The input is the user's video and audio data, and the output is the user's emotional state.
[0212] Step 6:
[0213] The device recommends items based on the user's emotional state. It generates a recommendation list by matching product data related to the areas the user has shown interest in with a generated AI model. The input is the user's emotional state and a product database, and the output is a list of recommended items.
[0214] Step 7:
[0215] The terminal presents the generated recommendation list to the user. It provides the user with relevant product information through the display and audio output. The input is a list of recommended items, and the output is the information presented to the user.
[0216] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0217] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0218] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0219] [Second Embodiment]
[0220] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0221] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0222] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0223] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0224] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0225] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0226] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0227] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0228] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0229] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0230] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0231] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0232] This invention provides a system that makes online games that are scheduled to end service or have already ended playable again in an offline environment. This system uses a process that automatically takes server-dependent functions offline based on the online game's APK file.
[0233] First, the server receives an APK file from the game development company. This file contains the program code and related resources necessary to run the online game.
[0234] Next, the device analyzes the received APK file to identify server-dependent functions. This process identifies network-dependent elements, such as functions that require server access or external API calls.
[0235] Subsequently, the device converts its code to adapt server-dependent functions to an offline environment. Specifically, it replaces database access with local storage operations and performs emulation as needed. This allows data to be processed within the device, enabling the game to progress even without an internet connection.
[0236] Next, the device will remove features that are not needed online. Examples include billing systems and chat functions. This will streamline the device, making it suitable for offline use.
[0237] In the final stage, the terminal verifies the operation of the refined game code. This testing process confirms that the modified code runs smoothly and that the game elements function correctly. Once testing is complete, the server packages the offline version of the game and makes it available for users to download.
[0238] Users can continue to enjoy the game even after the online service ends by downloading and installing the final packaged offline version of the game on their device. For example, one RPG game is offered as an offline version by removing the multiplayer cooperative elements and redesigning it to allow players to progress through the story independently. In this way, users can continue the gaming experience they enjoyed in the past.
[0239] The following describes the processing flow.
[0240] Step 1:
[0241] The server receives the APK file provided by the game development company. Based on this file, the server extracts the code and resources of the online game and makes them available for analysis.
[0242] Step 2:
[0243] The device analyzes the APK file obtained from the server. Static analysis tools are used to identify server-dependent functions in the code and understand how they contribute to the game's operation.
[0244] Step 3:
[0245] The device replaces identified server-dependent functions with logic that can operate in an offline environment. For example, it might change database access to local storage operations to enable data management without using a network.
[0246] Step 4:
[0247] The device will have online-only features removed or disabled if necessary. Specifically, billing systems and communication features such as chat will be removed, clearing elements that are unnecessary for offline gameplay.
[0248] Step 5:
[0249] The terminal tests the entire code of the converted game. Using emulators and test terminals, it is confirmed that players can enjoy the game smoothly in an offline environment. Here, the focus is on checking that the game does not freeze and that the newly implemented logic works as intended.
[0250] Step 6:
[0251] The server packages the verified game code and prepares it for distribution on platforms accessible to users. Users can download, install, and play the offline version of the game from the designated website or app store.
[0252] (Example 1)
[0253] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0254] When an online game service ends, players lose the gaming experience they've built up over time. This problem, especially for games played for extended periods, leads to a loss of player satisfaction and emotional investment. To address this challenge, there is a need for ways to continue enjoying games even after the online service has ended.
[0255] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0256] In this invention, the server includes means for receiving electronic files of online games, means for identifying network-dependent functions, means for converting instructions to operate in an offline environment, means for removing unnecessary online functions, means for checking the converted instructions and verifying their operation, and means for packaging the checked instructions and making them available. This allows players to continue enjoying the game offline even after the online service ends.
[0257] An "information processing device" is a device that has the function of inputting, outputting, and manipulating data, and is used to receive and analyze electronic files from online games.
[0258] An "electronic file" is a collection of information stored in digital format, and it is data that includes program code and resources that make up an online game.
[0259] "Network-dependent functions" are functions that operate via online services and require server access or external API calls.
[0260] "Instruction conversion" is the process of modifying program code to allow specific network-dependent functions to operate in an offline environment.
[0261] "Unnecessary online features" are features that are not needed for offline gameplay but are designed with online operation in mind.
[0262] "Inspection" refers to the testing process to verify that converted instructions or deleted functions work as intended.
[0263] "Packaging" refers to the process of compiling inspection orders into a format that can be redistributed.
[0264] This invention relates to a system that allows online games to be played offline even after the online game has ended. This system is configured and implemented as follows.
[0265] First, the server receives the electronic files of the online game from the game developer. These electronic files contain the program code and resources that make up the game. The server then transfers the received electronic files to the terminal.
[0266] Next, the terminal analyzes the received electronic files to identify functions that operate over the network, i.e., network-dependent functions. This process uses analysis tools to extract program parts that require server access and external API calls.
[0267] Subsequently, the terminal translates the commands for identified network-dependent functions to work even in an offline environment. This translation includes techniques such as replacing data management device access with internal storage access. For example, database queries are changed to read and write operations on local storage. Additionally, server functions are mimicked within the terminal using emulation techniques as needed.
[0268] Next, the device removes features that are not needed in an offline environment. This process removes features such as chat functions and billing systems to lighten the load on the game.
[0269] Finally, the server packages the offline version of the game that has completed testing and makes it available for users to download.
[0270] Users download the new offline version of the game from the server and install it on their devices. This allows users to continue enjoying the game world even after the online service ends.
[0271] As a concrete example, in one role-playing game, the multiplayer elements are removed and the game is redesigned to allow players to progress through the story independently, and then offered as an offline version.
[0272] An example of a prompt message might be: "Please explain the procedure for converting an online game's digital files to an offline version. Please provide specific examples of how to identify network-dependent functions and how to convert the commands."
[0273] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0274] Step 1:
[0275] The server receives electronic files of online games from the developer. It receives the APK file provided by the game developer as input and performs necessary security checks. As a result, it obtains electronic files containing the data and resources necessary for the application to function.
[0276] Step 2:
[0277] The terminal analyzes the received electronic files. Based on the electronic files obtained as input, it performs a disassembly of the compiled code to identify network-dependent functions. Specifically, it uses a tool to extract server access and external API call sections, listing specific files and code parts. The output is a list of identified server-dependent parts.
[0278] Step 3:
[0279] The terminal translates commands to adapt identified network-dependent functions to an offline environment. The input is the code for the dependent function, based on a specific list. This code is analyzed, and the translation is performed using techniques such as changing database access to local storage operations. In specific operations, for example, server queries are replaced with queries to a local database. The output is the translated program code.
[0280] Step 4:
[0281] The device removes unnecessary features in an offline environment. Using the converted program code as input, it removes unnecessary online features such as chat functions and billing systems from the code. Specifically, it removes unnecessary UI and backend logic by editing the source code. The output is further lightweight program code with unnecessary features removed.
[0282] Step 5:
[0283] The terminal tests the converted instructions for operational verification. As input, based on the program code after function deletion, unit tests and integration tests are performed. Specific operations include the process of running the game to check whether all functions are operating correctly. The output is the verification result of the offline version of the game that operates normally.
[0284] Step 6:
[0285] The server packages the game code that has been verified for operation. As input, it receives the offline version of the game code that has completed testing and generates a new APK file. Specific operations include creating a secure package including signatures. The output is the offline version of the game in a downloadable format.
[0286] Step 7:
[0287] The user downloads and installs the offline version of the game from the server. Using the download link provided by the server as input, the APK file is obtained. Specific operations include the process of installing the game on the terminal according to the normal application installation procedure. The output is the installed offline version of the game.
[0288] (Application Example 1)
[0289] Next, Application Example 1 will be described. In the following description, the data processing device 12 is referred to as the "server", and the smart glasses 214 are referred to as the "terminal".
[0290] There is a need for a technology to make online content that has ended its service reusable without relying on a realistic network dependency. Reviving the content that users have enjoyed in the past without relying on an online environment is necessary to continue to efficiently utilize the content resources.
[0291] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0292] In this invention, the server includes means for receiving digital files of online content, means for analyzing the digital files to identify communication-dependent functions, and means for rewriting the code for the communication-dependent functions to operate in a distributed environment. This makes it possible to make content usable again in an offline environment after the service has ended.
[0293] "Online content" refers to a collection of information and digital media that users can access via the internet.
[0294] A "digital file" is a collection of information handled on a computer system, stored in a binary data format.
[0295] "Communication-dependent functions" refer to functions and services that are executed through external servers or network connections.
[0296] A "distributed environment" is a method of building a system that does not depend on a central authority by distributing data and processes across multiple terminals within a network.
[0297] "Rewriting code" refers to the act of modifying and restructuring source code in order to change the behavior or functionality of a program.
[0298] The system for realizing this invention consists of software that runs on the user's terminal and a system operated on the content provider's server. To obtain offline content, the user can first receive digital files of the content from the server via an application on their terminal. This process utilizes an existing internet connection and employs common data transfer protocols.
[0299] The server receives the digital file and analyzes the data to identify communication-dependent functions. This analysis uses APKTool and other decompilation tools to uncover online functions. For example, external API calls and server access may be detected.
[0300] Subsequently, the server rewrites the identified communication-dependent functions into a form that can operate within the terminal. In this conversion process, database access is converted to local storage access, and SQLite is used. An emulator system is also introduced to reproduce software interface calls within the terminal. In particular, the operation of the modified software is verified using JUnit, and network-dependent behavior can be simulated using a selected simulator.
[0301] Once this conversion process is complete, the server packages the final offline version of the content, making it available for download to users. Users can then install the packaged offline content on their devices and use it without needing a network connection.
[0302] As a concrete example, using the APK file of an old RPG game, it is possible to create an environment where users can enjoy the story offline even after the online service has ended on the application. Through a prompt such as, "I want to make an old RPG game playable offline again. Detect and remove server-dependent functions from the APK file and explain the process of making it playable offline," the generative AI model can suggest further optimizations and implementations.
[0303] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0304] Step 1:
[0305] The user launches the application and uploads the digital files of the content to be made offline to the server. The input data is digital files, and the user selects the target from the file system on the terminal through the file selection function. As output, the server receives the digital files.
[0306] Step 2:
[0307] The server analyzes the received digital files and identifies communication-dependent functions. Specifically, using a decompilation tool, the parts involving data communication with the server are extracted. In this process, the detection and recording of API calls are performed, and data identifying the communication-dependent functions is generated as output.
[0308] Step 3:
[0309] The server rewrites the identified communication-dependent functions into a form that can operate offline. The input is the specific data of the communication-dependent functions, which is converted into an emulable format using code conversion software. As output, code converted to local database access is generated.
[0310] Step 4:
[0311] The server verifies the rewritten code. Specifically, it executes JUnit tests to check whether the code operates as intended. The input is the rewritten code, and test results are obtained as output.
[0312] Step 5:
[0313] The server packages the passed code and makes it downloadable by the user. Through the packaging process, the verified code, which is the input data, is converted into a form that can be installed on the user's terminal. The output is a package file for downloading.
[0314] Step 6:
[0315] The user installs the packaged content on their device and starts operating in an offline environment. The input is a package file, and after the installation process, the output is an application that can operate offline on the device.
[0316] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0317] This invention provides a system that incorporates an emotion engine to recognize user emotions in the offline version of an online game. This system allows a discontinued online game to run in an offline environment using the game's data files, and provides an interactive game experience that responds to the user's emotions.
[0318] The server first receives the APK file provided by the game development company and analyzes it to identify server-dependent functions. This allows the device to find the server access parts necessary to make online functions available offline. The device then replaces the identified server-dependent functions with logic that can be handled offline. In this system, database access is converted to local storage, and API calls are handled by an emulator that mimics them within the device.
[0319] Furthermore, the device will remove unnecessary online features and modify the code to ensure a smooth offline gaming experience for players. After the game's functionality is confirmed, the server will package the offline version of the game and distribute it to users for easy access.
[0320] This system incorporates an emotion engine that can recognize the user's emotions in real time. The emotion engine analyzes the user's voice tone, facial expressions, and in-game behavior patterns to evaluate the user's stress and satisfaction levels. Based on the feedback from the emotion engine, the device adjusts the game difficulty and provides the user with advice on their play style.
[0321] In a specific example, in a puzzle game, if the system detects that the user is feeling frustrated, the emotion engine automatically reduces the game's difficulty and increases hints to alleviate stress. Conversely, if the user is overly satisfied, the system adjusts the difficulty to increase the challenge. Through these dynamic adjustments, users can enjoy a more personalized gaming experience.
[0322] The following describes the processing flow.
[0323] Step 1:
[0324] The server receives the APK file provided by the game development company. At this time, the server decompiles the received file into an analyzable format and prepares to extract various resources and source code.
[0325] Step 2:
[0326] The device retrieves the parsed APK file provided by the server and identifies server-dependent functions within it. This identification process uses static analysis tools to detect API calls and database connection code configured for server access.
[0327] Step 3:
[0328] The device will convert server-dependent functions to be offline-compatible. Specifically, it will add code to emulate API calls and replace database operations on the server with operations on local storage.
[0329] Step 4:
[0330] The device will remove unnecessary online features from the game. This includes removing elements that do not function in an offline environment, such as billing systems, real-time communication features, and online rankings.
[0331] Step 5:
[0332] The terminal will verify the operation of the rewritten code. Test benches and emulators will be used to verify that the game works correctly even in an offline environment.
[0333] Step 6:
[0334] The server packages the game code after testing is complete. This package is then prepared in a format that users can download and install offline.
[0335] Step 7:
[0336] The user installs and launches a game incorporating an emotion engine on their device. The emotion engine records and analyzes the user's state through the microphone and camera, recognizing emotions in real time.
[0337] Step 8:
[0338] The device dynamically adjusts the game's behavior based on the user's emotional data. For example, if the user is feeling frustrated, the device may lower the game's difficulty or increase the number of helpful hints.
[0339] Step 9:
[0340] Users continuously enjoy a customized gaming experience powered by the emotion engine. The game's difficulty and feedback are adaptively adjusted based on the user's emotional changes, optimizing the gameplay experience.
[0341] (Example 2)
[0342] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0343] The challenges include ensuring that users can continue to experience online competitions even after the service ends, and providing interactive gameplay experiences that respond to users' emotions. Another challenge is to transition from traditional online-dependent game designs to programs that can function smoothly in offline environments.
[0344] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0345] In this invention, the server includes means for receiving a dataset of online competitions, means for analyzing the dataset to identify network-dependent functions, and means for replacing the programs to operate the network-dependent functions in a non-online environment. This allows users to experience online competitions in an offline environment and enables interactive game adjustments based on user sentiment analysis.
[0346] "Online competition" refers to electronic games in which participants compete against each other via the internet.
[0347] A "dataset" is an aggregate of information that makes up an online competition, and includes program code, media files, and other similar files.
[0348] "Network-dependent features" is a general term for actions in online competitions that require a network connection.
[0349] A "non-online environment" refers to a system environment that assumes the absence of a network connection.
[0350] "Program replacement" refers to the operation of converting network-dependent functions into a form that can operate in a non-online environment.
[0351] "Emotion analysis" refers to a technology that evaluates a user's psychological state based on their voice and facial expressions.
[0352] "Interactive gameplay experience" refers to a method of providing a game experience that dynamically changes in response to the user's actions and emotions.
[0353] This invention receives a dataset of online competitions, converts network-dependent functions into a form that can operate offline, analyzes user emotions in real time, and provides an interactive gaming experience.
[0354] The server receives a dataset from the competition provider. This dataset may include the game's program code, media files, and network-dependent features. The received dataset is analyzed to identify network-dependent features. Software such as reverse engineering tools can be used for this analysis.
[0355] The terminal performs the task of converting network-dependent functions identified by the server into programs that can run in an offline environment. This conversion uses techniques such as replacing data repository access with access to internal storage devices like SQLite, and an emulator to simulate API calls. The emulator has the function of replicating API requests and responses within the terminal.
[0356] Furthermore, the device uses its camera and microphone to capture the user's voice and facial expressions in order to analyze the user's emotions. This makes it possible to evaluate the user's psychological state in real time. For example, if the user shows signs of frustration, the game difficulty will be immediately adjusted to alleviate stress.
[0357] For example, in a puzzle game, if the game detects that the user is frequently getting stuck, it can increase the number of hints provided and moderately lower the difficulty level. This kind of flexible adjustment provides users with a personalized gaming experience.
[0358] An example of a prompt message is, "If a user experiences stress while playing a puzzle game, how would you adjust the game difficulty?" By inputting such a message into a generation AI model, appropriate feedback can be obtained depending on the situation.
[0359] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0360] Step 1:
[0361] The server receives a dataset of online competitions from the competition provider. This input dataset includes program code and media files, and incorporates network-dependent functions necessary for online operation. The server analyzes the dataset and identifies the network-dependent functions. The analysis results in a list of identified network-dependent APIs.
[0362] Step 2:
[0363] The server sends information to the terminal to convert identified network-dependent functions into a form that can operate in an offline environment. The terminal uses this information to convert data repository access to internal storage access. It also uses an emulator to simulate API calls, internally simulating API requests and responses. As a result, the converted program code is output.
[0364] Step 3:
[0365] The terminal removes unnecessary online features from the converted program code. Specifically, it removes online multiplayer and ranking features and modifies the code to be dedicated to solo play mode. After the modification process, the terminal outputs code that allows the user to play the game normally.
[0366] Step 4:
[0367] The device will then run the game after the above modifications have been made to verify its operation. A test play will be performed to confirm that it works without problems even offline. If the test is successful, the game code confirming operation will be output.
[0368] Step 5:
[0369] The server receives the verified game code and packages it into a format usable by users. This involves compilation and the creation of the user installer. Finally, a distributable game installer package is output.
[0370] Step 6:
[0371] The device uses the user's camera and microphone to acquire voice and facial expression data for sentiment analysis. This data is input into a sentiment analysis algorithm, which then outputs an evaluation result regarding the user's psychological state.
[0372] Step 7:
[0373] The device dynamically adjusts the game content based on the user's emotional analysis. Specifically, if it determines that the user is experiencing stress, it lowers the game difficulty and increases hints. Conversely, if the user is satisfied, it increases the difficulty. This adjustment provides the user with an optimized gaming experience.
[0374] (Application Example 2)
[0375] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0376] A challenge in modern shopping experiences is the difficulty in providing personalized offerings tailored to customer preferences. This is especially true in brick-and-mortar stores, where real-time product recommendations that reflect customer emotions and preferences are challenging. This project aims to improve this situation and enable customers to have a more comfortable and engaging shopping experience.
[0377] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0378] In this invention, the server includes means for receiving the data structure of online content, means for analyzing the data structure to identify communication-dependent functions, and means for incorporating a device for identifying the user's emotional state. This makes it possible to recommend items based on the customer's emotional state and provide a real-time, personalized shopping experience.
[0379] "Online content" refers to information and services in digital format that are distributed via the internet.
[0380] "Data structure" refers to a way of organizing and managing information so that it can be accessed and modified efficiently.
[0381] A "communication-dependent function" refers to a function that operates in reliance on a specific means of communication.
[0382] "Code" refers to a set of instructions that make up software or a program.
[0383] "Modification" refers to changing or modifying something existing to make it new.
[0384] "Verification" refers to tests and checks conducted to confirm accuracy, completeness, and effectiveness.
[0385] "Operational verification" refers to the process of confirming whether a system or device functions as expected.
[0386] "Integration" refers to the process of combining individual elements or functions into a single entity.
[0387] "Emotional state" refers to the mental and emotional reactions that an individual experiences under specific circumstances.
[0388] The term "device" refers to a machine or equipment that has a specific function or purpose.
[0389] "Goods" refers to tangible items or merchandise.
[0390] "Recommendation" refers to selecting and recommending a particular subject based on specific objectives or criteria.
[0391] A "simulation system" refers to a system used to reproduce specific environments and conditions and perform simulations.
[0392] To implement this invention, it is necessary for a server to receive the data structure of online content and analyze it to identify communication-dependent functions. The identified functions can be operated in an offline environment using modified code. Specifically, a device that identifies emotional states is incorporated, and product recommendations are made in real time based on the user's emotions.
[0393] This system utilizes hardware such as terminals equipped with cameras and microphones, and software such as OpenCV and audio processing libraries for image and audio analysis. Emotions are analyzed by EmotionEngine based on the input and output data, and recommendations are made for items that the user has shown interest in. This process makes the in-store shopping experience more personalized and comfortable.
[0394] As a concrete example, when a user is exploring a store using smart glasses, their interests are detected from their facial expressions and voice, and information such as "Check out our recommended products" is visually presented. This allows users to effectively find items that suit their preferences, improving the overall user experience in the store.
[0395] An example of a prompt to input into a generative AI model is: "When a customer shows interest in a new fashion item, generate an algorithm for an application that analyzes the customer's emotions and presents related products and discount information."
[0396] This configuration allows us to provide the personalized shopping experience that modern consumers demand.
[0397] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0398] Step 1:
[0399] The server receives the data structure of online content. Specifically, it downloads information in digital format via the internet and converts it into a parseable format. The input is the original data of the online content, and the output is a parseable data format.
[0400] Step 2:
[0401] The server parses the received data structure and identifies communication-dependent functions. The analysis uses an algorithm that extracts communication-dependent parts from the data. It accepts a parseable data format as input, and the output is a list of communication-dependent functions.
[0402] Step 3:
[0403] The terminal is configured to operate offline by modifying identified communication-dependent functions. Specifically, it performs code changes that replace communication functions with local processes. It takes a list of communication-dependent functions as input and generates a set of modified code as output.
[0404] Step 4:
[0405] The device verifies the modified code and performs operational checks in an offline environment. It runs test cases to ensure code integrity and analyzes the results. The input is the modified code, and the output is the operational check result.
[0406] Step 5:
[0407] The device uses a device that identifies emotional states to analyze the user's emotions in real time. Camera video and audio data are input into an emotion analysis algorithm to identify the emotional state. The input is the user's video and audio data, and the output is the user's emotional state.
[0408] Step 6:
[0409] The device recommends items based on the user's emotional state. It generates a recommendation list by matching product data related to the areas the user has shown interest in with a generated AI model. The input is the user's emotional state and a product database, and the output is a list of recommended items.
[0410] Step 7:
[0411] The terminal presents the generated recommendation list to the user. It provides the user with relevant product information through the display and audio output. The input is a list of recommended items, and the output is the information presented to the user.
[0412] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0413] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0414] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0415] [Third Embodiment]
[0416] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0417] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0418] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0419] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0420] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0421] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0422] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0423] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0424] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0425] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0426] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0427] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0428] This invention provides a system that makes online games that are scheduled to end service or have already ended playable again in an offline environment. This system uses a process that automatically takes server-dependent functions offline based on the online game's APK file.
[0429] First, the server receives an APK file from the game development company. This file contains the program code and related resources necessary to run the online game.
[0430] Next, the device analyzes the received APK file to identify server-dependent functions. This process identifies network-dependent elements, such as functions that require server access or external API calls.
[0431] Subsequently, the device converts its code to adapt server-dependent functions to an offline environment. Specifically, it replaces database access with local storage operations and performs emulation as needed. This allows data to be processed within the device, enabling the game to progress even without an internet connection.
[0432] Next, the device will remove features that are not needed online. Examples include billing systems and chat functions. This will streamline the device, making it suitable for offline use.
[0433] In the final stage, the terminal verifies the operation of the refined game code. This testing process confirms that the modified code runs smoothly and that the game elements function correctly. Once testing is complete, the server packages the offline version of the game and makes it available for users to download.
[0434] Users can continue to enjoy the game even after the online service ends by downloading and installing the final packaged offline version of the game on their device. For example, one RPG game is offered as an offline version by removing the multiplayer cooperative elements and redesigning it to allow players to progress through the story independently. In this way, users can continue the gaming experience they enjoyed in the past.
[0435] The following describes the processing flow.
[0436] Step 1:
[0437] The server receives the APK file provided by the game development company. Based on this file, the server extracts the code and resources of the online game and makes them available for analysis.
[0438] Step 2:
[0439] The device analyzes the APK file obtained from the server. Static analysis tools are used to identify server-dependent functions in the code and understand how they contribute to the game's operation.
[0440] Step 3:
[0441] The device replaces identified server-dependent functions with logic that can operate in an offline environment. For example, it might change database access to local storage operations to enable data management without using a network.
[0442] Step 4:
[0443] The device will have online-only features removed or disabled if necessary. Specifically, billing systems and communication features such as chat will be removed, clearing elements that are unnecessary for offline gameplay.
[0444] Step 5:
[0445] The terminal tests the entire code of the converted game. Using emulators and test terminals, it is confirmed that players can enjoy the game smoothly in an offline environment. Here, the focus is on checking that the game does not freeze and that the newly implemented logic works as intended.
[0446] Step 6:
[0447] The server packages the verified game code and prepares it for distribution on platforms accessible to users. Users can download, install, and play the offline version of the game from the designated website or app store.
[0448] (Example 1)
[0449] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0450] When an online game service ends, players lose the gaming experience they've built up over time. This problem, especially for games played for extended periods, leads to a loss of player satisfaction and emotional investment. To address this challenge, there is a need for ways to continue enjoying games even after the online service has ended.
[0451] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0452] In this invention, the server includes means for receiving electronic files of online games, means for identifying network-dependent functions, means for converting instructions to operate in an offline environment, means for removing unnecessary online functions, means for checking the converted instructions and verifying their operation, and means for packaging the checked instructions and making them available. This allows players to continue enjoying the game offline even after the online service ends.
[0453] An "information processing device" is a device that has the function of inputting, outputting, and manipulating data, and is used to receive and analyze electronic files from online games.
[0454] An "electronic file" is a collection of information stored in digital format, and it is data that includes program code and resources that make up an online game.
[0455] "Network-dependent functions" are functions that operate via online services and require server access or external API calls.
[0456] "Instruction conversion" is the process of modifying program code to allow specific network-dependent functions to operate in an offline environment.
[0457] "Unnecessary online features" are features that are not needed for offline gameplay but are designed with online operation in mind.
[0458] "Inspection" refers to the testing process to verify that converted instructions or deleted functions work as intended.
[0459] "Packaging" refers to the process of compiling inspection orders into a format that can be redistributed.
[0460] This invention relates to a system that allows online games to be played offline even after the online game has ended. This system is configured and implemented as follows.
[0461] First, the server receives the electronic files of the online game from the game developer. These electronic files contain the program code and resources that make up the game. The server then transfers the received electronic files to the terminal.
[0462] Next, the terminal analyzes the received electronic files to identify functions that operate over the network, i.e., network-dependent functions. This process uses analysis tools to extract program parts that require server access and external API calls.
[0463] Subsequently, the terminal translates the commands for identified network-dependent functions to work even in an offline environment. This translation includes techniques such as replacing data management device access with internal storage access. For example, database queries are changed to read and write operations on local storage. Additionally, server functions are mimicked within the terminal using emulation techniques as needed.
[0464] Next, the device removes features that are not needed in an offline environment. This process removes features such as chat functions and billing systems to lighten the load on the game.
[0465] Finally, the server packages the offline version of the game that has completed testing and makes it available for users to download.
[0466] Users download the new offline version of the game from the server and install it on their devices. This allows users to continue enjoying the game world even after the online service ends.
[0467] As a concrete example, in one role-playing game, the multiplayer elements are removed and the game is redesigned to allow players to progress through the story independently, and then offered as an offline version.
[0468] An example of a prompt message might be: "Please explain the procedure for converting an online game's digital files to an offline version. Please provide specific examples of how to identify network-dependent functions and how to convert the commands."
[0469] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0470] Step 1:
[0471] The server receives electronic files of online games from the developer. It receives the APK file provided by the game developer as input and performs necessary security checks. As a result, it obtains electronic files containing the data and resources necessary for the application to function.
[0472] Step 2:
[0473] The terminal analyzes the received electronic files. Based on the electronic files obtained as input, it performs a disassembly of the compiled code to identify network-dependent functions. Specifically, it uses a tool to extract server access and external API call sections, listing specific files and code parts. The output is a list of identified server-dependent parts.
[0474] Step 3:
[0475] The terminal translates commands to adapt identified network-dependent functions to an offline environment. The input is the code for the dependent function, based on a specific list. This code is analyzed, and the translation is performed using techniques such as changing database access to local storage operations. In specific operations, for example, server queries are replaced with queries to a local database. The output is the translated program code.
[0476] Step 4:
[0477] The device removes unnecessary features in an offline environment. Using the converted program code as input, it removes unnecessary online features such as chat functions and billing systems from the code. Specifically, it removes unnecessary UI and backend logic by editing the source code. The output is further lightweight program code with unnecessary features removed.
[0478] Step 5:
[0479] The terminal tests the converted instructions to verify their operation. Based on the program code after feature removal, it performs unit and integration tests. Specific actions include running the game to confirm that all functions are working correctly. The output is the verification result of a properly functioning offline version of the game.
[0480] Step 6:
[0481] The server packages tested game code. It receives a tested offline game code as input and generates a new APK file. Specific operations include secure package creation, including signing. The output is a downloadable offline game.
[0482] Step 7:
[0483] The user downloads and installs the offline version of the game from the server. They use a download link provided by the server as input to obtain the APK file. The specific operation involves the process of installing the game on the device following the normal application installation procedure. The output is the installed offline version of the game.
[0484] (Application Example 1)
[0485] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0486] There is a need for technology that can make discontinued online content usable again without significant network reliance. Reviving content that users previously enjoyed, without relying on an online environment, is essential for the continued efficient use of content resources.
[0487] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0488] In this invention, the server includes means for receiving digital files of online content, means for analyzing the digital files to identify communication-dependent functions, and means for rewriting the code for the communication-dependent functions to operate in a distributed environment. This makes it possible to make content usable again in an offline environment after the service has ended.
[0489] "Online content" refers to a collection of information and digital media that users can access via the internet.
[0490] A "digital file" is a collection of information handled on a computer system, stored in a binary data format.
[0491] "Communication-dependent functions" refer to functions and services that are executed through external servers or network connections.
[0492] A "distributed environment" is a method of building a system that does not depend on a central authority by distributing data and processes across multiple terminals within a network.
[0493] "Rewriting code" refers to the act of modifying and restructuring source code in order to change the behavior or functionality of a program.
[0494] The system for realizing this invention consists of software that runs on the user's terminal and a system operated on the content provider's server. To obtain offline content, the user can first receive digital files of the content from the server via an application on their terminal. This process utilizes an existing internet connection and employs common data transfer protocols.
[0495] The server receives the digital file and analyzes the data to identify communication-dependent functions. This analysis uses APKTool and other decompilation tools to uncover online functions. For example, external API calls and server access may be detected.
[0496] Subsequently, the server rewrites the identified communication-dependent functions into a form that can operate within the terminal. In this conversion process, database access is converted to local storage access, and SQLite is used. An emulator system is also introduced to reproduce software interface calls within the terminal. In particular, the operation of the modified software is verified using JUnit, and network-dependent behavior can be simulated using a selected simulator.
[0497] Once this conversion process is complete, the server packages the final offline version of the content, making it available for download to users. Users can then install the packaged offline content on their devices and use it without needing a network connection.
[0498] As a concrete example, using the APK file of an old RPG game, it is possible to create an environment where users can enjoy the story offline even after the online service has ended on the application. Through a prompt such as, "I want to make an old RPG game playable offline again. Detect and remove server-dependent functions from the APK file and explain the process of making it playable offline," the generative AI model can suggest further optimizations and implementations.
[0499] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0500] Step 1:
[0501] The user launches the application and uploads the digital files of the content they want to make offline to the server. The input data is digital files, and the user selects the target files from the file system on their device using the file selection function. The server receives the digital files as output.
[0502] Step 2:
[0503] The server analyzes the received digital files to identify communication-dependent functions. Specifically, a decompilation tool is used to extract the parts involving data communication with the server. During this process, API calls are detected and recorded, and data identifying communication-dependent functions is generated as output.
[0504] Step 3:
[0505] The server rewrites the code for identified communication-dependent functions to make them work offline. The input is the specific data for the communication-dependent function, which is converted into an emulationable format using code conversion software. The output is code converted to local database access.
[0506] Step 4:
[0507] The server verifies the rewritten code. Specifically, it runs JUnit tests to check if the code works as intended. The input is the rewritten code, and the output is the test results.
[0508] Step 5:
[0509] The server packages the approved code, making it available for download to the user. The packaging process converts the validated code (input data) into a format that can be installed on the user's device. The output is a downloadable package file.
[0510] Step 6:
[0511] The user installs the packaged content on their device and starts operating in an offline environment. The input is a package file, and after the installation process, the output is an application that can operate offline on the device.
[0512] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0513] This invention provides a system that incorporates an emotion engine to recognize user emotions in the offline version of an online game. This system allows a discontinued online game to run in an offline environment using the game's data files, and provides an interactive game experience that responds to the user's emotions.
[0514] The server first receives the APK file provided by the game development company and analyzes it to identify server-dependent functions. This allows the device to find the server access parts necessary to make online functions available offline. The device then replaces the identified server-dependent functions with logic that can be handled offline. In this system, database access is converted to local storage, and API calls are handled by an emulator that mimics them within the device.
[0515] Furthermore, the device will remove unnecessary online features and modify the code to ensure a smooth offline gaming experience for players. After the game's functionality is confirmed, the server will package the offline version of the game and distribute it to users for easy access.
[0516] This system incorporates an emotion engine that can recognize the user's emotions in real time. The emotion engine analyzes the user's voice tone, facial expressions, and in-game behavior patterns to evaluate the user's stress and satisfaction levels. Based on the feedback from the emotion engine, the device adjusts the game difficulty and provides the user with advice on their play style.
[0517] In a specific example, in a puzzle game, if the system detects that the user is feeling frustrated, the emotion engine automatically reduces the game's difficulty and increases hints to alleviate stress. Conversely, if the user is overly satisfied, the system adjusts the difficulty to increase the challenge. Through these dynamic adjustments, users can enjoy a more personalized gaming experience.
[0518] The following describes the processing flow.
[0519] Step 1:
[0520] The server receives the APK file provided by the game development company. At this time, the server decompiles the received file into an analyzable format and prepares to extract various resources and source code.
[0521] Step 2:
[0522] The device retrieves the parsed APK file provided by the server and identifies server-dependent functions within it. This identification process uses static analysis tools to detect API calls and database connection code configured for server access.
[0523] Step 3:
[0524] The device will convert server-dependent functions to be offline-compatible. Specifically, it will add code to emulate API calls and replace database operations on the server with operations on local storage.
[0525] Step 4:
[0526] The device will remove unnecessary online features from the game. This includes removing elements that do not function in an offline environment, such as billing systems, real-time communication features, and online rankings.
[0527] Step 5:
[0528] The terminal will verify the operation of the rewritten code. Test benches and emulators will be used to verify that the game works correctly even in an offline environment.
[0529] Step 6:
[0530] The server packages the game code after testing is complete. This package is then prepared in a format that users can download and install offline.
[0531] Step 7:
[0532] The user installs and launches a game incorporating an emotion engine on their device. The emotion engine records and analyzes the user's state through the microphone and camera, recognizing emotions in real time.
[0533] Step 8:
[0534] The device dynamically adjusts the game's behavior based on the user's emotional data. For example, if the user is feeling frustrated, the device may lower the game's difficulty or increase the number of helpful hints.
[0535] Step 9:
[0536] Users continuously enjoy a customized gaming experience powered by the emotion engine. The game's difficulty and feedback are adaptively adjusted based on the user's emotional changes, optimizing the gameplay experience.
[0537] (Example 2)
[0538] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0539] The challenges include ensuring that users can continue to experience online competitions even after the service ends, and providing interactive gameplay experiences that respond to users' emotions. Another challenge is to transition from traditional online-dependent game designs to programs that can function smoothly in offline environments.
[0540] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0541] In this invention, the server includes means for receiving a dataset of online competitions, means for analyzing the dataset to identify network-dependent functions, and means for replacing the programs to operate the network-dependent functions in a non-online environment. This allows users to experience online competitions in an offline environment and enables interactive game adjustments based on user sentiment analysis.
[0542] "Online competition" refers to electronic games in which participants compete against each other via the internet.
[0543] A "dataset" is an aggregate of information that makes up an online competition, and includes program code, media files, and other similar files.
[0544] "Network-dependent features" is a general term for actions in online competitions that require a network connection.
[0545] A "non-online environment" refers to a system environment that assumes the absence of a network connection.
[0546] "Program replacement" refers to the operation of converting network-dependent functions into a form that can operate in a non-online environment.
[0547] "Emotion analysis" refers to a technology that evaluates a user's psychological state based on their voice and facial expressions.
[0548] "Interactive gameplay experience" refers to a method of providing a game experience that dynamically changes in response to the user's actions and emotions.
[0549] This invention receives a dataset of online competitions, converts network-dependent functions into a form that can operate offline, analyzes user emotions in real time, and provides an interactive gaming experience.
[0550] The server receives a dataset from the competition provider. This dataset may include the game's program code, media files, and network-dependent features. The received dataset is analyzed to identify network-dependent features. Software such as reverse engineering tools can be used for this analysis.
[0551] The terminal performs the task of converting network-dependent functions identified by the server into programs that can run in an offline environment. This conversion uses techniques such as replacing data repository access with access to internal storage devices like SQLite, and an emulator to simulate API calls. The emulator has the function of replicating API requests and responses within the terminal.
[0552] Furthermore, the device uses its camera and microphone to capture the user's voice and facial expressions in order to analyze the user's emotions. This makes it possible to evaluate the user's psychological state in real time. For example, if the user shows signs of frustration, the game difficulty will be immediately adjusted to alleviate stress.
[0553] For example, in a puzzle game, if the game detects that the user is frequently getting stuck, it can increase the number of hints provided and moderately lower the difficulty level. This kind of flexible adjustment provides users with a personalized gaming experience.
[0554] An example of a prompt message is, "If a user experiences stress while playing a puzzle game, how would you adjust the game difficulty?" By inputting such a message into a generation AI model, appropriate feedback can be obtained depending on the situation.
[0555] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0556] Step 1:
[0557] The server receives a dataset of online competitions from the competition provider. This input dataset includes program code and media files, and incorporates network-dependent functions necessary for online operation. The server analyzes the dataset and identifies the network-dependent functions. The analysis results in a list of identified network-dependent APIs.
[0558] Step 2:
[0559] The server sends information to the terminal to convert identified network-dependent functions into a form that can operate in an offline environment. The terminal uses this information to convert data repository access to internal storage access. It also uses an emulator to simulate API calls, internally simulating API requests and responses. As a result, the converted program code is output.
[0560] Step 3:
[0561] The terminal removes unnecessary online features from the converted program code. Specifically, it removes online multiplayer and ranking features and modifies the code to be dedicated to solo play mode. After the modification process, the terminal outputs code that allows the user to play the game normally.
[0562] Step 4:
[0563] The device will then run the game after the above modifications have been made to verify its operation. A test play will be performed to confirm that it works without problems even offline. If the test is successful, the game code confirming operation will be output.
[0564] Step 5:
[0565] The server receives the verified game code and packages it into a format usable by users. This involves compilation and the creation of the user installer. Finally, a distributable game installer package is output.
[0566] Step 6:
[0567] The device uses the user's camera and microphone to acquire voice and facial expression data for sentiment analysis. This data is input into a sentiment analysis algorithm, which then outputs an evaluation result regarding the user's psychological state.
[0568] Step 7:
[0569] The device dynamically adjusts the game content based on the user's emotional analysis. Specifically, if it determines that the user is experiencing stress, it lowers the game difficulty and increases hints. Conversely, if the user is satisfied, it increases the difficulty. This adjustment provides the user with an optimized gaming experience.
[0570] (Application Example 2)
[0571] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0572] A challenge in modern shopping experiences is the difficulty in providing personalized offerings tailored to customer preferences. This is especially true in brick-and-mortar stores, where real-time product recommendations that reflect customer emotions and preferences are challenging. This project aims to improve this situation and enable customers to have a more comfortable and engaging shopping experience.
[0573] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0574] In this invention, the server includes means for receiving the data structure of online content, means for analyzing the data structure to identify communication-dependent functions, and means for incorporating a device for identifying the user's emotional state. This makes it possible to recommend items based on the customer's emotional state and provide a real-time, personalized shopping experience.
[0575] "Online content" refers to information and services in digital format that are distributed via the internet.
[0576] "Data structure" refers to a way of organizing and managing information so that it can be accessed and modified efficiently.
[0577] A "communication-dependent function" refers to a function that operates in reliance on a specific means of communication.
[0578] "Code" refers to a set of instructions that make up software or a program.
[0579] "Modification" refers to changing or modifying something existing to make it new.
[0580] "Verification" refers to tests and checks conducted to confirm accuracy, completeness, and effectiveness.
[0581] "Operational verification" refers to the process of confirming whether a system or device functions as expected.
[0582] "Integration" refers to the process of combining individual elements or functions into a single entity.
[0583] "Emotional state" refers to the mental and emotional reactions that an individual experiences under specific circumstances.
[0584] The term "device" refers to a machine or equipment that has a specific function or purpose.
[0585] "Goods" refers to tangible items or merchandise.
[0586] "Recommendation" refers to selecting and recommending a particular subject based on specific objectives or criteria.
[0587] A "simulation system" refers to a system used to reproduce specific environments and conditions and perform simulations.
[0588] To implement this invention, it is necessary for a server to receive the data structure of online content and analyze it to identify communication-dependent functions. The identified functions can be operated in an offline environment using modified code. Specifically, a device that identifies emotional states is incorporated, and product recommendations are made in real time based on the user's emotions.
[0589] This system utilizes hardware such as terminals equipped with cameras and microphones, and software such as OpenCV and audio processing libraries for image and audio analysis. Emotions are analyzed by EmotionEngine based on the input and output data, and recommendations are made for items that the user has shown interest in. This process makes the in-store shopping experience more personalized and comfortable.
[0590] As a concrete example, when a user is exploring a store using smart glasses, their interests are detected from their facial expressions and voice, and information such as "Check out our recommended products" is visually presented. This allows users to effectively find items that suit their preferences, improving the overall user experience in the store.
[0591] An example of a prompt to input into a generative AI model is: "When a customer shows interest in a new fashion item, generate an algorithm for an application that analyzes the customer's emotions and presents related products and discount information."
[0592] This configuration allows us to provide the personalized shopping experience that modern consumers demand.
[0593] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0594] Step 1:
[0595] The server receives the data structure of online content. Specifically, it downloads information in digital format via the internet and converts it into a parseable format. The input is the original data of the online content, and the output is a parseable data format.
[0596] Step 2:
[0597] The server parses the received data structure and identifies communication-dependent functions. The analysis uses an algorithm that extracts communication-dependent parts from the data. It accepts a parseable data format as input, and the output is a list of communication-dependent functions.
[0598] Step 3:
[0599] The terminal is configured to operate offline by modifying identified communication-dependent functions. Specifically, it performs code changes that replace communication functions with local processes. It takes a list of communication-dependent functions as input and generates a set of modified code as output.
[0600] Step 4:
[0601] The device verifies the modified code and performs operational checks in an offline environment. It runs test cases to ensure code integrity and analyzes the results. The input is the modified code, and the output is the operational check result.
[0602] Step 5:
[0603] The device uses a device that identifies emotional states to analyze the user's emotions in real time. Camera video and audio data are input into an emotion analysis algorithm to identify the emotional state. The input is the user's video and audio data, and the output is the user's emotional state.
[0604] Step 6:
[0605] The device recommends items based on the user's emotional state. It generates a recommendation list by matching product data related to the areas the user has shown interest in with a generated AI model. The input is the user's emotional state and a product database, and the output is a list of recommended items.
[0606] Step 7:
[0607] The terminal presents the generated recommendation list to the user. It provides the user with relevant product information through the display and audio output. The input is a list of recommended items, and the output is the information presented to the user.
[0608] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0609] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0610] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[0611] [Fourth Embodiment]
[0612] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0613] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0614] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0615] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0616] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0617] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0618] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0619] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0620] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0621] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0622] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0623] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0624] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0625] This invention provides a system that makes online games that are scheduled to end service or have already ended playable again in an offline environment. This system uses a process that automatically takes server-dependent functions offline based on the online game's APK file.
[0626] First, the server receives an APK file from the game development company. This file contains the program code and related resources necessary to run the online game.
[0627] Next, the device analyzes the received APK file to identify server-dependent functions. This process identifies network-dependent elements, such as functions that require server access or external API calls.
[0628] Subsequently, the device converts its code to adapt server-dependent functions to an offline environment. Specifically, it replaces database access with local storage operations and performs emulation as needed. This allows data to be processed within the device, enabling the game to progress even without an internet connection.
[0629] Next, the device will remove features that are not needed online. Examples include billing systems and chat functions. This will streamline the device, making it suitable for offline use.
[0630] In the final stage, the terminal verifies the operation of the refined game code. This testing process confirms that the modified code runs smoothly and that the game elements function correctly. Once testing is complete, the server packages the offline version of the game and makes it available for users to download.
[0631] Users can continue to enjoy the game even after the online service ends by downloading and installing the final packaged offline version of the game on their device. For example, one RPG game is offered as an offline version by removing the multiplayer cooperative elements and redesigning it to allow players to progress through the story independently. In this way, users can continue the gaming experience they enjoyed in the past.
[0632] The following describes the processing flow.
[0633] Step 1:
[0634] The server receives the APK file provided by the game development company. Based on this file, the server extracts the code and resources of the online game and makes them available for analysis.
[0635] Step 2:
[0636] The device analyzes the APK file obtained from the server. Static analysis tools are used to identify server-dependent functions in the code and understand how they contribute to the game's operation.
[0637] Step 3:
[0638] The device replaces identified server-dependent functions with logic that can operate in an offline environment. For example, it might change database access to local storage operations to enable data management without using a network.
[0639] Step 4:
[0640] The device will have online-only features removed or disabled if necessary. Specifically, billing systems and communication features such as chat will be removed, clearing elements that are unnecessary for offline gameplay.
[0641] Step 5:
[0642] The terminal tests the entire code of the converted game. Using emulators and test terminals, it is confirmed that players can enjoy the game smoothly in an offline environment. Here, the focus is on checking that the game does not freeze and that the newly implemented logic works as intended.
[0643] Step 6:
[0644] The server packages the verified game code and prepares it for distribution on platforms accessible to users. Users can download, install, and play the offline version of the game from the designated website or app store.
[0645] (Example 1)
[0646] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0647] When an online game service ends, players lose the gaming experience they've built up over time. This problem, especially for games played for extended periods, leads to a loss of player satisfaction and emotional investment. To address this challenge, there is a need for ways to continue enjoying games even after the online service has ended.
[0648] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0649] In this invention, the server includes means for receiving electronic files of online games, means for identifying network-dependent functions, means for converting instructions to operate in an offline environment, means for removing unnecessary online functions, means for checking the converted instructions and verifying their operation, and means for packaging the checked instructions and making them available. This allows players to continue enjoying the game offline even after the online service ends.
[0650] An "information processing device" is a device that has the function of inputting, outputting, and manipulating data, and is used to receive and analyze electronic files from online games.
[0651] An "electronic file" is a collection of information stored in digital format, and it is data that includes program code and resources that make up an online game.
[0652] "Network-dependent functions" are functions that operate via online services and require server access or external API calls.
[0653] "Instruction conversion" is the process of modifying program code to allow specific network-dependent functions to operate in an offline environment.
[0654] "Unnecessary online features" are features that are not needed for offline gameplay but are designed with online operation in mind.
[0655] "Inspection" refers to the testing process to verify that converted instructions or deleted functions work as intended.
[0656] "Packaging" refers to the process of compiling inspection orders into a format that can be redistributed.
[0657] This invention relates to a system that allows online games to be played offline even after the online game has ended. This system is configured and implemented as follows.
[0658] First, the server receives the electronic files of the online game from the game developer. These electronic files contain the program code and resources that make up the game. The server then transfers the received electronic files to the terminal.
[0659] Next, the terminal analyzes the received electronic files to identify functions that operate over the network, i.e., network-dependent functions. This process uses analysis tools to extract program parts that require server access and external API calls.
[0660] Subsequently, the terminal translates the commands for identified network-dependent functions to work even in an offline environment. This translation includes techniques such as replacing data management device access with internal storage access. For example, database queries are changed to read and write operations on local storage. Additionally, server functions are mimicked within the terminal using emulation techniques as needed.
[0661] Next, the device removes features that are not needed in an offline environment. This process removes features such as chat functions and billing systems to lighten the load on the game.
[0662] Finally, the server packages the offline version of the game that has completed testing and makes it available for users to download.
[0663] Users download the new offline version of the game from the server and install it on their devices. This allows users to continue enjoying the game world even after the online service ends.
[0664] As a concrete example, in one role-playing game, the multiplayer elements are removed and the game is redesigned to allow players to progress through the story independently, and then offered as an offline version.
[0665] An example of a prompt message might be: "Please explain the procedure for converting an online game's digital files to an offline version. Please provide specific examples of how to identify network-dependent functions and how to convert the commands."
[0666] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0667] Step 1:
[0668] The server receives electronic files of online games from the developer. It receives the APK file provided by the game developer as input and performs necessary security checks. As a result, it obtains electronic files containing the data and resources necessary for the application to function.
[0669] Step 2:
[0670] The terminal analyzes the received electronic files. Based on the electronic files obtained as input, it performs a disassembly of the compiled code to identify network-dependent functions. Specifically, it uses a tool to extract server access and external API call sections, listing specific files and code parts. The output is a list of identified server-dependent parts.
[0671] Step 3:
[0672] The terminal translates commands to adapt identified network-dependent functions to an offline environment. The input is the code for the dependent function, based on a specific list. This code is analyzed, and the translation is performed using techniques such as changing database access to local storage operations. In specific operations, for example, server queries are replaced with queries to a local database. The output is the translated program code.
[0673] Step 4:
[0674] The device removes unnecessary features in an offline environment. Using the converted program code as input, it removes unnecessary online features such as chat functions and billing systems from the code. Specifically, it removes unnecessary UI and backend logic by editing the source code. The output is further lightweight program code with unnecessary features removed.
[0675] Step 5:
[0676] The terminal tests the converted instructions to verify their operation. Based on the program code after feature removal, it performs unit and integration tests. Specific actions include running the game to confirm that all functions are working correctly. The output is the verification result of a properly functioning offline version of the game.
[0677] Step 6:
[0678] The server packages tested game code. It receives a tested offline game code as input and generates a new APK file. Specific operations include secure package creation, including signing. The output is a downloadable offline game.
[0679] Step 7:
[0680] The user downloads and installs the offline version of the game from the server. They use a download link provided by the server as input to obtain the APK file. The specific operation involves the process of installing the game on the device following the normal application installation procedure. The output is the installed offline version of the game.
[0681] (Application Example 1)
[0682] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0683] There is a need for technology that can make discontinued online content usable again without significant network reliance. Reviving content that users previously enjoyed, without relying on an online environment, is essential for the continued efficient use of content resources.
[0684] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0685] In this invention, the server includes means for receiving digital files of online content, means for analyzing the digital files to identify communication-dependent functions, and means for rewriting the code for the communication-dependent functions to operate in a distributed environment. This makes it possible to make content usable again in an offline environment after the service has ended.
[0686] "Online content" refers to a collection of information and digital media that users can access via the internet.
[0687] A "digital file" is a collection of information handled on a computer system, stored in a binary data format.
[0688] "Communication-dependent functions" refer to functions and services that are executed through external servers or network connections.
[0689] A "distributed environment" is a method of building a system that does not depend on a central authority by distributing data and processes across multiple terminals within a network.
[0690] "Rewriting code" refers to the act of modifying and restructuring source code in order to change the behavior or functionality of a program.
[0691] The system for realizing this invention consists of software that runs on the user's terminal and a system operated on the content provider's server. To obtain offline content, the user can first receive digital files of the content from the server via an application on their terminal. This process utilizes an existing internet connection and employs common data transfer protocols.
[0692] The server receives the digital file and analyzes the data to identify communication-dependent functions. This analysis uses APKTool and other decompilation tools to uncover online functions. For example, external API calls and server access may be detected.
[0693] Subsequently, the server rewrites the identified communication-dependent functions into a form that can operate within the terminal. In this conversion process, database access is converted to local storage access, and SQLite is used. An emulator system is also introduced to reproduce software interface calls within the terminal. In particular, the operation of the modified software is verified using JUnit, and network-dependent behavior can be simulated using a selected simulator.
[0694] Once this conversion process is complete, the server packages the final offline version of the content, making it available for download to users. Users can then install the packaged offline content on their devices and use it without needing a network connection.
[0695] As a concrete example, using the APK file of an old RPG game, it is possible to create an environment where users can enjoy the story offline even after the online service has ended on the application. Through a prompt such as, "I want to make an old RPG game playable offline again. Detect and remove server-dependent functions from the APK file and explain the process of making it playable offline," the generative AI model can suggest further optimizations and implementations.
[0696] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0697] Step 1:
[0698] The user launches the application and uploads the digital files of the content they want to make offline to the server. The input data is digital files, and the user selects the target files from the file system on their device using the file selection function. The server receives the digital files as output.
[0699] Step 2:
[0700] The server analyzes the received digital files to identify communication-dependent functions. Specifically, a decompilation tool is used to extract the parts involving data communication with the server. During this process, API calls are detected and recorded, and data identifying communication-dependent functions is generated as output.
[0701] Step 3:
[0702] The server rewrites the code for identified communication-dependent functions to make them work offline. The input is the specific data for the communication-dependent function, which is converted into an emulationable format using code conversion software. The output is code converted to local database access.
[0703] Step 4:
[0704] The server verifies the rewritten code. Specifically, it runs JUnit tests to check if the code works as intended. The input is the rewritten code, and the output is the test results.
[0705] Step 5:
[0706] The server packages the approved code, making it available for download to the user. The packaging process converts the validated code (input data) into a format that can be installed on the user's device. The output is a downloadable package file.
[0707] Step 6:
[0708] The user installs the packaged content on their device and starts operating in an offline environment. The input is a package file, and after the installation process, the output is an application that can operate offline on the device.
[0709] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0710] This invention provides a system that incorporates an emotion engine to recognize user emotions in the offline version of an online game. This system allows a discontinued online game to run in an offline environment using the game's data files, and provides an interactive game experience that responds to the user's emotions.
[0711] The server first receives the APK file provided by the game development company and analyzes it to identify server-dependent functions. This allows the device to find the server access parts necessary to make online functions available offline. The device then replaces the identified server-dependent functions with logic that can be handled offline. In this system, database access is converted to local storage, and API calls are handled by an emulator that mimics them within the device.
[0712] Furthermore, the device will remove unnecessary online features and modify the code to ensure a smooth offline gaming experience for players. After the game's functionality is confirmed, the server will package the offline version of the game and distribute it to users for easy access.
[0713] This system incorporates an emotion engine that can recognize the user's emotions in real time. The emotion engine analyzes the user's voice tone, facial expressions, and in-game behavior patterns to evaluate the user's stress and satisfaction levels. Based on the feedback from the emotion engine, the device adjusts the game difficulty and provides the user with advice on their play style.
[0714] In a specific example, in a puzzle game, if the system detects that the user is feeling frustrated, the emotion engine automatically reduces the game's difficulty and increases hints to alleviate stress. Conversely, if the user is overly satisfied, the system adjusts the difficulty to increase the challenge. Through these dynamic adjustments, users can enjoy a more personalized gaming experience.
[0715] The following describes the processing flow.
[0716] Step 1:
[0717] The server receives the APK file provided by the game development company. At this time, the server decompiles the received file into an analyzable format and prepares to extract various resources and source code.
[0718] Step 2:
[0719] The device retrieves the parsed APK file provided by the server and identifies server-dependent functions within it. This identification process uses static analysis tools to detect API calls and database connection code configured for server access.
[0720] Step 3:
[0721] The device will convert server-dependent functions to be offline-compatible. Specifically, it will add code to emulate API calls and replace database operations on the server with operations on local storage.
[0722] Step 4:
[0723] The device will remove unnecessary online features from the game. This includes removing elements that do not function in an offline environment, such as billing systems, real-time communication features, and online rankings.
[0724] Step 5:
[0725] The terminal will verify the operation of the rewritten code. Test benches and emulators will be used to verify that the game works correctly even in an offline environment.
[0726] Step 6:
[0727] The server packages the game code after testing is complete. This package is then prepared in a format that users can download and install offline.
[0728] Step 7:
[0729] The user installs and launches a game incorporating an emotion engine on their device. The emotion engine records and analyzes the user's state through the microphone and camera, recognizing emotions in real time.
[0730] Step 8:
[0731] The device dynamically adjusts the game's behavior based on the user's emotional data. For example, if the user is feeling frustrated, the device may lower the game's difficulty or increase the number of helpful hints.
[0732] Step 9:
[0733] Users continuously enjoy a customized gaming experience powered by the emotion engine. The game's difficulty and feedback are adaptively adjusted based on the user's emotional changes, optimizing the gameplay experience.
[0734] (Example 2)
[0735] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0736] The challenges include ensuring that users can continue to experience online competitions even after the service ends, and providing interactive gameplay experiences that respond to users' emotions. Another challenge is to transition from traditional online-dependent game designs to programs that can function smoothly in offline environments.
[0737] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0738] In this invention, the server includes means for receiving a dataset of online competitions, means for analyzing the dataset to identify network-dependent functions, and means for replacing the programs to operate the network-dependent functions in a non-online environment. This allows users to experience online competitions in an offline environment and enables interactive game adjustments based on user sentiment analysis.
[0739] "Online competition" refers to electronic games in which participants compete against each other via the internet.
[0740] A "dataset" is an aggregate of information that makes up an online competition, and includes program code, media files, and other similar files.
[0741] "Network-dependent features" is a general term for actions in online competitions that require a network connection.
[0742] A "non-online environment" refers to a system environment that assumes the absence of a network connection.
[0743] "Program replacement" refers to the operation of converting network-dependent functions into a form that can operate in a non-online environment.
[0744] "Emotion analysis" refers to a technology that evaluates a user's psychological state based on their voice and facial expressions.
[0745] "Interactive gameplay experience" refers to a method of providing a game experience that dynamically changes in response to the user's actions and emotions.
[0746] This invention receives a dataset of online competitions, converts network-dependent functions into a form that can operate offline, analyzes user emotions in real time, and provides an interactive gaming experience.
[0747] The server receives a dataset from the competition provider. This dataset may include the game's program code, media files, and network-dependent features. The received dataset is analyzed to identify network-dependent features. Software such as reverse engineering tools can be used for this analysis.
[0748] The terminal performs the task of converting network-dependent functions identified by the server into programs that can run in an offline environment. This conversion uses techniques such as replacing data repository access with access to internal storage devices like SQLite, and an emulator to simulate API calls. The emulator has the function of replicating API requests and responses within the terminal.
[0749] Furthermore, the device uses its camera and microphone to capture the user's voice and facial expressions in order to analyze the user's emotions. This makes it possible to evaluate the user's psychological state in real time. For example, if the user shows signs of frustration, the game difficulty will be immediately adjusted to alleviate stress.
[0750] For example, in a puzzle game, if the game detects that the user is frequently getting stuck, it can increase the number of hints provided and moderately lower the difficulty level. This kind of flexible adjustment provides users with a personalized gaming experience.
[0751] An example of a prompt message is, "If a user experiences stress while playing a puzzle game, how would you adjust the game difficulty?" By inputting such a message into a generation AI model, appropriate feedback can be obtained depending on the situation.
[0752] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0753] Step 1:
[0754] The server receives a dataset of online competitions from the competition provider. This input dataset includes program code and media files, and incorporates network-dependent functions necessary for online operation. The server analyzes the dataset and identifies the network-dependent functions. The analysis results in a list of identified network-dependent APIs.
[0755] Step 2:
[0756] The server sends information to the terminal to convert identified network-dependent functions into a form that can operate in an offline environment. The terminal uses this information to convert data repository access to internal storage access. It also uses an emulator to simulate API calls, internally simulating API requests and responses. As a result, the converted program code is output.
[0757] Step 3:
[0758] The terminal removes unnecessary online features from the converted program code. Specifically, it removes online multiplayer and ranking features and modifies the code to be dedicated to solo play mode. After the modification process, the terminal outputs code that allows the user to play the game normally.
[0759] Step 4:
[0760] The device will then run the game after the above modifications have been made to verify its operation. A test play will be performed to confirm that it works without problems even offline. If the test is successful, the game code confirming operation will be output.
[0761] Step 5:
[0762] The server receives the verified game code and packages it into a format usable by users. This involves compilation and the creation of the user installer. Finally, a distributable game installer package is output.
[0763] Step 6:
[0764] The device uses the user's camera and microphone to acquire voice and facial expression data for sentiment analysis. This data is input into a sentiment analysis algorithm, which then outputs an evaluation result regarding the user's psychological state.
[0765] Step 7:
[0766] The device dynamically adjusts the game content based on the user's emotional analysis. Specifically, if it determines that the user is experiencing stress, it lowers the game difficulty and increases hints. Conversely, if the user is satisfied, it increases the difficulty. This adjustment provides the user with an optimized gaming experience.
[0767] (Application Example 2)
[0768] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[0769] A challenge in modern shopping experiences is the difficulty in providing personalized offerings tailored to customer preferences. This is especially true in brick-and-mortar stores, where real-time product recommendations that reflect customer emotions and preferences are challenging. This project aims to improve this situation and enable customers to have a more comfortable and engaging shopping experience.
[0770] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0771] In this invention, the server includes means for receiving the data structure of online content, means for analyzing the data structure to identify communication-dependent functions, and means for incorporating a device for identifying the user's emotional state. This makes it possible to recommend items based on the customer's emotional state and provide a real-time, personalized shopping experience.
[0772] "Online content" refers to information and services in digital format that are distributed via the internet.
[0773] "Data structure" refers to a way of organizing and managing information so that it can be accessed and modified efficiently.
[0774] A "communication-dependent function" refers to a function that operates in reliance on a specific means of communication.
[0775] "Code" refers to a set of instructions that make up software or a program.
[0776] "Modification" refers to changing or modifying something existing to make it new.
[0777] "Verification" refers to tests and checks conducted to confirm accuracy, completeness, and effectiveness.
[0778] "Operational verification" refers to the process of confirming whether a system or device functions as expected.
[0779] "Integration" refers to the process of combining individual elements or functions into a single entity.
[0780] "Emotional state" refers to the mental and emotional reactions that an individual experiences under specific circumstances.
[0781] The term "device" refers to a machine or equipment that has a specific function or purpose.
[0782] "Goods" refers to tangible items or merchandise.
[0783] "Recommendation" refers to selecting and recommending a particular subject based on specific objectives or criteria.
[0784] A "simulation system" refers to a system used to reproduce specific environments and conditions and perform simulations.
[0785] To implement this invention, it is necessary for a server to receive the data structure of online content and analyze it to identify communication-dependent functions. The identified functions can be operated in an offline environment using modified code. Specifically, a device that identifies emotional states is incorporated, and product recommendations are made in real time based on the user's emotions.
[0786] This system utilizes hardware such as terminals equipped with cameras and microphones, and software such as OpenCV and audio processing libraries for image and audio analysis. Emotions are analyzed by EmotionEngine based on the input and output data, and recommendations are made for items that the user has shown interest in. This process makes the in-store shopping experience more personalized and comfortable.
[0787] As a concrete example, when a user is exploring a store using smart glasses, their interests are detected from their facial expressions and voice, and information such as "Check out our recommended products" is visually presented. This allows users to effectively find items that suit their preferences, improving the overall user experience in the store.
[0788] An example of a prompt to input into a generative AI model is: "When a customer shows interest in a new fashion item, generate an algorithm for an application that analyzes the customer's emotions and presents related products and discount information."
[0789] This configuration allows us to provide the personalized shopping experience that modern consumers demand.
[0790] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0791] Step 1:
[0792] The server receives the data structure of online content. Specifically, it downloads information in digital format via the internet and converts it into a parseable format. The input is the original data of the online content, and the output is a parseable data format.
[0793] Step 2:
[0794] The server parses the received data structure and identifies communication-dependent functions. The analysis uses an algorithm that extracts communication-dependent parts from the data. It accepts a parseable data format as input, and the output is a list of communication-dependent functions.
[0795] Step 3:
[0796] The terminal is configured to operate offline by modifying identified communication-dependent functions. Specifically, it performs code changes that replace communication functions with local processes. It takes a list of communication-dependent functions as input and generates a set of modified code as output.
[0797] Step 4:
[0798] The device verifies the modified code and performs operational checks in an offline environment. It runs test cases to ensure code integrity and analyzes the results. The input is the modified code, and the output is the operational check result.
[0799] Step 5:
[0800] The device uses a device that identifies emotional states to analyze the user's emotions in real time. Camera video and audio data are input into an emotion analysis algorithm to identify the emotional state. The input is the user's video and audio data, and the output is the user's emotional state.
[0801] Step 6:
[0802] The device recommends items based on the user's emotional state. It generates a recommendation list by matching product data related to the areas the user has shown interest in with a generated AI model. The input is the user's emotional state and a product database, and the output is a list of recommended items.
[0803] Step 7:
[0804] The terminal presents the generated recommendation list to the user. It provides the user with relevant product information through the display and audio output. The input is a list of recommended items, and the output is the information presented to the user.
[0805] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0806] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0807] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[0808] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0809] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0810] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0811] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0812] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0813] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0814] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0815] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[0816] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[0817] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0818] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0819] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0820] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0821] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0822] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0823] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0824] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0825] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0826] The following is further disclosed regarding the embodiments described above.
[0827] (Claim 1)
[0828] A means of receiving data files for online games,
[0829] A means for analyzing the aforementioned data file to identify server-dependent functions,
[0830] A means for rewriting the code so that the aforementioned server-dependent function can operate in an offline environment,
[0831] A means to remove unnecessary online features,
[0832] A means for testing the rewritten code and verifying its operation,
[0833] A means for packaging the code after the aforementioned tests and making it distributable,
[0834] A system that includes this.
[0835] (Claim 2)
[0836] The system according to claim 1, characterized in that the code rewriting means converts database access to local storage access.
[0837] (Claim 3)
[0838] The system according to claim 1, characterized in that the specified means incorporates an emulator system that extracts API calls and mimics them within the device.
[0839] "Example 1"
[0840] (Claim 1)
[0841] An information processing device provides a means for receiving electronic files of online games,
[0842] A means for analyzing the aforementioned electronic file to identify network-dependent functions,
[0843] Means for converting instructions so that the aforementioned network-dependent function can operate in an offline environment,
[0844] Means to remove unnecessary online features,
[0845] A means for checking the converted instruction and verifying its operation,
[0846] Means for packaging and providing the order after the inspection,
[0847] A system that includes this.
[0848] (Claim 2)
[0849] The system according to claim 1, characterized in that the instruction conversion means converts data management device access to internal storage device access.
[0850] (Claim 3)
[0851] The system according to claim 1, characterized in that the specified means incorporates a simulation device that extracts and simulates application program interface calls within the device.
[0852] "Application Example 1"
[0853] (Claim 1)
[0854] Means of receiving digital files of online content,
[0855] A means for analyzing the aforementioned digital file to identify communication-dependent functions,
[0856] Means for rewriting the code so that the aforementioned communication-dependent function operates in a distributed environment,
[0857] A means to lighten the load of unnecessary online features,
[0858] A means for verifying the rewritten code and confirming its operation,
[0859] A means to integrate and provide the code after the aforementioned verification,
[0860] A system that includes this.
[0861] (Claim 2)
[0862] The system according to claim 1, characterized in that the code rewriting means converts database operations into rapid storage area operations.
[0863] (Claim 3)
[0864] The system according to claim 1, characterized in that the specified means incorporates a simulated system that extracts and reproduces software interface calls within the terminal.
[0865] "Example 2 of combining an emotion engine"
[0866] (Claim 1)
[0867] A means of receiving online competition datasets,
[0868] A means for analyzing the aforementioned dataset to identify network-dependent functions,
[0869] Means for replacing the program so that the aforementioned network-dependent function operates in a non-online environment,
[0870] Means to remove unnecessary online features,
[0871] A means for testing the replaced program and confirming normal operation,
[0872] A means for packaging and distributing the program after the aforementioned test,
[0873] A means of analyzing user emotions and adjusting the interactive game experience,
[0874] A system that includes this.
[0875] (Claim 2)
[0876] The system according to claim 1, characterized in that the program replacement means converts data repository access to internal storage device access.
[0877] (Claim 3)
[0878] The system according to claim 1, characterized in that the specified means incorporates a simulated system that extracts and simulates application programming interface calls within the computer device.
[0879] "Application example 2 when combining with an emotional engine"
[0880] (Claim 1)
[0881] A means of receiving the data structure of online content,
[0882] A means for analyzing the aforementioned data structure to identify communication-dependent functions,
[0883] Means for modifying the code so that the aforementioned communication-dependent function can operate in an offline environment,
[0884] Means for removing unnecessary communication functions,
[0885] A means for verifying the modified code and confirming its operation,
[0886] A means of integrating and making available the code after the aforementioned verification,
[0887] A means for incorporating a device that identifies the user's emotional state,
[0888] A means for making recommendations for items based on the aforementioned emotional state,
[0889] A system that includes this.
[0890] (Claim 2)
[0891] The system according to claim 1, characterized in that the code modification means converts data management access to individual storage area access.
[0892] (Claim 3)
[0893] The system according to claim 1, characterized in that the specified means incorporates a simulated system that extracts and imitates function calls within the device. [Explanation of Symbols]
[0894] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of receiving data files for online games, A means for analyzing the aforementioned data file to identify server-dependent functions, A means for rewriting the code so that the aforementioned server-dependent function can operate in an offline environment, A means to remove unnecessary online features, A means for testing the rewritten code and verifying its operation, A means for packaging the code after the aforementioned tests and making it distributable, A system that includes this.
2. The system according to claim 1, characterized in that the code rewriting means converts database access to local storage access.
3. The system according to claim 1, characterized in that the specified means incorporates an emulator system that extracts API calls and mimics them within the device.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A