- Live Update is a capability that is accessible via the HeroBlade Panels menu, to move content between servers while they are running. To move data between servers while they are shut down, see the World Push application.
In other MMO server architectures, game content updates require all game servers to be brought down before they are updated with new data. This blocks developers and players from interacting with the game/development worlds for the time that the servers are down. Live Update avoids these cumbersome and wasteful steps by only requiring downtime for areas that are being updated. Game content can be pushed on-the-fly to any running game server.
What problem(s) does this solve?
- Moving game data and content from Development to Live servers, without bringing the world's servers down and disrupting gameplay or game development
- Development Environments: If your development environment has multiple worlds (such as multiple development worlds, QA worlds and live worlds), you can push content between these worlds while work continues in each.
- Live Games: Introduce content to players at key moments as they are playing, rather than giving it to them ahead of time. This will allow for surprise events.
- Fixing Problems Immediately: You can fix content problems in the live games without having to bring those games down and kick all players out.
This process can be done during downtime too! Live Update's companion, World Push, is capable of doing everything Live Update does, and more, while the servers are down!
What Problem(s) does this not Solve?
- Does not create "patches"
- Does not support character transfers from one world to another
- Does not transfer arbitrary database information
- Does not transfer very large amounts of game content. Instead, World Push is the tool to use when seeding new worlds or if the content update will be too large for Live Update to handle.
- Works on worlds that are running.
- Generates a list of differences, called Changes, between a Source world and a Destination world.
- Changes relate to Game Content, Area, Game Logic, GOM and DOM data
- Requires the user to pick and choose which Changes to copy to the Destination world
Who needs Live Update?
Because Live Update is used to copy Game Data and Content from one world to another, you only need to use it if you are running multiple worlds that you want to keep in sync.
Live Update can be used to synchronize all of your worlds' data irregardless of your license type.
Running Live Update
Live Update is integrated with HeroBlade as one of the many panels of tools available. If you are not a Full or Source licensee, Live Update will not be terribly useful to you, but it is still available within HeroBlade.
Live Update is accessed by:
- Logging into one of your worlds via HeroBlade, opening the Panels menu, and selecting the Live Update panel.
- Note: All of Live Update's work is carried out on a Live Update Server, so after the Live Update Client Panel is visible, you must still Connect to the Live Update Server before proceeding.
The Live Update panel has four sections or subpanels. Going from top to bottom, these are:
- LiveUpdate Connection: Where the Source and Destination Worlds are specified, as well as the type of comparisons to do. This panel also has the buttons to Connect to the Live Update Server, and the "Compare World" button
- FSService Connection: Opened when "Choose World" is selected from the LiveUpdate Connection subpanel, this allows entry of the FSService connection data, as well as a place to save and load different configurations of FSService connection data.
- GOM Differences: After a compare is done, this lists the available GOM changes, which can be manually selected (or not) per the needs of the update.
- Repository Differences: If an optional Repository compare was chosen, then after a compare is done, this section lists the available repository changes, which can be manually selected (or not) per the needs of the update.
Connect to LiveUpdate Server
To proceed, in the LiveUpdate Connection section of the panel, press the Connect button to spin up a Live Update Server for your use.
- Note: If you press the Disconnect button or close HeroBlade, your Live Update Server is automatically shut down, and any pending work is lost.
Pushing game content from a source world to a destination world is an easy four-step process in Live Update:
- Select source and destination world information
- Select GOM and DOM changes to apply
- Select Repository changes to apply
- Commit the push
The first three steps may be accomplished without causing any changes to any worlds. No changes are actually made until Step 4.
Step 1: Select source and destination world information
If you haven't yet:
- Log into the "Destination" world to be updated, via HeroBlade
- Open the LiveUpdate panel via the Panels menu
- Connect to the LiveUpdate Server by pressing the Connect button in the LiveUpdate Server Connection subpanel of the LiveUpdate panel.
The "destination" world will always be the world that you are currently logged into. The LiveUpdate panel allows you to configure which world will be compared (the "source" world) with the current one, and which options to use during the compare, sure as whether to compare the "server" or "client" data of the worlds.
Finally, Live Update can (if the option is selected) compare the Game Contents stored within the worlds' Repositories, by choosing "Full File Scan".
Step 1a: Source world selection
Live Update, like World Push, allows selection of the Source world from the FSService Schema.
- Select the Source World by pressing the Select World button. This opens the FSService Connection subpanel.
- Enter your Oracle FSService Schema connection information (or select a name from the "Saved Connection Info" dropdown), and press the Connect button. If you do not know your schema connection information, check with your Database Administrator for a Service Schema, Service Password, Service Database path, and username.
- Once entered the first time, connection information can then be saved by pressing the Save button and entering a name in the Save FSService Connection popup.
- Saved connection information can be used by selecting it in the Saved Connection Info drop-down list.
- Saved connection information can be removed, by selecting it in the Saved Connection Info drop-down list and pressing the Delete button.
- Once the Schema information is entered, press the Connect button in the FSService Connection subpanel, to display a list of available worlds.
- Select the desired "Source" World for the comparison from the World List, by double-clicking its name or single-clicking it and pressing the Select button.
- The selected Source World's Server, Client and Repository Schema information are recorded for use when comparing the Source and Destination worlds.
Step 1b: Client or server comparison selection
- Back in the LiveUpdate Connection subpanel, select whether to compare the Client or Server data in the World Diff Type drop-down.
Step 1c: Repository comparison selection
Live Update allows the comparison of the Repository contents of any two worlds. Comparing the contents of Repositories can be time-consuming depending on the number of files within each repository, Live Update defaults to not performing the comparison.
- Select whether or not to compare the Repository data in the Repository Diff Type drop-down.
Step 1d: Schema difference generation
- Press the Compare Worlds button to compare the Source and current worlds and generate a list of Changes that can be applied to the current world. This may take awhile, from a few seconds to several minutes, depending on the size of the worlds being compared.
- Note: Once Live Update has performed a comparison, changes to the World Diff Type and Repository Diff Type comparison settings cannot be made until the existing difference set has been unloaded.
Step 2: Select GOM and DOM changes to apply
You must select which GOM and DOM Changes should be copied to your current world from the categorically sorted list Live Update presents. You browse the tree view containing all of the sorted Changes and select which ones should be copied to the Destination world. If a selected Change depends on another Change, it is automatically selected as well. For instance, the addition of a Class may depend on the addition of its Fields.
- Click the GOM Differences subpanel to display the available changes that can be applied to the Destination world.
- This panel shows all available GOM changes, divided by GOM Data Change categories, in an Available Changes tree view.
- A detailed tooltip containing the name, ID, category and description of a GOM Data Change will display if the mouse is hovered over it.
- This panel also shows an initially empty, Selected Changes tree view.
- Select a desired available GOM Data Change or GOM Data Change Category for updating by right-clicking it, and clicking the Select menu item.
- The selected Change, or contained Changes if a Category was selected, is moved to the Selected Changes tree view.
- Selected changes' dependencies are automatically selected and listed below them in the Selected Changes tree view.
- As appropriate, selected changes' Repository Data Changes dependencies are automatically selected, and can be viewed in the Repository Differences subpanel.
- Repeat above steps for all desired available Changes.
Removing Selected Changes
- To remove a selected change, right-click the undesired item or category on the "Selected Changes" side of the window, and click the Select menu item to cancel it.
- The selected Change, or contained Changes if a Category was selected, is moved to the Available Changes tree view.
- Child dependency nodes are automatically unselected when all of their parent selected changes are unselected and may not be manually removed.
- Repeat for all undesired selected Changes.
Step 3: Select Repository changes to apply
Note: If you did not tell Live Update to compare the Source and Destination worlds' Repositories, and/or no GOM or DOM changes have generated any, there will not be any Repository Changes to choose from.
- Click the Repository Differences header to open the subpanel which lists the changes that can be applied to the Destination world.
- This panel shows all available Repository Changes, divided by their FQN's Folder Hierarchy, in an Available Changes tree view.
- If a Repository comparison was not performed, the only Changes listed will be those automatically added by the selection of GOM Data Changes in the GOM Change Selection Panel.
- This panel also shows an initially empty Selected Changes tree view.
- Select a desired Repository File Change or Repository Folder for updating by right-clicking it and clicking the Select menu item.
- The selected Change, or contained Changes if a Folder was selected, is moved to the Selected Changes tree view.
- Repeat for all desired available Changes.
Removing selected Repository changes
To remove changes, right-click the item in the "Selected Changes" tree view, and select it again.
Step 4: Commit the Update
When you have selected all of the GOM, DOM and Repository Changes you want copied to the world you are currently connected to, you may tell Live Update to begin copying everything. Live Update will copy each of the selected GOM and DOM Changes over in a series of phases, reporting its progress in the Output box while doing so. Once all of the GOM and DOM Changes have been copied, Live Update will copy over all selected Repository Changes. Depending on the number of selected GOM and DOM Changes and the sizes of the selected Repository Changes, it may take some time for Live Update to finish copying everything. Have patience!
Applying the selected change set
- Press the Apply Changes button to begin the process of applying each GOM, DOM and Repository Data Change.
- If problems arise during the application of GOM Data Changes, the update will halt and all alterations to the currently connected world will be rolled back.
- If problems arise during the application of Repository Data Changes, the update will halt but application of any previous Data Changes, GOM or Repository, are NOT rolled back.
- Notification of each action within the Update process is reported in the Output text box.
Live Update has the following technical requirements to run:
- HeroBlade must be installed.
- A working network connection to an FSService Database Schema, and the chosen Source Database Schema.