World Push

From HEWIKI
Jump to: navigation, search

He server.png Documentation on this page is intended for customers of HeroEngine managing their own server(s).

World Push is a downloadable application for moving game data and content between servers, while they are shut down. To do the same thing while the servers are running, see Live Update.
Using Push Tools To Update Servers

Contents


Overview

Typically, MMOs distribute new content via pak files that include all of the new game data and content. In a development environment, that means that game logic and new content can not actually be used or tested until the next build cycle is complete and the pak files updated. For the end-user, pak files are typically distributed on the dreaded "patch day". While supporting the concept of patches, HeroEngine supports a much more organic workflow for game designers and world builders where their modifications take affect in real-time. Leaving the question, how do you update other worlds with new data in HeroEngine?

A typical HeroEngine deployment will often include layers of world servers that are used to isolate one or more development and QA worlds from the production game worlds. World Push serves as one of two potential mechanisms, the other being Live Update, by which game data and content may be moved from one world server to another.

The amazing thing about this process is that it does not require excessive downtime as it can be done in as few as a couple minutes! That means you can update your QA worlds, public test or even production servers with only a few minutes of downtime.

Even more amazing is that most of this process can be done with no downtime at all! World Push's companion, Live Update, is capable of doing almost everything World Push does while the servers are still up and running!


What problem(s) does this solve?

What Problem(s) does this not Solve?

Concepts



Who needs World Push?

World Push is used to copy Game Data and Content from one world to another, consequently you only need to use World Push if you are running multiple worlds that you want to keep in sync.

Servers hosted by HeroEngine Operations do not have the World Push functionality available to them.

Usage

Installing and Running the World Push Application

World Push
If you are a Full or Source licensee, World Push is made available as a private download. If you are a different type of licensee, your world is maintained and updated by the HeroEngine team, leaving you with no need for World Push and, accordingly, no access to it.

Once World Push is downloaded, you install and run World by running its .sal file like any other executable. You may run World Push again after closing it via the Start Menu. A link to World Push's .sal file is placed in "All Programs" under either "Play.Net/Tools" or "HeroEngine Tools".


Pushing Game Content

Pushing game content from a source world to a destination world is an easy four step process in World Push:

  1. Select source and destination world information
  2. Select GOM and DOM changes to apply
  3. Select Repository changes to apply
  4. Commit the push

As each step is completed the next step's number changes from dimmed to bright within the World Push UI to denote that it is available.

Step 1: Select source and destination world information

You must tell World Push what worlds it should compare and what options should be used when comparing them. World Push presents you with a list of known worlds that you choose from to select the Source and Destination worlds. You must also tell World Push whether it should compare the server or client data of the worlds. A drop-down list on the UI allows you to select which portion of the worlds to compare. Finally, World Push will compare the Game Contents stored within the worlds' Repositories if you tell it to. You may check the Full File Scan checkbox to enable Repository comparisons.

World Push Step 1.png

Step 1a: Source and destination world selection
World Push Step 1a.png
World Push Step 1a FSService Connect.png
World Push Step 1a FSService.png
World Push, like HeroEngine Publish, makes use of the FSService UI to allow selection of the Source and Destination worlds from the FSService Schema.



Step 1b: Client or server comparison selection

World Push Step 1b.png
World Push allows the comparison of either the Client or Server data contents of any two worlds.

Step 1c: Repository comparison selection

World Push Step 1c.png
World Push 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.

Step 1d: Schema difference generation

World Push Step 1d.png
World Push requires the selection of Source and Destination worlds, selection of which GOM data (Server or Client) to compare and a determination whether or not to compare Repository data.

Step 2: Select GOM and DOM changes to apply

You must select which GOM and DOM Changes should be copied to the Destination world from the categorically sorted list World Push 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.

World Push Step 2.png
World Push Step 2 Change Selection.png
Removing Selected Changes


Step 3: Select Repository changes to apply

You must select which Repository Changes should be copied to the Destination world. World Push gathers all of the Repository Changes it generated during the comparison of the Source and Destination worlds and stores them in a folder hierarchy just like the one in the Repository. In addition, when selected, some GOM and DOM changes generate Repository Changes which are added to the sorted hierarchy and selected. You browse the tree view containing all of the sorted Repository Changes and select which ones should be copied to the Destination world. If you did not tell World Push to compare the Source and Destination worlds' Repositories, and no GOM or DOM changes have generated any, there will not be any Repository Changes to choose from.

World Push Step 3.png
World Push Step 3 Change Selection.png



Step 4: Commit the push

When you have selected all of the GOM, DOM and Repository Changes you want copied to the Destination world, you may tell World Push to begin copying everything. World Push 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, World Push 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 World Push to finish copying everything. Have patience!

World Push Step 4.png

Applying the selected change set

World Push Step 4a.png

Viewing Errors

World Push Step 4c.png

Saving and loading change sets

To ease copying of the same Changes to multiple worlds, World Push offers the ability to save a file detailing which GOM, DOM and Repository Changes have been selected. Any time two worlds containing these Changes are compared the file can then be read in and the Changes will be selected again. Currently, World Push requires all of the Changes in the file to be listed in the comparison it has generated or an error will be thrown during Change file reading.

World Push Step 4b.png

Push Statistics

To help estimate how long the application of GOM, DOM and Repository Changes to multiple worlds will take, World Push keeps timing statistics for each Push. World Push does not store these statistics between runs of the program, so any information needed must be collected before it is closed down. Timing records for each Push are displayed in a tree view along with a record of each GOM, DOM and Repository Change that was Pushed. The time spent during the Push is split into two categories: time for GOM/DOM Changes and time for Repository Changes.

World Push Statistics.png
World Push Statistics Panel.png

Viewing the total time for a Push

Viewing the total time for multiple Pushes


Technical requirements

World Push has several technical requirements to run:

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox