WO2021084101A1 - Systems and methods for replacing a theme of a virtual environment - Google Patents

Systems and methods for replacing a theme of a virtual environment Download PDF

Info

Publication number
WO2021084101A1
WO2021084101A1 PCT/EP2020/080582 EP2020080582W WO2021084101A1 WO 2021084101 A1 WO2021084101 A1 WO 2021084101A1 EP 2020080582 W EP2020080582 W EP 2020080582W WO 2021084101 A1 WO2021084101 A1 WO 2021084101A1
Authority
WO
WIPO (PCT)
Prior art keywords
theme
multimedia device
virtual environment
server
status
Prior art date
Application number
PCT/EP2020/080582
Other languages
French (fr)
Inventor
Nikolaos Ioannou
Original Assignee
Inplace Ads Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inplace Ads Limited filed Critical Inplace Ads Limited
Publication of WO2021084101A1 publication Critical patent/WO2021084101A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Definitions

  • the present disclosure is directed to replacing a theme of a virtual environment.
  • All applications and games, irrespective of platform, have an audio/visual identity that is called a theme.
  • dynamic theming explicitly controlled by a user has been supported for a number of years. For example, a user decides to theme their browser with a different theme that they download from an on-demand server. The target theme is manually selected by the user and downloaded as a single file when the user is online. When the download is complete the single file is used to skin the application with the theme selected by the user. Dynamic theming, with arbitrary themes, is not supported in games. Generally, the theme, or more rarely themes, of a game are predefined at compilation time.
  • modding One example of adding themes to a game is by enthusiasts that have the technical capability necessary to skin a game.
  • the process employed by enthusiasts is known as modding.
  • the goal of modding is to create a new version of the game with a different skin but based on the original game artefacts.
  • the developer has to make this decision at the time of coding the game.
  • Specific code must be written for each asset where the theme of the asset might be changed. If code to allow the theme of an asset to be changeable is not written and associated with the asset at the time of development the theme cannot then be changed later.
  • a theme comprises all of the assets that make up the audio and visual identity of a virtual environment and the way in which such assets are assembled in space and time and displayed to a user through a multimedia device.
  • a multimedia device may be a mobile phone, tablet computer, laptop or desktop computer, television, games console or smart watch, for example.
  • the assets of a theme typically take the form of multimedia files, i.e. images, videos, audio files, textures, which combined define a theme bundle.
  • Each theme comprises a plurality of theme slots which describe respective aspects of theme.
  • theme slot examples include: i) a place in the code, or in a metadata file, that a specific color is set, a specific sound is played, a specific texture is set, a specific font family is set or a specific layout is set; ii) a sound clip; iii) a specific texture; iv) a font family; or v) a specific layout.
  • This list is non- exhaustive and is given by way of example only.
  • Each theme slot is assigned a transformation function and has a value attached.
  • the transformation function can be replacing a texture (image) on a sprite or can be changing a specific color range with another on an existing image of the theme.
  • the combination of all theme slots and transformation functions, associated with a specific theme define a theme descriptor.
  • the theme descriptor refers to the theme bundle to locate the assets required for its associated theme.
  • Each asset of the theme bundle is associated with a respective one or more theme slots.
  • the theme descriptor may also include other criteria for display or determining relevance such as when the theme should be displayed on a given day or over which duration (which could span multiple days or be the same period on more than one day). Such conditions may be determined automatically by a multimedia device such as by identifying when a user is commuting home and displaying the theme only during that time period.
  • the time period need not be at the same time every day and can be dynamically determined on a day to day basis.
  • An asset is an aspect of a virtual object such as an image file, audio file, text, font, video, pantone color or texture. This list is non-exhaustive and is given by way of example only. From a user’s perspective, the representation of an asset could be an image displayed on the screen of a multimedia device or a sound played from the speaker of such a device.
  • a virtual environment is a computer-generated interface that is executed on a multimedia device.
  • Examples of virtual environments include games, word processors, social media platforms, content streaming platforms, databases and learning management systems. This list is non-exhaustive and is given by way of example only.
  • the virtual environment is executed on top of a container.
  • the container sits between a virtual environment and underlying hardware of a multimedia device.
  • the container offers a library that facilitates access to the hardware resources of the multimedia device. Examples of a container include operating systems and web browsers.
  • all virtual environments are executed on top of a container.
  • the container drives the hardware used by a virtual environment through one or more application programming interfaces (APIs).
  • APIs application programming interfaces
  • a multimedia device can be any electronic device that has network connectivity which can be permanently or non-permanently tethered to a power and/or communications source.
  • Examples of multimedia devices include: smart phones, tablets, laptop computers, desktop computers, smart watches and portable games consoles. This list is non-exhaustive and is given by way of example only.
  • a virtual environment is installed on top of a container of a multimedia device by first downloading an installation package from an installation source.
  • the installation source could be any application store, such as the App Store for Apple ® devices, Google ® Play for Android devices, a software installation disc, a web site or a USB flash drive, for example.
  • the installation package is then executed on the container to generate the virtual environment thereon.
  • the virtual environment is presented to a user through a display, speakers and tactile output of the multimedia device.
  • a virtual environment is first installed on a multimedia device it has a default theme.
  • the default theme comprises all assets that are necessary to give the virtual environment the particular look and feel that was intended by the virtual environment developer.
  • aspects and embodiments of the invention are presented herein for dynamically changing the look and feel of a virtual environment according to particular criteria.
  • tools, methods and systems are presented for extracting theme information from the virtual environment and replacing such information with pointers to a software library, which can be in the form of an SDK.
  • the software library requests new theme information from a server and processes instructions to replace assets of the virtual environment with new assets associated with a replacement theme. This is achieved by considering the artefacts of a virtual environment in a way that is agnostic of the specifics of the virtual environment.
  • a library of all artefacts in the virtual environment is added to the development platform, i.e., Unity, and each artefact can be placed to change the overall theme of the virtual environment through a replace function.
  • a process allows background graphics, text, images, video and the appearance of virtual environment objects to be replaced using a simple process.
  • the present invention would allow the appearance of the main game characters, i.e., the birds and pigs, to be dynamically updated in accordance with a new theme.
  • the sound effects of the game can be changed along with any other variable artefact.
  • games can be updated to implement dynamic advertising campaigns based on user preferences or user browsing history. The longevity of play of certain games may also be increased by allowing a user to dynamically update the look and feel of the game.
  • An aspect of the invention provides a method for replacing a theme of a virtual environment, the method comprising: receiving a notification at a multimedia device to retrieve one or more themes from a server; determining a current status of the multimedia device; in response to determining the current status of the multimedia device: retrieving the one or more replacement themes from the server if the status of the multimedia device is in accordance with one or more predetermined criteria; and re-scheduling until a further notification is received at the multimedia device or terminating retrieval of the one or more replacement themes from the server if the status of the multimedia device is not in accordance with the one or more predetermined criteria.
  • a theme of a virtual environment can comprise several multimedia assets that may have large file sizes. Downloading large files is resource intensive and can result in excess data fees being charged if the multimedia device is subject to a data cap, increased battery usage, reduced performance and download failure if network connection is lost. It is therefore desirable to avoid lengthy and data heavy downloads when the multimedia device does not have an optimum status for such a download.
  • This aspect of the invention thus determines a current status of the multimedia device prior to sending a request to a server to retrieve one or more themes for a virtual environment. This way, the negative implications referred to above have little impact on usage of the multimedia device.
  • the method further comprises displaying assets on the multimedia device to mask the virtual environment; replacing the theme of the virtual environment with a theme retrieved from the server; and displaying the retrieved theme within the virtual environment.
  • multimedia content can be displayed on the screen of a multimedia device to mask the virtual environment whilst this process is undertaken.
  • multimedia content might include an advertising video, an image, a series of images in the form of a presentation or a blank or solidly colored screen.
  • the notification is received at the multimedia device following occurrence of a trigger event that automatically generates the notification.
  • trigger events include: pre-scheduled events that occur at the same time each day, a pre-determined user action, i.e. loading a virtual environment, a pre-determined system event, i.e. completion of downloading the virtual environment to a multimedia device or completion of updating the virtual environment, an event within the virtual environment, i.e. the user completes a level,
  • a pre-determined user action i.e. loading a virtual environment
  • a pre-determined system event i.e. completion of downloading the virtual environment to a multimedia device or completion of updating the virtual environment
  • an event within the virtual environment i.e. the user completes a level
  • the user is not required to manually select a theme for download or initiate the download process.
  • the user may be prompted to accept a new theme before it is downloaded or implemented.
  • the virtual environment facilitates updating of a theme upon occurrence of a trigger event which may be an event occurring within the virtual environment itself or a change in status of the multimedia device on which it is running. For example, in a game, when a user completes a level there is typically a period of at least several seconds where the user’s score is displayed and s/he is given the opportunity to move to the next level, repeat the level or exit the game. The act of completing the level may trigger a process by which non-volatile memory of the multimedia device or a remote storage location is searched for an updated theme according to one or more user preferences and/or predetermined parameters.
  • the next level displays the theme displayed in the immediately preceding level or any such pre-determined theme that is already associated with that level. If a new theme does exist, a relevance query assesses the theme against the one or more user preferences and/or predetermined parameters. If the theme is determined to be relevant and is available to the virtual environment it will replace an existing theme in the virtual environment.
  • trigger events include: the multimedia device having a WiFi internet connection, reaching a certain time each day, entering a particular geographic location, reaching a certain point in a game, the game publisher pushing a particular theme to users of the game, for example.
  • the trigger event initiates a status check of the multimedia device or container within which the virtual environment is executed.
  • the status check determines parameters such as battery level, internet connection, data download speed, user preferences, device location for example.
  • the results of the status check are compared against pre-determined criteria stored either on the multimedia device or on a remote server. If one or more parameters is determined during the status check not to meet the predetermined criteria, then download of new virtual elements is either stopped or postponed until such a time that the predetermined criteria are met. In one example, if the change of the state of the device is not changing for a long period of time, then a different theme descriptor, that requires less elements might be chosen.
  • a new theme descriptor can be downloaded. That new theme descriptor could omit some assets or chose a different transformation function for others - e.g. change the color of an existing image, instead of downloading a new one.
  • the trigger event initiates comparison of one or more virtual elements with relevance criteria.
  • Each theme comprises a plurality of virtual assets that are grouped by a theme descriptor.
  • each of the theme descriptor and theme bundle may be split into core and non-core fragments.
  • a theme asset manager handles downloading of theme descriptors and theme bundles.
  • the virtual asset manager can handle downloading of multiple themes from the server at the same time.
  • Each theme is assigned a state, i.e. waiting for more fragments or ready to be displayed.
  • As theme assets are downloaded to the multimedia device, they are grouped into a relevant theme bundle. It will be appreciated that a single theme asset may be relevant to more than one theme.
  • each theme may be assigned a priority, or ranking, to determine the order in which themes are displayed on the multimedia device.
  • the priority, or ranking is assigned at the server, but it can be sent in the form of criteria. For example prioritize themes that were downloaded last, or themes that have specific metadata attached. As themes are downloaded to the multimedia device, the order in which themes are displayed continues to be updated dynamically based on priority, or ranking, and other factors such as download date and user preferences.
  • the priority, or ranking also dictates the order in which themes are downloaded from the server to the multimedia device.
  • whether or not to request a new theme is determined at the multimedia device in accordance with the status check. If one or more parameters do not meet the predetermined criteria, or if the server is not reachable, the multimedia device re-schedules making a call to the server and download of new theme fragments according to a theme is delayed.
  • the multimedia device has a low battery level, i.e. less than 15%, and it is determined that downloading assets according to a new theme would not be completed before the battery level reaches a critical level, i.e. 5%.
  • the method further comprises requesting a theme order from the server if the status of the multimedia device is in accordance with the pre-determined criteria and determining a theme order at the multimedia device if the status of the multimedia device is not in accordance with the pre-determined criteria.
  • the method further comprises validating a theme downloaded to the multimedia device against pre-determined validation criteria and displaying the theme if the theme meets the pre-determined validation criteria and deleting the theme from the multimedia device if the theme, or any part thereof, does not meet the pre-determined validation criteria.
  • a mechanism is also supported that allows the server to send a signal to all the clients that an entire theme bundle version, or fragments of it, are no longer valid. In that case, either the entire theme bundle version, or the specific fragments are removed from the device and the corresponding theme descriptor reverts to the appropriate state. If the theme is actively displayed on a client device, then the device will immediately revert to displaying the default, or any other available theme, using the same mechanism for substituting themes.
  • the method further comprises collecting usage information and recording user interactions with the virtual environment and/or multimedia device during a time period that a theme is displayed by the virtual environment; sending such usage information and a summary of user interactions to the server if the status of the multimedia device meets the predetermined criteria; and storing the usage information and the summary of user interactions at the multimedia device if the status of the multimedia device does not meet the pre-determined criteria.
  • the usage information is going to be periodically pushed to the server, when the predetermined criteria are met.
  • FIG. 1 illustrates a generalized virtual environment in the form of a video game in accordance with which embodiments of the invention are described;
  • FIG. 2 illustrates one example of a multimedia device suitable for implementing a virtual environment
  • FIG. 3 illustrates a wireless connection between a multimedia device and a server
  • FIG. 4 illustrates example code for identifying an asset of a virtual environment
  • FIG. 5 illustrates a method of extracting theme elements from a compilation bundle of a virtual environment
  • FIG. 6 illustrates a method of extracting theme assets from a binary bundle of a virtual environment
  • FIG. 7 illustrates a method of extracting theme assets from a usage video that represents a virtual environment
  • FIG. 8 illustrates a method of extracting theme assets from a screenshot that represents a virtual environment
  • FIG. 9 illustrates a general process of extracting theme assets from a virtual environment and implementing a software library to enable generation of derived theme assets;
  • FIG. 10 illustrates a method of integrating a software library within build/compilation artefacts of a virtual environment;
  • FIG. 11 illustrates a method of integrating a software library with a binary bundle of a virtual environment
  • FIG. 12 illustrates an exemplary derived theme model
  • FIG. 13 illustrates a method of downloading a theme descriptor from a server to a multimedia device
  • FIG. 14 illustrates a method of re-ordering theme descriptors that have been downloaded to a multimedia device
  • FIG. 15 illustrates a method of identifying a bad version of a theme, asset or artefact
  • FIG. 16 illustrates a method of downloading theme bundles from a server to a multimedia device
  • FIG. 17 illustrates a method of displaying a derived theme in a virtual environment hosted by a multimedia device.
  • FIG. 18 illustrates an overall system architecture for replacing a theme of a virtual environment.
  • the following embodiments relate to automatically configuring multimedia devices to dynamically update one or more virtual assets in a virtual environment. More particularly, the disclosure relates to dynamically updating a collection of virtual assets grouped into a theme to change the look and feel of a virtual environment.
  • FIG. 1 depicts a virtual environment 100 as viewed from a user’s perspective on a multimedia device, i.e. a mobile phone or tablet computer.
  • the virtual environment 100 may be a video game (as is shown) or an application executed on the multimedia device.
  • the exemplary virtual environment 100 shown is a simple object manipulation game in which the user is instructed to align three or more moveable assets 102 into a line, or other configuration, on a game board 104 in order for those virtual assets 102 to be removed from the game board 104.
  • the game board 104 sits against a background 106 and adjacent to other assets such as a score board 108, power up icons 110 and menu options 112, for example.
  • Each of these features is a configurable asset that can be updated as part of a theme.
  • Each asset is assigned an object identifier and is linked to one or more themes by way of a theme descriptor.
  • the virtual environment 100 is displayed on a multimedia device 200.
  • a multimedia device 200 is shown schematically in figure 2 and comprises storage 202 a display 204, a processor 206 and communications means 208, i.e. Bluetooth ®, WiFi, or NFC.
  • the multimedia device 100 may be a smartphone, tablet, laptop, watch, television, for example.
  • the virtual environment 100 is stored in the storage 202 as part of an executable program that sits on top of a container such as an operating system or browser.
  • the virtual environment may be transferred thereto by downloading via communication means 208 from an “app” store, installing via CD or flash drive or wireless transfer from another multimedia device, for example.
  • the processor 206 causes a series of machine -readable instructions to be executed in order to launch and operate the virtual environment 100 on top of the container.
  • the virtual environment 100 is displayed on the display 204 and a user interacts with the virtual environment through the user interface to cause one or more assets displayed on the display 204 to move or change state.
  • the multimedia device 200 can be in a permanent, or non-permanent connection with a remote server 300 as illustrated in figure 3.
  • the server 300 is a computing device comprising storage 302, a processor 304 and communication means 308 for transferring data to/from the multimedia device 200. Such data transfer is affected by way of an application programming interface (API) residing on the network connected device 200 and associated with the virtual environment 100.
  • API application programming interface
  • the multimedia device 200 transmits a call for connection to the server 300 over a network such as the internet or local network. Data is sent between the multimedia device 200 and server 300 over the network through a network connection.
  • Each asset 102 represented by the virtual environment is identified by a unique asset identifier 114 as shown in figure 4.
  • the asset identifier 114 is embedded in the binary bundle and/or build bundle.
  • each asset related to the theme must be extracted. Examples of such assets include images, videos, sound clips, textures, fonts, layouts and colors, for example.
  • Figures 5 to 8 illustrate exemplary methods of extracting theme information from a virtual environment.
  • one method S400 of extracting theme information from a virtual environment 100 is to extract the relevant information from the compilation bundle of the virtual environment 100.
  • the compilation bundle typically consists of a set of code files, a set of metadata files, a set of graphic assets and a set of sound clips. This list is non-exhaustive, and the compilation bundle may include other artefacts.
  • the compilation bundle is read through either: i) direct inspection of the code and related build bundle files to identify relevant assets; or ii) through an application programming interface, i.e. as part of an integrated development environment.
  • the relevant theme assets and theme related information are identified.
  • relevant theme information examples include: timing function and configuration for an animation, setting a color on a panel, setting a font family, color or size.
  • relevant theme assets include: textures of sprites, or frames of an animation and sound clips.
  • relevant asset information i.e. color palette settings, font characteristics and layouts, are extracted from the code files and/or metadata files.
  • relevant theme and/or asset information that describes the relationship between a combination of assets is extracted from the code files and/or metadata files.
  • FIG. 6 shows another method S500 of extracting theme information from a virtual environment 100.
  • the binary bundle of the virtual environment as it relates to a specific container i.e. Android OS, iOS, Windows 10, is read.
  • the contents of the binary bundle are analyzed to identify specific sets of processor/container instructions and identity information that is relevant to changing the theme of the virtual environment 100. Such information includes: setting of colors, layout information, loading or playing sounds and loading or playing images.
  • This information is extracted at step S503.
  • the binary bundle is analyzed to identify any theme related assets such audio and visual files. These assets are extracted at step S505.
  • the binary bundle is analyzed to identify any information that relates to a combination of assets. This information might include layout or animation information and how different assets interact. This information is extracted at step S507.
  • FIG. 7 shows another method S600 of extracting theme information from a virtual environment 100.
  • the theme information is extracted directly from a usage video of a virtual environment 100, i.e. a video streamed from a content streaming platform such as YouTube ®.
  • a usage video of a virtual environment 100 i.e. a video streamed from a content streaming platform such as YouTube ®.
  • each frame of a usage video, or relevant portion of a usage video is identified and extracted.
  • a sound clip associated with each frame is identified and aligned therewith.
  • suitable techniques i.e. computer vision techniques, are used to identify artefacts within each frame or within a selection of frames.
  • An example of suitable computer vision technique is implementation of a blob detection algorithm. Examples of artefacts include sprites, continuous surfaces and blank spaces.
  • a plurality of frames is compared to identify constant artefacts and moving target artefacts that are not constant from frame to frame.
  • changes in sound within the usage video are identified and used as a guide to extract animation presented within the usage video.
  • background sound clips such as music are identified, by using periods of user inactivity in the clip and periodicity of the sound.
  • the extracted background music and changes in the frames are used to recognize and extract sound effects.
  • colors of each frame are extracted from the usage video and a prominence value is assigned to each color.
  • a prominence value is assigned to each sound and image asset presented in the usage video. The prominence value is useful for deciding which aspects of a theme are more characteristic of the audio/visual identity of the virtual environment.
  • the method S600 may be augmented with one or more complimentary extraction techniques such as those described in relation to figures 5, 6 and 8.
  • FIG. 8 shows another method S700 of extracting theme information from a virtual environment 100.
  • the theme information is extracted directly from one or more screen shots of a virtual environment 100.
  • the, or each, screenshot is identified and analyzed.
  • suitable techniques i.e. computer vision techniques, are used to identify artefacts within each screenshot or within a selection of screenshots.
  • An example of suitable computer vision technique is implementation of a blob detection algorithm. Examples of artefacts include sprites, continuous surfaces and blank spaces.
  • locations within the screenshot are identified for displayed artefacts.
  • colors of each screenshot are extracted therefrom, and a prominence value is assigned to each color.
  • step S704 asset prominence information is extracted from the screenshot.
  • two or more screenshots may be compared to facilitate recognition of artefacts within screenshots. Comparison of screenshots is beneficial in identifying artefacts that are common across two or more screenshots, for detecting moving sprites and static parts of the image.
  • the method S700 may be augmented with one or more complimentary extraction techniques such as those described in relation to figures 5 to 7.
  • Figure 9 shows the general process 800 of extracting theme information from a virtual environment 100 and replacing that information to import a derived theme into the virtual environment 100.
  • This is an automated or semiautomated process that includes extraction of theme information, as described above, by way of a theme extraction tool set 802.
  • the virtual environment 100 build bundle 804 and binary bundle 806 are augmented with SDK hooks 808 to enable communication with a software library interface.
  • a new virtual environment binary bundle 810 is compiled with an embedded software library to enable extracted theme elements to be replaced with derived theme elements.
  • the derived theme elements can then be applied to the virtual environment through an update to the virtual environment that is initiated at an application content platform 812.
  • the process following extraction of theme information is described further below.
  • Figures 10 and 11 show methods S900 and S1000 of integration a dynamic theming SDK into the code of a virtual environment. Changing themes within a virtual environment requires deep integration of a dynamic theming software library into the code of the virtual environment in all places where there is an instruction for presenting an asset in the virtual environment either visually or audibly. This instruction requires altering in order for assets of a derived theme to be presented in the virtual environment 100.
  • the method S900 integrates the SDK directly in the build/compilation artefacts of existing code of the virtual environment 100.
  • the build bundle of the virtual environment 100 is read in.
  • the build bundle of the virtual environment 100 is analyzed either through the API of an IDE with the goal of finding code fragments that are relevant to some aspect of changing the theme or by directly inspecting relevant files.
  • Method 900 is looking for parameters such as: the setting of a color, loading or playing sounds or graphics or setting a font color or style, for example.
  • Method 900 also analyzes metadata files to look for the same parameters at step S903.
  • locations of code and/or metadata relative to theme replacement are identified and exported.
  • the code fragments identified at step S902 are replaced with a set of instructions that implement calls to the SDK to initiate a theme replacement process, as will be described below and the metadata parameters identified at step S903 are changed to enable reading of such parameters by the instructions imported into the code at step S904.
  • This process is undertaken automatically, or semi- automatically with the products of the process, such as code locations, assisting in the process.
  • the method S1000 reads the executable binary bundle of the virtual environment 100 instead of altering the source build bundle of the virtual environment 100.
  • the executable binary bundle of the virtual environment 100 is read in.
  • the executable binary bundle is analyzed by direct inspection, and/or by using reverse engineering techniques such as deobfuscation and decompilation with the goal of finding container instructions that are relevant to some aspect of changing the theme.
  • Method 1000 is looking for process/container instructions that are relevant to factors such as: the setting of a color, loading or playing sounds or graphics or setting a font color or style, for example.
  • the processor/container instructions identified at S1002 are replaced or augmented with a set of instructions that implement a call to a theme change mechanism of the software library.
  • Method 1000 also analyzes metadata files to look for the same parameters at step S 1002.
  • any metadata/configuration files found in the binary bundle are analysed to find references that are relevant to changing the theme of the virtual environment 100.
  • the values of identified metadata/configuration files are replaced or augmented with values appropriate to be read by the instructions implemented at step S1003.
  • Each derived theme 1100 comprises a theme descriptor 1102 and a theme data bundle 1104.
  • the theme descriptor 1102 comprises a plurality of theme slots 1105 that each include a transformation instruction 1106 and a configuration 1108.
  • the theme descriptor 1102 further comprises an expiration date 1110 and any presentation limits 1112.
  • the theme data bundle 1104 comprises multimedia assets 1114 that are associated with respective theme slots 1105.
  • Each theme slot 1105 may be associated with one or more multimedia assets 1114.
  • transformation instructions include: applying an image filter, changing an animation, transforming a layout within the virtual environment, replacing the texture of an asset with a new texture, applying a sound filter, replacing the sound of a sound effect with a new sound, changing fonts, changing colors for drawn objects.
  • Multimedia assets of the theme data bundle 1104 can be matched to theme slots 1105 by identifiers embedded in each multimedia asset file 1114 or by using filenames or paths of the multimedia asset files 1114.
  • the theme data bundle 1104 is version controlled. As described in more detail below, if the server 300 determines that part of the theme data bundle 1104 is bad then it can be removed from the virtual environment and deleted from the multimedia device 200.
  • Each asset 1114 of theme data bundle 1104 is assigned a status 1116, i.e. valid or invalid. This status 1116 can be corrected upon receipt by the multimedia device 200 of a correction descriptor. For example, if a theme is displayed in the virtual environment 100 and the server 300 subsequently determines that the theme, or fragments thereof, is bad then the correction descriptor will change the status 1116 of one or more assets 1114 of the theme data bundle 1104 to invalid.
  • the theme descriptor 1102 also includes a descriptor identification 1118, a bundle identification 1120 (which corresponds to the theme data bundle 1104) and any relevant display criteria such as day, time or duration.
  • a derived theme Once a derived theme has been generated and is available at a server it needs to be downloaded to a multimedia device 200 in order for the virtual environment 100 thereon to be updated.
  • Various methods of importing a derived theme to a multimedia device are presented with the aim of causing the least disturbance to the user and the operation of their device(s), and presenting a targeted theme to a particular user. All of the assets making up a derived theme can result in large file sizes.
  • the nature of multimedia devices 200 dictates that there is not always a network connection available. The following methods thus mitigate periods of no network connection, low connection speed and other status factors that might affect a multimedia device or server.
  • Trigger event is used herein in relation to the following methods. While this term is not exhaustively defined it is intended to refer to a specific group of events that might include a scheduled event, user action, system action, virtual environment action or software library (SDK) action, for example.
  • SDK software library
  • FIG. 13 shows a method S1200 of retrieving or downloading by the multimedia device 200 a theme descriptor 1102 from the server 300.
  • a trigger event as defined above, generates a notification at the multimedia device 200.
  • the notification initiates the process of retrieving or downloading a theme descriptor 1102.
  • one or more parameters of a user, the multimedia device 200 or the container upon which the virtual environment 100 sits is retrieved.
  • the retrieved parameters are compared against one or more predetermined parameter thresholds or criteria. Examples of such parameters include: network connectivity, communication with the server, battery level, processing capacity of the multimedia device and the current status of the virtual environment 100, or user related signals.
  • step S1204 whether to return one or more theme descriptors to the multimedia device 200 is determined based on the parameters of the user, multimedia device 200, or container and user related signals. Where the server has determined that one or more theme descriptors 1102 should be returned to the multimedia device 200, it is determined whether to return the theme descriptor(s) 1102 in a single download or whether the theme descriptor(s) 1102 should be split into fragments and such fragments returned to the multimedia device 200 in multiple, smaller downloads.
  • the theme descriptor(s) 1102, or fragments thereof, determined in step S1204 are retrieved or downloaded by the multimedia device 200.
  • theme descriptor(s) 1102, or fragments thereof, retrieved or downloaded by the multimedia device 200 are verified based on age, expiry date, relevancy, or other criteria. Any theme descriptor(s), or fragments thereof, that do not pass verification are discarded and deleted from the multimedia device 200. Those theme descriptor(s) and fragments thereof that do pass verification are assigned a status value such as “complete and ready to display” or “incomplete and waiting for more fragments.
  • a priority value is assigned to each theme descriptor 1102 prior to retrieval or download. The priority value is assigned by the server 300 dependent on user related signals and predetermined parameters and criteria.
  • step S1205 it is determined whether to retrieve or download any theme bundles associated with the identified theme descriptor(s) 1102. This determination is based, at least in part, on the current status of the multimedia device 200 and container.
  • a method S 1300 of re-ordering theme descriptors is shown.
  • a trigger event as defined above, generates a notification at the multimedia device 200.
  • the notification initiates the process of retrieving or downloading an ordering of theme descriptors 1102 representative of themes to displayed by the virtual environment 100.
  • the multimedia device 200 determines whether to make a call to the server 300 to request a new theme ordering. This determination is based on factors such as the state of the multimedia device 200 i.e. network status, battery, and whether the server 300 is reachable.
  • Step S1303 if the server 300 is not reachable by the multimedia device 200 and/or the current status of the multimedia device 200 and/or container residing thereon does not meet a set of predetermined parameters and/or criteria, the multimedia device is configured to re-order locally stored theme descriptors using information available to the multimedia device 200. If the server 300 is reachable by the multimedia device 200 and the current status of the multimedia device 200 and container residing thereon meets a set of predetermined parameters and/or criteria, a call is made from the multimedia device 200 to the server 300 at Step S1304 for the server 300 to return a new theme ordering.
  • step S 1302 information stored on the multimedia device 200, or accessible to the multimedia device 200 from other sources, is used to suggest a new theme ordering.
  • information associated with all themes, or a selection thereof, stored on the multimedia device is sent to the server 300 together with a set of signals representative of the current state of the multimedia device 200 and/or user related signals.
  • step S 1305 based on the information sent to the server 300 from the multimedia device 200, the server returns a new theme ordering to the multimedia device 200.
  • Information relating to themes that should be deleted from the multimedia device 200 is also returned at this point.
  • themes are stored at the multimedia device 200 ready to be displayed on the virtual environment 100 in accordance with the returned theme ordering.
  • a method S1600 of identifying bad themes, or fragments thereof is illustrated.
  • the server 300 determines that an entire theme, or fragments thereof are bad.
  • bad it is meant that there is some form of error in the code, the assets of the theme are not correct or there is some issue with the associated metadata, for example.
  • the server 300 then identifies all multimedia devices 200 that have downloaded the relevant theme, or fragments thereof.
  • a notification is issued and automatically transmitted to each multimedia device 200 that is known to have downloaded the relevant theme. This determination can be also done at the next time the client device is requesting information from the server, thus using a pull mechanism for updating the correctness status of the theme.
  • the multimedia device 200 at Step SI 602 determines whether the theme that has been identified as being bad, or having bad fragments, is being displayed in the virtual environment. If that theme is being displayed, it is replaced with the virtual environment’s default theme, or any other theme that is not marked as bad. These can occur at the point the multimedia device 200 receives the notification or it can be schedules for a convenient time such as completion of a level, if the virtual environment represents a game, or closing a document, if the virtual environment is an application. The mechanism of replacing the theme is described below.
  • the bad theme, and associated fragments, at Step SI 603 are deleted from the multimedia device.
  • the theme of the virtual environment is reset to utilize the default theme for the virtual environment. If one or more other themes are available to the virtual environment then one of these can be applied in place of the bad theme. A new version, good version of the theme marked as bad can then be re-downloaded to the multimedia device 200 and displayed as described below.
  • the process of replacing a bad theme is initiated by way of a correction descriptor that is pushed to each multimedia device 200 by way of the notification sent by the server 300.
  • the correction descriptor replaces the active theme to either cause the virtual environment to default to a default theme bundle or change to a previously stored theme bundle. It will be appreciated that the notification, and associated correction descriptor, may be pulled to the multimedia device instead of being pushed.
  • any outstanding theme bundles also need to be retrieved or downloaded before the derived theme can be displayed in the virtual environment 100.
  • a method S1400 of downloading theme bundles is shown in figure 16 and is substantively similar to the method S1200 described in relation to figure 13.
  • a trigger event as defined above, generates a notification at the multimedia device 200.
  • the notification initiates the process of retrieving or downloading a theme bundle.
  • one or more parameters of the multimedia device 200 or the container upon which the virtual environment 100 sits is retrieved.
  • the retrieved parameters are compared against one or more predetermined parameter thresholds or criteria. Examples of such parameters include: network connectivity, communication with the server, battery level, processing capacity of the multimedia device and the current status of the virtual environment 100.
  • step S1404 whether to request one or more theme bundles to the multimedia device 200 is determined based on the parameters of the multimedia device 200 or container and the status of any theme descriptor(s) 1102 present at the multimedia device 200.
  • step S1405 where the server has determined that one or more theme bundles should be returned to the multimedia device 200, it is determined whether to return the theme bundle(s) in a single download or whether the theme bundle(s) should be split into fragments and such fragments returned to the multimedia device 200 in multiple, smaller downloads.
  • step S 1406 the theme bundle(s), or fragments thereof, determined in steps S1404 and S1405 are retrieved or downloaded by the multimedia device 200.
  • theme bundle(s) 1102, or fragments thereof, retrieved or downloaded by the multimedia device 200 are verified based on age, expiry date, relevancy, or other criteria. Any theme bundle(s), or fragments thereof, that do not pass verification are discarded and deleted from the multimedia device 200. Those theme bundle(s) and fragments thereof that do pass verification are assigned a status value such as “complete and ready to display” or “incomplete and waiting for more fragments. Once a theme bundle has been fully retrieved or downloaded, all files may be unzipped and moved to a different storage location or displayed in the virtual environment 100.
  • a theme (theme descriptor and theme bundle) has been fully retrieved or downloaded by the multimedia device 200 it may be displayed in the virtual environment.
  • the theme to be displayed in the virtual environment will be determined by the SDK based on how recent any ready-to-display theme is and also how recent the theme ordering is. This is shown in figure 17a.
  • the SDK determines that a current theme should be replaced with a new theme upon receipt of a notification following a trigger event.
  • the multimedia device 200 determines whether there are any complete, valid themes ready to be displayed in the virtual environment.
  • the campaign order of themes available to the multimedia device is analyzed for relevancy and expiry.
  • a theme order update is triggered at Step S1504 by the multimedia device 200.
  • a first theme according to theme ordering is selected at Step S1505.
  • an animation, image, video, or solid color is presented at the virtual environment to mask all or part of the current theme.
  • the new theme descriptor 1102 and new theme bundle are imported into the virtual environment 100 to replace the current theme descriptor and current theme bundle.
  • the new theme is displayed in the virtual environment 100.
  • the new derived theme that is being displayed in the virtual environment 100 is recorded and all user events that occur while the new them is being displayed are also recorded.
  • the new derived theme and user events are recorded depends on the availability of the server 300. If the multimedia device 200 can connect with the server 300 then the new derived theme and user events are recorded at the server 300. Otherwise, the new derived theme and user events are recorded at the multimedia device 200 by the container. When the multimedia device 200 connects to the server 300, the new derived theme and user event recorded information is sent by the multimedia device 200 to the server 300 for recording. [0075] In certain circumstances it is desirable or necessary for a user to be able to return the virtual environment to display a default theme, i.e. a theme that was installed with the virtual environment, or a previously displayed or preferred (user or pre-determined) theme. This can be achieved through the user performing an action through the multimedia device 200.
  • a default theme i.e. a theme that was installed with the virtual environment, or a previously displayed or preferred (user or pre-determined) theme. This can be achieved through the user performing an action through the multimedia device 200.
  • Such an action may be a gesture, on a touchscreen screen or disrupting a magnetic field, selecting a button or icon within the virtual environment, voice command, keystroke, input peripheral instruction or shaking the multimedia device, for example.
  • an animation, image, video, or solid color is presented at the virtual environment to mask all or part of the current theme while the current theme is replaced with a default, or earlier theme.
  • FIG. 18 A system enabling execution of the methods described above in relation to figures 13 to 17 is illustrated in figure 18.
  • the processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the operations described. The required structure for a variety of these systems will be evident from the description above.
  • the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Methods and systems are described for automatically replacing a theme of a virtual environment. This is achieved by receiving a notification at a multimedia device to retrieve one or more themes from a server; determining a current status of the multimedia device; in response to determining the current status of the multimedia device: retrieving the one or more replacement themes from the server if the status of the multimedia device is in accordance with one or more predetermined criteria; and re-scheduling until a further notification is received at the multimedia device or terminating retrieval of the one or more replacement themes from the server if the status of the multimedia device is not in accordance with the one or more predetermined criteria.

Description

SYSTEMS AND METHODS FOR REPLACING A THEME OF A VIRTUAL
ENVIRONMENT
Background
[0001] The present disclosure is directed to replacing a theme of a virtual environment. [0002] All applications and games, irrespective of platform, have an audio/visual identity that is called a theme. In the case of applications, dynamic theming, explicitly controlled by a user has been supported for a number of years. For example, a user decides to theme their browser with a different theme that they download from an on-demand server. The target theme is manually selected by the user and downloaded as a single file when the user is online. When the download is complete the single file is used to skin the application with the theme selected by the user. Dynamic theming, with arbitrary themes, is not supported in games. Generally, the theme, or more rarely themes, of a game are predefined at compilation time. One example of adding themes to a game is by enthusiasts that have the technical capability necessary to skin a game. The process employed by enthusiasts is known as modding. The goal of modding is to create a new version of the game with a different skin but based on the original game artefacts. Currently, if parts of a game are intended to be “themeable”, the developer has to make this decision at the time of coding the game. Specific code must be written for each asset where the theme of the asset might be changed. If code to allow the theme of an asset to be changeable is not written and associated with the asset at the time of development the theme cannot then be changed later.
Where a game is coded to allow implementation of a new theme, developers can sell new themes or make them available for free. Another example of creation of multiple themes can be found in game source code marketplaces. In these cases, game publishers can purchase code for a clone of a popular game online and then change its theme with a new one. This results in a new game, with identical mechanics but different audio/visual identity that is then made available for purchase by users.
[0003] In all of the different cases that multiple themes are employed at this time, there are two elements that are always present: a) the intervention of software developers for adding the theme and recompiling the application or game to support it and/or b) a user action that aims to change the currently displayed theme with the a new in the application. This process is not dynamic, as the set of themes is predetermined, and requires a clear planning and decision- making process, particularly in the case of skinning a game, to determine the desired audio/visual identity of the application or game. In other words, a software developer often needs to intervene to add support for a specific theme in an app, and an application and/or a user has to select a theme or skin for their application or game.
[0004] It is against this background that embodiments of the present invention have arisen. Summary
[0005] Systems and methods are described herein for generating one or more themes for insertion into a virtual environment.
[0006] A theme comprises all of the assets that make up the audio and visual identity of a virtual environment and the way in which such assets are assembled in space and time and displayed to a user through a multimedia device. Such a multimedia device may be a mobile phone, tablet computer, laptop or desktop computer, television, games console or smart watch, for example. The assets of a theme typically take the form of multimedia files, i.e. images, videos, audio files, textures, which combined define a theme bundle. Each theme comprises a plurality of theme slots which describe respective aspects of theme. Examples of theme slot include: i) a place in the code, or in a metadata file, that a specific color is set, a specific sound is played, a specific texture is set, a specific font family is set or a specific layout is set; ii) a sound clip; iii) a specific texture; iv) a font family; or v) a specific layout. This list is non- exhaustive and is given by way of example only. Each theme slot is assigned a transformation function and has a value attached. For example, the transformation function can be replacing a texture (image) on a sprite or can be changing a specific color range with another on an existing image of the theme. The combination of all theme slots and transformation functions, associated with a specific theme define a theme descriptor. The theme descriptor refers to the theme bundle to locate the assets required for its associated theme. Each asset of the theme bundle is associated with a respective one or more theme slots. The theme descriptor may also include other criteria for display or determining relevance such as when the theme should be displayed on a given day or over which duration (which could span multiple days or be the same period on more than one day). Such conditions may be determined automatically by a multimedia device such as by identifying when a user is commuting home and displaying the theme only during that time period. As will be appreciated, the time period need not be at the same time every day and can be dynamically determined on a day to day basis.
[0007] An asset is an aspect of a virtual object such as an image file, audio file, text, font, video, pantone color or texture. This list is non-exhaustive and is given by way of example only. From a user’s perspective, the representation of an asset could be an image displayed on the screen of a multimedia device or a sound played from the speaker of such a device.
[0008] A virtual environment is a computer-generated interface that is executed on a multimedia device. Examples of virtual environments include games, word processors, social media platforms, content streaming platforms, databases and learning management systems. This list is non-exhaustive and is given by way of example only.
[0009] The virtual environment is executed on top of a container. The container sits between a virtual environment and underlying hardware of a multimedia device. The container offers a library that facilitates access to the hardware resources of the multimedia device. Examples of a container include operating systems and web browsers. As will be appreciated, all virtual environments are executed on top of a container. The container drives the hardware used by a virtual environment through one or more application programming interfaces (APIs).
[0010] A multimedia device can be any electronic device that has network connectivity which can be permanently or non-permanently tethered to a power and/or communications source. Examples of multimedia devices include: smart phones, tablets, laptop computers, desktop computers, smart watches and portable games consoles. This list is non-exhaustive and is given by way of example only.
[0011] A virtual environment is installed on top of a container of a multimedia device by first downloading an installation package from an installation source. The installation source could be any application store, such as the App Store for Apple ® devices, Google ® Play for Android devices, a software installation disc, a web site or a USB flash drive, for example. The installation package is then executed on the container to generate the virtual environment thereon. The virtual environment is presented to a user through a display, speakers and tactile output of the multimedia device. When a virtual environment is first installed on a multimedia device it has a default theme. The default theme comprises all assets that are necessary to give the virtual environment the particular look and feel that was intended by the virtual environment developer.
[0012] Aspects and embodiments of the invention are presented herein for dynamically changing the look and feel of a virtual environment according to particular criteria. Starting from the default theme of a virtual environment, tools, methods and systems are presented for extracting theme information from the virtual environment and replacing such information with pointers to a software library, which can be in the form of an SDK. The software library requests new theme information from a server and processes instructions to replace assets of the virtual environment with new assets associated with a replacement theme. This is achieved by considering the artefacts of a virtual environment in a way that is agnostic of the specifics of the virtual environment. A library of all artefacts in the virtual environment is added to the development platform, i.e., Unity, and each artefact can be placed to change the overall theme of the virtual environment through a replace function. Such a process allows background graphics, text, images, video and the appearance of virtual environment objects to be replaced using a simple process. Taking the game Angry Birds as an example, the present invention would allow the appearance of the main game characters, i.e., the birds and pigs, to be dynamically updated in accordance with a new theme. Furthermore, the sound effects of the game can be changed along with any other variable artefact. This way, games can be updated to implement dynamic advertising campaigns based on user preferences or user browsing history. The longevity of play of certain games may also be increased by allowing a user to dynamically update the look and feel of the game.
[0013] An aspect of the invention provides a method for replacing a theme of a virtual environment, the method comprising: receiving a notification at a multimedia device to retrieve one or more themes from a server; determining a current status of the multimedia device; in response to determining the current status of the multimedia device: retrieving the one or more replacement themes from the server if the status of the multimedia device is in accordance with one or more predetermined criteria; and re-scheduling until a further notification is received at the multimedia device or terminating retrieval of the one or more replacement themes from the server if the status of the multimedia device is not in accordance with the one or more predetermined criteria.
[0014] A theme of a virtual environment can comprise several multimedia assets that may have large file sizes. Downloading large files is resource intensive and can result in excess data fees being charged if the multimedia device is subject to a data cap, increased battery usage, reduced performance and download failure if network connection is lost. It is therefore desirable to avoid lengthy and data heavy downloads when the multimedia device does not have an optimum status for such a download. This aspect of the invention thus determines a current status of the multimedia device prior to sending a request to a server to retrieve one or more themes for a virtual environment. This way, the negative implications referred to above have little impact on usage of the multimedia device.
[0015] In some embodiments, the method further comprises displaying assets on the multimedia device to mask the virtual environment; replacing the theme of the virtual environment with a theme retrieved from the server; and displaying the retrieved theme within the virtual environment.
[0016] The act of replacing a default, or previous, theme of a virtual environment takes a finite amount of time, in the order of milliseconds, to complete. To avoid the user experiencing a sudden change of the theme and viewing assets being suddenly, or gradually replaced within the virtual environment, multimedia content can be displayed on the screen of a multimedia device to mask the virtual environment whilst this process is undertaken. Examples of such multimedia content might include an advertising video, an image, a series of images in the form of a presentation or a blank or solidly colored screen.
[0017] In some embodiments the notification is received at the multimedia device following occurrence of a trigger event that automatically generates the notification.
[0018] Examples of trigger events include: pre-scheduled events that occur at the same time each day, a pre-determined user action, i.e. loading a virtual environment, a pre-determined system event, i.e. completion of downloading the virtual environment to a multimedia device or completion of updating the virtual environment, an event within the virtual environment, i.e. the user completes a level, In each case, the user is not required to manually select a theme for download or initiate the download process. In some embodiments, the user may be prompted to accept a new theme before it is downloaded or implemented.
[0019] To avoid interrupting usage, the virtual environment facilitates updating of a theme upon occurrence of a trigger event which may be an event occurring within the virtual environment itself or a change in status of the multimedia device on which it is running. For example, in a game, when a user completes a level there is typically a period of at least several seconds where the user’s score is displayed and s/he is given the opportunity to move to the next level, repeat the level or exit the game. The act of completing the level may trigger a process by which non-volatile memory of the multimedia device or a remote storage location is searched for an updated theme according to one or more user preferences and/or predetermined parameters. If no such theme exists, then the next level displays the theme displayed in the immediately preceding level or any such pre-determined theme that is already associated with that level. If a new theme does exist, a relevance query assesses the theme against the one or more user preferences and/or predetermined parameters. If the theme is determined to be relevant and is available to the virtual environment it will replace an existing theme in the virtual environment. Other examples of trigger events include: the multimedia device having a WiFi internet connection, reaching a certain time each day, entering a particular geographic location, reaching a certain point in a game, the game publisher pushing a particular theme to users of the game, for example.
[0020] In some embodiments, the trigger event initiates a status check of the multimedia device or container within which the virtual environment is executed. The status check determines parameters such as battery level, internet connection, data download speed, user preferences, device location for example. The results of the status check are compared against pre-determined criteria stored either on the multimedia device or on a remote server. If one or more parameters is determined during the status check not to meet the predetermined criteria, then download of new virtual elements is either stopped or postponed until such a time that the predetermined criteria are met. In one example, if the change of the state of the device is not changing for a long period of time, then a different theme descriptor, that requires less elements might be chosen. For example, if a user has used much more of his device’s storage space, to the extent that the initial version of the theme downloaded does not fit in the storage space, then a new theme descriptor can be downloaded. That new theme descriptor could omit some assets or chose a different transformation function for others - e.g. change the color of an existing image, instead of downloading a new one.
[0021] In some embodiments, the trigger event initiates comparison of one or more virtual elements with relevance criteria. Each theme comprises a plurality of virtual assets that are grouped by a theme descriptor.
[0022] In some embodiments, each of the theme descriptor and theme bundle may be split into core and non-core fragments.
[0023] In some embodiments, a theme asset manager handles downloading of theme descriptors and theme bundles. The virtual asset manager can handle downloading of multiple themes from the server at the same time. Each theme is assigned a state, i.e. waiting for more fragments or ready to be displayed. As theme assets are downloaded to the multimedia device, they are grouped into a relevant theme bundle. It will be appreciated that a single theme asset may be relevant to more than one theme.
[0024] In some embodiments, each theme may be assigned a priority, or ranking, to determine the order in which themes are displayed on the multimedia device. The priority, or ranking, is assigned at the server, but it can be sent in the form of criteria. For example prioritize themes that were downloaded last, or themes that have specific metadata attached. As themes are downloaded to the multimedia device, the order in which themes are displayed continues to be updated dynamically based on priority, or ranking, and other factors such as download date and user preferences. The priority, or ranking, also dictates the order in which themes are downloaded from the server to the multimedia device.
[0025] In some embodiments, whether or not to request a new theme is determined at the multimedia device in accordance with the status check. If one or more parameters do not meet the predetermined criteria, or if the server is not reachable, the multimedia device re-schedules making a call to the server and download of new theme fragments according to a theme is delayed. An example of this is where the multimedia device has a low battery level, i.e. less than 15%, and it is determined that downloading assets according to a new theme would not be completed before the battery level reaches a critical level, i.e. 5%.
[0026] In some embodiments , the method further comprises requesting a theme order from the server if the status of the multimedia device is in accordance with the pre-determined criteria and determining a theme order at the multimedia device if the status of the multimedia device is not in accordance with the pre-determined criteria.
[0027] In some embodiments, the method further comprises validating a theme downloaded to the multimedia device against pre-determined validation criteria and displaying the theme if the theme meets the pre-determined validation criteria and deleting the theme from the multimedia device if the theme, or any part thereof, does not meet the pre-determined validation criteria. A mechanism is also supported that allows the server to send a signal to all the clients that an entire theme bundle version, or fragments of it, are no longer valid. In that case, either the entire theme bundle version, or the specific fragments are removed from the device and the corresponding theme descriptor reverts to the appropriate state. If the theme is actively displayed on a client device, then the device will immediately revert to displaying the default, or any other available theme, using the same mechanism for substituting themes.
[0028] In some embodiments, the method further comprises collecting usage information and recording user interactions with the virtual environment and/or multimedia device during a time period that a theme is displayed by the virtual environment; sending such usage information and a summary of user interactions to the server if the status of the multimedia device meets the predetermined criteria; and storing the usage information and the summary of user interactions at the multimedia device if the status of the multimedia device does not meet the pre-determined criteria. The usage information is going to be periodically pushed to the server, when the predetermined criteria are met. [0029] It will be appreciated that embodiments of the invention are applicable to replacing or augmenting individual game assets, multiple game assets or game themes comprising multiple linked or independent game assets.
[0030] Other aspects will be apparent from the following description and the claims.
Brief Description of the Drawings
[0031] The above and other objects and advantages of the disclosure will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
[0032] FIG. 1 illustrates a generalized virtual environment in the form of a video game in accordance with which embodiments of the invention are described;
[0033] FIG. 2 illustrates one example of a multimedia device suitable for implementing a virtual environment;
[0034] FIG. 3 illustrates a wireless connection between a multimedia device and a server; [0035] FIG. 4 illustrates example code for identifying an asset of a virtual environment; [0036] FIG. 5 illustrates a method of extracting theme elements from a compilation bundle of a virtual environment;
[0037] FIG. 6 illustrates a method of extracting theme assets from a binary bundle of a virtual environment;
[0038] FIG. 7 illustrates a method of extracting theme assets from a usage video that represents a virtual environment;
[0039] FIG. 8 illustrates a method of extracting theme assets from a screenshot that represents a virtual environment;
[0040] FIG. 9 illustrates a general process of extracting theme assets from a virtual environment and implementing a software library to enable generation of derived theme assets; [0041] FIG. 10 illustrates a method of integrating a software library within build/compilation artefacts of a virtual environment;
[0042] FIG. 11 illustrates a method of integrating a software library with a binary bundle of a virtual environment;
[0043] FIG. 12 illustrates an exemplary derived theme model;
[0044] FIG. 13 illustrates a method of downloading a theme descriptor from a server to a multimedia device;
[0045] FIG. 14 illustrates a method of re-ordering theme descriptors that have been downloaded to a multimedia device; [0046] FIG. 15 illustrates a method of identifying a bad version of a theme, asset or artefact; [0047] FIG. 16 illustrates a method of downloading theme bundles from a server to a multimedia device;
[0048] FIG. 17 illustrates a method of displaying a derived theme in a virtual environment hosted by a multimedia device.
[0049] FIG. 18 illustrates an overall system architecture for replacing a theme of a virtual environment.
Detailed Description
[0050] Specific embodiments will now be described in detail with reference to the accompanying figures. In the following detailed description of these embodiments, numerous specific details are set forth in order to provide a more thorough understanding of the disclosure. However, it will be apparent to one of ordinary skill in the art and having the benefit of this disclosure that embodiments may be practiced without some or all of these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.
[0051] In general, the following embodiments relate to automatically configuring multimedia devices to dynamically update one or more virtual assets in a virtual environment. More particularly, the disclosure relates to dynamically updating a collection of virtual assets grouped into a theme to change the look and feel of a virtual environment.
[0052] FIG. 1 depicts a virtual environment 100 as viewed from a user’s perspective on a multimedia device, i.e. a mobile phone or tablet computer. The virtual environment 100 may be a video game (as is shown) or an application executed on the multimedia device. The exemplary virtual environment 100 shown is a simple object manipulation game in which the user is instructed to align three or more moveable assets 102 into a line, or other configuration, on a game board 104 in order for those virtual assets 102 to be removed from the game board 104. The game board 104 sits against a background 106 and adjacent to other assets such as a score board 108, power up icons 110 and menu options 112, for example. Each of these features is a configurable asset that can be updated as part of a theme. Each asset is assigned an object identifier and is linked to one or more themes by way of a theme descriptor.
[0053] The virtual environment 100 is displayed on a multimedia device 200. Such a multimedia device 200 is shown schematically in figure 2 and comprises storage 202 a display 204, a processor 206 and communications means 208, i.e. Bluetooth ®, WiFi, or NFC. The multimedia device 100 may be a smartphone, tablet, laptop, watch, television, for example. In each case, the virtual environment 100 is stored in the storage 202 as part of an executable program that sits on top of a container such as an operating system or browser. Depending on the type of multimedia device, the virtual environment may be transferred thereto by downloading via communication means 208 from an “app” store, installing via CD or flash drive or wireless transfer from another multimedia device, for example. The processor 206 causes a series of machine -readable instructions to be executed in order to launch and operate the virtual environment 100 on top of the container. The virtual environment 100 is displayed on the display 204 and a user interacts with the virtual environment through the user interface to cause one or more assets displayed on the display 204 to move or change state.
[0054] The multimedia device 200 can be in a permanent, or non-permanent connection with a remote server 300 as illustrated in figure 3. The server 300 is a computing device comprising storage 302, a processor 304 and communication means 308 for transferring data to/from the multimedia device 200. Such data transfer is affected by way of an application programming interface (API) residing on the network connected device 200 and associated with the virtual environment 100. In general terms, the multimedia device 200 transmits a call for connection to the server 300 over a network such as the internet or local network. Data is sent between the multimedia device 200 and server 300 over the network through a network connection.
[0055] Each asset 102 represented by the virtual environment is identified by a unique asset identifier 114 as shown in figure 4. The asset identifier 114 is embedded in the binary bundle and/or build bundle. In order to replace the theme of a virtual environment 100, each asset related to the theme must be extracted. Examples of such assets include images, videos, sound clips, textures, fonts, layouts and colors, for example. Figures 5 to 8 illustrate exemplary methods of extracting theme information from a virtual environment.
[0056] As shown in figure 5, one method S400 of extracting theme information from a virtual environment 100 is to extract the relevant information from the compilation bundle of the virtual environment 100. The compilation bundle typically consists of a set of code files, a set of metadata files, a set of graphic assets and a set of sound clips. This list is non-exhaustive, and the compilation bundle may include other artefacts. At step S401, the compilation bundle is read through either: i) direct inspection of the code and related build bundle files to identify relevant assets; or ii) through an application programming interface, i.e. as part of an integrated development environment. At step S402, the relevant theme assets and theme related information are identified. Examples of relevant theme information include: timing function and configuration for an animation, setting a color on a panel, setting a font family, color or size. Examples of relevant theme assets include: textures of sprites, or frames of an animation and sound clips. At Step S403, relevant asset information, i.e. color palette settings, font characteristics and layouts, are extracted from the code files and/or metadata files. At Step S404, relevant theme and/or asset information that describes the relationship between a combination of assets is extracted from the code files and/or metadata files.
[0057] Figure 6 shows another method S500 of extracting theme information from a virtual environment 100. At step S501, the binary bundle of the virtual environment as it relates to a specific container, i.e. Android OS, iOS, Windows 10, is read. At step S502, the contents of the binary bundle are analyzed to identify specific sets of processor/container instructions and identity information that is relevant to changing the theme of the virtual environment 100. Such information includes: setting of colors, layout information, loading or playing sounds and loading or playing images. This information is extracted at step S503. At step S504, the binary bundle is analyzed to identify any theme related assets such audio and visual files. These assets are extracted at step S505. At step S506, the binary bundle is analyzed to identify any information that relates to a combination of assets. This information might include layout or animation information and how different assets interact. This information is extracted at step S507.
[0058] Figure 7 shows another method S600 of extracting theme information from a virtual environment 100. Here, the theme information is extracted directly from a usage video of a virtual environment 100, i.e. a video streamed from a content streaming platform such as YouTube ®. At step S601, each frame of a usage video, or relevant portion of a usage video is identified and extracted. At step S602, a sound clip associated with each frame is identified and aligned therewith. At step S603, suitable techniques, i.e. computer vision techniques, are used to identify artefacts within each frame or within a selection of frames. An example of suitable computer vision technique is implementation of a blob detection algorithm. Examples of artefacts include sprites, continuous surfaces and blank spaces. At step S604, a plurality of frames is compared to identify constant artefacts and moving target artefacts that are not constant from frame to frame. At step S605, changes in sound within the usage video are identified and used as a guide to extract animation presented within the usage video. At step s606, background sound clips such as music are identified, by using periods of user inactivity in the clip and periodicity of the sound. At step s607, the extracted background music and changes in the frames are used to recognize and extract sound effects. At step S608, colors of each frame are extracted from the usage video and a prominence value is assigned to each color. At step S609, a prominence value is assigned to each sound and image asset presented in the usage video. The prominence value is useful for deciding which aspects of a theme are more characteristic of the audio/visual identity of the virtual environment. The method S600 may be augmented with one or more complimentary extraction techniques such as those described in relation to figures 5, 6 and 8.
[0059] Figure 8 shows another method S700 of extracting theme information from a virtual environment 100. Here, the theme information is extracted directly from one or more screen shots of a virtual environment 100. At Step S701, the, or each, screenshot is identified and analyzed. At step S702, suitable techniques, i.e. computer vision techniques, are used to identify artefacts within each screenshot or within a selection of screenshots. An example of suitable computer vision technique is implementation of a blob detection algorithm. Examples of artefacts include sprites, continuous surfaces and blank spaces. At step S703, locations within the screenshot are identified for displayed artefacts. At step S703, colors of each screenshot are extracted therefrom, and a prominence value is assigned to each color. Similarly, layout information, and artefact location, is extracted, and a prominence value assigned thereto and locations in the screenshot where sprites or empty spaces appear are identified. At step S704, asset prominence information is extracted from the screenshot. In some embodiments, two or more screenshots may be compared to facilitate recognition of artefacts within screenshots. Comparison of screenshots is beneficial in identifying artefacts that are common across two or more screenshots, for detecting moving sprites and static parts of the image. The method S700 may be augmented with one or more complimentary extraction techniques such as those described in relation to figures 5 to 7.
[0060] Figure 9 shows the general process 800 of extracting theme information from a virtual environment 100 and replacing that information to import a derived theme into the virtual environment 100. This is an automated or semiautomated process that includes extraction of theme information, as described above, by way of a theme extraction tool set 802. The virtual environment 100 build bundle 804 and binary bundle 806 are augmented with SDK hooks 808 to enable communication with a software library interface. A new virtual environment binary bundle 810 is compiled with an embedded software library to enable extracted theme elements to be replaced with derived theme elements. The derived theme elements can then be applied to the virtual environment through an update to the virtual environment that is initiated at an application content platform 812. The process following extraction of theme information is described further below. [0061] Figures 10 and 11 show methods S900 and S1000 of integration a dynamic theming SDK into the code of a virtual environment. Changing themes within a virtual environment requires deep integration of a dynamic theming software library into the code of the virtual environment in all places where there is an instruction for presenting an asset in the virtual environment either visually or audibly. This instruction requires altering in order for assets of a derived theme to be presented in the virtual environment 100.
[0062] In Figure 10, the method S900 integrates the SDK directly in the build/compilation artefacts of existing code of the virtual environment 100. At step 901 the build bundle of the virtual environment 100 is read in. At step 902, the build bundle of the virtual environment 100 is analyzed either through the API of an IDE with the goal of finding code fragments that are relevant to some aspect of changing the theme or by directly inspecting relevant files. Method 900 is looking for parameters such as: the setting of a color, loading or playing sounds or graphics or setting a font color or style, for example. Method 900 also analyzes metadata files to look for the same parameters at step S903. At step S904, locations of code and/or metadata relative to theme replacement are identified and exported. At step S905, the code fragments identified at step S902 are replaced with a set of instructions that implement calls to the SDK to initiate a theme replacement process, as will be described below and the metadata parameters identified at step S903 are changed to enable reading of such parameters by the instructions imported into the code at step S904. This process is undertaken automatically, or semi- automatically with the products of the process, such as code locations, assisting in the process. [0063] In Figure 11, the method S1000 reads the executable binary bundle of the virtual environment 100 instead of altering the source build bundle of the virtual environment 100. At step S 1001 the executable binary bundle of the virtual environment 100 is read in. At step S 1002, the executable binary bundle is analyzed by direct inspection, and/or by using reverse engineering techniques such as deobfuscation and decompilation with the goal of finding container instructions that are relevant to some aspect of changing the theme. Method 1000 is looking for process/container instructions that are relevant to factors such as: the setting of a color, loading or playing sounds or graphics or setting a font color or style, for example. At step 1003, the processor/container instructions identified at S1002 are replaced or augmented with a set of instructions that implement a call to a theme change mechanism of the software library. Method 1000 also analyzes metadata files to look for the same parameters at step S 1002. At step S1004, any metadata/configuration files found in the binary bundle are analysed to find references that are relevant to changing the theme of the virtual environment 100. At step 1005, the values of identified metadata/configuration files are replaced or augmented with values appropriate to be read by the instructions implemented at step S1003.
[0064] The result of the above method steps allows for the creation and the dynamic application at runtime of a derived theme as modelled in figure 12. Each derived theme 1100 comprises a theme descriptor 1102 and a theme data bundle 1104. The theme descriptor 1102 comprises a plurality of theme slots 1105 that each include a transformation instruction 1106 and a configuration 1108. The theme descriptor 1102 further comprises an expiration date 1110 and any presentation limits 1112. The theme data bundle 1104 comprises multimedia assets 1114 that are associated with respective theme slots 1105. Each theme slot 1105 may be associated with one or more multimedia assets 1114. Examples of transformation instructions include: applying an image filter, changing an animation, transforming a layout within the virtual environment, replacing the texture of an asset with a new texture, applying a sound filter, replacing the sound of a sound effect with a new sound, changing fonts, changing colors for drawn objects. Multimedia assets of the theme data bundle 1104 can be matched to theme slots 1105 by identifiers embedded in each multimedia asset file 1114 or by using filenames or paths of the multimedia asset files 1114. The theme data bundle 1104 is version controlled. As described in more detail below, if the server 300 determines that part of the theme data bundle 1104 is bad then it can be removed from the virtual environment and deleted from the multimedia device 200. Furthermore, if such a determination is made during download of a theme data bundle 1104, notification to the multimedia device 200 that a specific version of a theme data bundle 1104 is bad can automatically stop downloading of such theme data bundle 1104 and re-commence from an alternative version, if available. Each asset 1114 of theme data bundle 1104 is assigned a status 1116, i.e. valid or invalid. This status 1116 can be corrected upon receipt by the multimedia device 200 of a correction descriptor. For example, if a theme is displayed in the virtual environment 100 and the server 300 subsequently determines that the theme, or fragments thereof, is bad then the correction descriptor will change the status 1116 of one or more assets 1114 of the theme data bundle 1104 to invalid. The theme descriptor 1102 also includes a descriptor identification 1118, a bundle identification 1120 (which corresponds to the theme data bundle 1104) and any relevant display criteria such as day, time or duration. [0065] Once a derived theme has been generated and is available at a server it needs to be downloaded to a multimedia device 200 in order for the virtual environment 100 thereon to be updated. Various methods of importing a derived theme to a multimedia device are presented with the aim of causing the least disturbance to the user and the operation of their device(s), and presenting a targeted theme to a particular user. All of the assets making up a derived theme can result in large file sizes. The nature of multimedia devices 200 dictates that there is not always a network connection available. The following methods thus mitigate periods of no network connection, low connection speed and other status factors that might affect a multimedia device or server.
[0066] The term “trigger event” is used herein in relation to the following methods. While this term is not exhaustively defined it is intended to refer to a specific group of events that might include a scheduled event, user action, system action, virtual environment action or software library (SDK) action, for example.
[0067] Figure 13 shows a method S1200 of retrieving or downloading by the multimedia device 200 a theme descriptor 1102 from the server 300. At step S1201, a trigger event, as defined above, generates a notification at the multimedia device 200. The notification initiates the process of retrieving or downloading a theme descriptor 1102. At step S1202, one or more parameters of a user, the multimedia device 200 or the container upon which the virtual environment 100 sits is retrieved. At step S1203, the retrieved parameters are compared against one or more predetermined parameter thresholds or criteria. Examples of such parameters include: network connectivity, communication with the server, battery level, processing capacity of the multimedia device and the current status of the virtual environment 100, or user related signals. At step S1204, whether to return one or more theme descriptors to the multimedia device 200 is determined based on the parameters of the user, multimedia device 200, or container and user related signals. Where the server has determined that one or more theme descriptors 1102 should be returned to the multimedia device 200, it is determined whether to return the theme descriptor(s) 1102 in a single download or whether the theme descriptor(s) 1102 should be split into fragments and such fragments returned to the multimedia device 200 in multiple, smaller downloads. At step S1205, the theme descriptor(s) 1102, or fragments thereof, determined in step S1204 are retrieved or downloaded by the multimedia device 200. At step S1206, theme descriptor(s) 1102, or fragments thereof, retrieved or downloaded by the multimedia device 200 are verified based on age, expiry date, relevancy, or other criteria. Any theme descriptor(s), or fragments thereof, that do not pass verification are discarded and deleted from the multimedia device 200. Those theme descriptor(s) and fragments thereof that do pass verification are assigned a status value such as “complete and ready to display” or “incomplete and waiting for more fragments. At an optional step, a priority value is assigned to each theme descriptor 1102 prior to retrieval or download. The priority value is assigned by the server 300 dependent on user related signals and predetermined parameters and criteria. For example, if a multimedia device 200 has poor network connectivity and slow download speed, a derived theme that has a smaller overall download size might be assigned a higher priority than a theme with a higher download size. In some cases, no theme descriptors will be suggested by the server 300 for download to the multimedia device 200. Alongside step S1205, it is determined whether to retrieve or download any theme bundles associated with the identified theme descriptor(s) 1102. This determination is based, at least in part, on the current status of the multimedia device 200 and container.
[0068] In figure 14, a method S 1300 of re-ordering theme descriptors is shown. At a first step S 1301, a trigger event, as defined above, generates a notification at the multimedia device 200. The notification initiates the process of retrieving or downloading an ordering of theme descriptors 1102 representative of themes to displayed by the virtual environment 100. At Step S 1302, the multimedia device 200 determines whether to make a call to the server 300 to request a new theme ordering. This determination is based on factors such as the state of the multimedia device 200 i.e. network status, battery, and whether the server 300 is reachable. At Step S1303, if the server 300 is not reachable by the multimedia device 200 and/or the current status of the multimedia device 200 and/or container residing thereon does not meet a set of predetermined parameters and/or criteria, the multimedia device is configured to re-order locally stored theme descriptors using information available to the multimedia device 200. If the server 300 is reachable by the multimedia device 200 and the current status of the multimedia device 200 and container residing thereon meets a set of predetermined parameters and/or criteria, a call is made from the multimedia device 200 to the server 300 at Step S1304 for the server 300 to return a new theme ordering. If the server 300 cannot be reached and/or if the current status of the multimedia device and/or container residing thereon does not meet the predetermined parameters or criteria, then information stored on the multimedia device 200, or accessible to the multimedia device 200 from other sources, is used to suggest a new theme ordering. Assuming that the multimedia device 200 makes the call to the server, at step S 1302 information associated with all themes, or a selection thereof, stored on the multimedia device is sent to the server 300 together with a set of signals representative of the current state of the multimedia device 200 and/or user related signals. At step S 1305, based on the information sent to the server 300 from the multimedia device 200, the server returns a new theme ordering to the multimedia device 200. Information relating to themes that should be deleted from the multimedia device 200 is also returned at this point. At step S 1306, themes are stored at the multimedia device 200 ready to be displayed on the virtual environment 100 in accordance with the returned theme ordering.
[0069] In figure 15 , a method S1600 of identifying bad themes, or fragments thereof, is illustrated. At a first step SI 601, the server 300 determines that an entire theme, or fragments thereof are bad. By bad it is meant that there is some form of error in the code, the assets of the theme are not correct or there is some issue with the associated metadata, for example. The server 300 then identifies all multimedia devices 200 that have downloaded the relevant theme, or fragments thereof. A notification is issued and automatically transmitted to each multimedia device 200 that is known to have downloaded the relevant theme. This determination can be also done at the next time the client device is requesting information from the server, thus using a pull mechanism for updating the correctness status of the theme.
[0070] Upon receipt of the notification, the multimedia device 200 at Step SI 602 determines whether the theme that has been identified as being bad, or having bad fragments, is being displayed in the virtual environment. If that theme is being displayed, it is replaced with the virtual environment’s default theme, or any other theme that is not marked as bad. These can occur at the point the multimedia device 200 receives the notification or it can be schedules for a convenient time such as completion of a level, if the virtual environment represents a game, or closing a document, if the virtual environment is an application. The mechanism of replacing the theme is described below.
[0071] If the theme that has been identified as being bad, or having bad fragments, is not being displayed, or if it had been displayed but has now been replaced (as described above), the bad theme, and associated fragments, at Step SI 603 are deleted from the multimedia device. In that case, the theme of the virtual environment is reset to utilize the default theme for the virtual environment. If one or more other themes are available to the virtual environment then one of these can be applied in place of the bad theme. A new version, good version of the theme marked as bad can then be re-downloaded to the multimedia device 200 and displayed as described below.
[0072] The process of replacing a bad theme is initiated by way of a correction descriptor that is pushed to each multimedia device 200 by way of the notification sent by the server 300. The correction descriptor replaces the active theme to either cause the virtual environment to default to a default theme bundle or change to a previously stored theme bundle. It will be appreciated that the notification, and associated correction descriptor, may be pulled to the multimedia device instead of being pushed. [0073] Once one or more theme descriptors 1102 have been retrieved or downloaded by the multimedia device, any outstanding theme bundles also need to be retrieved or downloaded before the derived theme can be displayed in the virtual environment 100. A method S1400 of downloading theme bundles is shown in figure 16 and is substantively similar to the method S1200 described in relation to figure 13. The difference lies in the volume of information downloaded with each method, as well as that in method S1200 all the information for a descriptor is downloaded, at once, whereas in S1400 the information can be downloaded in fragments in certain occasions. At step S1401, a trigger event, as defined above, generates a notification at the multimedia device 200. The notification initiates the process of retrieving or downloading a theme bundle. At step S1402, one or more parameters of the multimedia device 200 or the container upon which the virtual environment 100 sits is retrieved. At step S1403, the retrieved parameters are compared against one or more predetermined parameter thresholds or criteria. Examples of such parameters include: network connectivity, communication with the server, battery level, processing capacity of the multimedia device and the current status of the virtual environment 100. At step S1404, whether to request one or more theme bundles to the multimedia device 200 is determined based on the parameters of the multimedia device 200 or container and the status of any theme descriptor(s) 1102 present at the multimedia device 200. At step S1405, where the server has determined that one or more theme bundles should be returned to the multimedia device 200, it is determined whether to return the theme bundle(s) in a single download or whether the theme bundle(s) should be split into fragments and such fragments returned to the multimedia device 200 in multiple, smaller downloads. At step S 1406, the theme bundle(s), or fragments thereof, determined in steps S1404 and S1405 are retrieved or downloaded by the multimedia device 200. At step S1407, theme bundle(s) 1102, or fragments thereof, retrieved or downloaded by the multimedia device 200 are verified based on age, expiry date, relevancy, or other criteria. Any theme bundle(s), or fragments thereof, that do not pass verification are discarded and deleted from the multimedia device 200. Those theme bundle(s) and fragments thereof that do pass verification are assigned a status value such as “complete and ready to display” or “incomplete and waiting for more fragments. Once a theme bundle has been fully retrieved or downloaded, all files may be unzipped and moved to a different storage location or displayed in the virtual environment 100.
[0074] Once a theme (theme descriptor and theme bundle) has been fully retrieved or downloaded by the multimedia device 200 it may be displayed in the virtual environment. The theme to be displayed in the virtual environment will be determined by the SDK based on how recent any ready-to-display theme is and also how recent the theme ordering is. This is shown in figure 17a. At step S1501 of method S1500, the SDK determines that a current theme should be replaced with a new theme upon receipt of a notification following a trigger event. At step S1502, the multimedia device 200 determines whether there are any complete, valid themes ready to be displayed in the virtual environment. At Step S1503, the campaign order of themes available to the multimedia device is analyzed for relevancy and expiry. If the campaign order of themes is determined to be not relevant or too old, a theme order update is triggered at Step S1504 by the multimedia device 200. Once the campaign order of themes is determined to be relevant and not too old, a first theme according to theme ordering is selected at Step S1505. At Step S1506, an animation, image, video, or solid color is presented at the virtual environment to mask all or part of the current theme. At step S 1507, the new theme descriptor 1102 and new theme bundle are imported into the virtual environment 100 to replace the current theme descriptor and current theme bundle. At step S1508, the new theme is displayed in the virtual environment 100. At step S1509 the new derived theme that is being displayed in the virtual environment 100 is recorded and all user events that occur while the new them is being displayed are also recorded. Where the new derived theme and user events are recorded depends on the availability of the server 300. If the multimedia device 200 can connect with the server 300 then the new derived theme and user events are recorded at the server 300. Otherwise, the new derived theme and user events are recorded at the multimedia device 200 by the container. When the multimedia device 200 connects to the server 300, the new derived theme and user event recorded information is sent by the multimedia device 200 to the server 300 for recording. [0075] In certain circumstances it is desirable or necessary for a user to be able to return the virtual environment to display a default theme, i.e. a theme that was installed with the virtual environment, or a previously displayed or preferred (user or pre-determined) theme. This can be achieved through the user performing an action through the multimedia device 200. Such an action may be a gesture, on a touchscreen screen or disrupting a magnetic field, selecting a button or icon within the virtual environment, voice command, keystroke, input peripheral instruction or shaking the multimedia device, for example. Upon the multimedia device 200 determining that the user wishes to return to a default, or earlier theme, an animation, image, video, or solid color is presented at the virtual environment to mask all or part of the current theme while the current theme is replaced with a default, or earlier theme.
[0076] A system enabling execution of the methods described above in relation to figures 13 to 17 is illustrated in figure 18. [0077] The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the operations described. The required structure for a variety of these systems will be evident from the description above. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
[0078] The foregoing discussion merely describes some exemplary embodiments. One skilled in the art will readily recognize from such description, the accompanying drawings, and the claims, that various modifications may be made without departing from the spirit and scope of the disclosure.

Claims

What is claimed is:
1. A method for replacing a theme of a virtual environment, the method comprising: receiving a notification at a multimedia device to retrieve one or more themes from a server; determining a current status of the multimedia device; in response to determining the current status of the multimedia device: retrieving the one or more replacement themes from the server if the status of the multimedia device is in accordance with one or more predetermined criteria; and re-scheduling until a further notification is received at the multimedia device or terminating retrieval of the one or more replacement themes from the server if the status of the multimedia device is not in accordance with the one or more predetermined criteria.
2. The method of claim 1 further comprising: displaying assets on the multimedia device to mask the virtual environment; replacing the theme of the virtual environment with a theme retrieved from the server; displaying the retrieved theme within the virtual environment.
3. The method of claim 1, wherein the notification is received at the multimedia device following occurrence of a trigger event that automatically generates the notification.
4. The method of claim 1 further comprising: determining whether the status of the multimedia device has remain unchanged for a period of time in excess of a threshold period; if so, receiving a new set of theme descriptors from the server.
5. The method of claim 1 further comprising: assigning a priority ranking to each virtual asset that is available for retrieval from the server; and managing the order of retrieval of virtual assets in accordance with the one or more priority rankings.
6. The method of claim 1 further comprising, by the multimedia device requesting a theme order from the server if the status of the multimedia device is in accordance with the pre determined criteria and determining a theme order at the multimedia device is the status of the multimedia device is not in accordance with the pre-determined criteria.
7. The method of claim 1 further comprising validating a theme downloaded to the wireless electronic device against pre-determined validation criteria and displaying the theme if the theme meets the pre-determined validation criteria and deleting the theme from the multimedia device if the theme, or any part thereof, does not meet the pre-determined validation criteria.
8. The method of claim 1 further comprising collecting usage information and recording user interactions with the virtual environment and/or multimedia device during a time period that a theme is displayed by the virtual environment; sending such usage information and a summary of user interactions to the server if the status of the multimedia device meets the predetermined criteria; and storing the usage information and the summary of user interactions at the multimedia device if the status of the multimedia device does not meet the pre-determined criteria.
9. A system for replacing the theme of a virtual environment, the system comprising a wireless electronic device and a server that are non-permanently connected via a network, wherein each of the multimedia device and server comprise storage and a processor for executing the method of claims 1 to 8.
10. A system for replacing the theme of a virtual environment, the system comprising: means for receiving a notification at a multimedia device to retrieve one or more themes from a server; means for determining a current status of the multimedia device; means for in response to determining the current status of the multimedia device: retrieving the one or more replacement themes from the server if the status of the multimedia device is in accordance with one or more predetermined criteria; and re-scheduling until a further notification is received at the multimedia device or terminating retrieval of the one or more replacement themes from the server if the status of the multimedia device is not in accordance with the one or more predetermined criteria.
11. A non-transitory computer-readable medium having instructions encoded thereon for replacing the theme of a virtual environment, the instructions comprising enabling the execution of the method of any of claims 1 to 8.
12. A method of extracting theme information from a virtual environment, the method comprising: reading in a representation of a virtual environment; analyzing the content of the representation; identifying theme assets and metadata files relevant to a theme within the representation; extracting information representative of the location and type of theme asset and metadata files; creating a theme descriptor comprising one or more theme slots, wherein each theme slot comprises a transformation instruction and a configuration and is linked to one or more multimedia assets defined by a theme data bundle.
13. The method of claim 12, wherein the representation of the virtual environment comprises a build bundle or binary bundle of the virtual environment.
14. The method of claim 12, wherein the representation comprises a usage video depicting the virtual environment and the method further comprises: identifying each frame of the usage video; extracting a sound clip from each frame of the usage video and aligning therewith; comparing two or more frames to identify features that are constant between frames of the usage video; determining the relevance of the constant features to the theme; extracting those features that are determined to be relevant to the theme; and assigning a prominence value to each extracted feature.
15. The method of claim 12 wherein the representation comprises one or more screenshots depicting the virtual environment and the method, further comprises: identifying features within the screenshot; determining relevance of the identified features to the theme; extracting those features that are determined to be relevant to the theme; and assigning a prominence value to each extracted feature.
16. A non-transitory computer-readable medium having instructions encoded thereon for theme information from a virtual environment, the instructions comprising enabling the execution of the method of any of claims 12 to 15.
17. A method of identifying and replacing a bad theme bundle, or parts thereof, the method comprising: receiving a notification at a server indicating that a theme bundle, or parts thereof are bad; sending theme correction instructions to a plurality of multimedia devices loaded with a specific theme; identifying whether a multimedia device is displaying the specific theme; upon determining that the multimedia device is displaying the specific theme, transitioning the specific theme to a new theme; and deleting the specific theme from the multimedia device.
PCT/EP2020/080582 2019-11-01 2020-10-30 Systems and methods for replacing a theme of a virtual environment WO2021084101A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962929355P 2019-11-01 2019-11-01
US62/929,355 2019-11-01

Publications (1)

Publication Number Publication Date
WO2021084101A1 true WO2021084101A1 (en) 2021-05-06

Family

ID=73059884

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/080582 WO2021084101A1 (en) 2019-11-01 2020-10-30 Systems and methods for replacing a theme of a virtual environment

Country Status (1)

Country Link
WO (1) WO2021084101A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296863A (en) * 2021-05-26 2021-08-24 平安国际智慧城市科技股份有限公司 Dynamic skin changing method, device, equipment and storage medium based on IOS system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092057A1 (en) * 2006-10-05 2008-04-17 Instrinsyc Software International, Inc Framework for creation of user interfaces for electronic devices
WO2008085011A2 (en) * 2007-01-12 2008-07-17 Kyung-Yang Park Method and system for replacing advertisement skin in mobile advertising game
US20090106315A1 (en) * 2007-10-17 2009-04-23 Yahoo! Inc. Extensions for system and method for an extensible media player
CN107844315A (en) * 2017-12-27 2018-03-27 北京酷我科技有限公司 The strategy that app themes skin upgrades in a kind of Android

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092057A1 (en) * 2006-10-05 2008-04-17 Instrinsyc Software International, Inc Framework for creation of user interfaces for electronic devices
WO2008085011A2 (en) * 2007-01-12 2008-07-17 Kyung-Yang Park Method and system for replacing advertisement skin in mobile advertising game
US20090106315A1 (en) * 2007-10-17 2009-04-23 Yahoo! Inc. Extensions for system and method for an extensible media player
CN107844315A (en) * 2017-12-27 2018-03-27 北京酷我科技有限公司 The strategy that app themes skin upgrades in a kind of Android

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296863A (en) * 2021-05-26 2021-08-24 平安国际智慧城市科技股份有限公司 Dynamic skin changing method, device, equipment and storage medium based on IOS system

Similar Documents

Publication Publication Date Title
US10474693B2 (en) Resolving conflicts within saved state data
CN102971688B (en) Cross-platform program frame
CN107820701B (en) Developer exchange system
US10673916B1 (en) Executing applications in remotely emulated computing devices
US20140047413A1 (en) Developing, Modifying, and Using Applications
US20130066819A1 (en) Adaptive recommendation system
CN108549567B (en) Animation display method, device, terminal, server and storage medium
CN103312761A (en) System and method for optimizing transfers of downloadable content
US10777019B2 (en) Method and apparatus for providing 3D reading scenario
WO2017139178A1 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
US20200134257A1 (en) Creating and modifying applications from a mobile device
US11699173B2 (en) Methods and systems for personalized gamification of media content
US9618995B2 (en) System and method for displaying content on a computing device during an inactive or off-state
KR20210083578A (en) Method, system, and computer program for providing experience that consumes video and comment at the same time
Jackson Android apps for absolute beginners: covering Android 7
US11146860B2 (en) Service processing method, device, and intelligent terminal for obtaining and displaying data based on texture data corresponding to a target service
EP2590074A1 (en) System for inserting services in a software application
WO2021084101A1 (en) Systems and methods for replacing a theme of a virtual environment
US20110314370A1 (en) Tiered pageview generation for computing devices
KR102225414B1 (en) System and apparatus for managing contents based on cloud computing
KR20210052912A (en) Method and apparatus for recommending app function shortcuts through app usage pattern and conversation analysis
CN113051336A (en) Visualized data operation method, system, device and medium
Mostyaev Social features of mobile application development
US20240070713A1 (en) Method and apparatus to provide replaceable graphical representation on a home screen
US8898125B2 (en) Method and apparatus for awarding trophies

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20800858

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20800858

Country of ref document: EP

Kind code of ref document: A1