What have I done to integrate the browser? My goal for integration was always to keep it as simple as possible. The result is a set of classes, an archive factory, an archive and a stream file class, which hook the application to the deployment client. Step one for the transformation is to build archives from the assets. For this, I unzipped the packs and placed them in a parallel hierarchy to the single files. Now all the files were bundled with wxArchive, the archive builder tool of Jade:DS. The generated archives are preprocessed and optimized for the revision base deployment mechanism.

The next step is to add two lines to the sample browser, which create and destroy the archive factory. This represents the connection to the client and can be accessed from the resource.cfg by prefixing a JadeDS: to the path. The two lines are added to the SampleContext.h file and not to OgreRoot.cpp, as the constructor contains the product name to connect with. I choose initApp and closeApp for this. Another change I made to the samples was to add a boolean return value to initApp, but that's only to allow a message-less exit from there. Now the project needs to be compiled once more and the binaries can now be packed into another archive. I choose to use a seperated archive for the binaries because of two reasons. First, this makes the result more platform independent, we only need to pack the binaries for the upcoming mac os and maybe a future linux version. Second, the binary archive can be excluded from the in-game resource list. The only extra file needed for this archive is the setup.xml, which contains the installation script. This script defines, which files are decompressed to the real file system and which are verified before each launch for modifications.


There is a third, very small archive, which needs to be generated before deployment, which contains the product.xml, a file, which defines the association of all archives, their mount points and the in-client presentation of the game. This includes multi-language titles and small thumbnails for preview. The images for this are included in this archive as well.


Finally, the generated archives need to be registered with the system and by assigning the desired revisions to the deployment channels, the samples are ready to be shipped to the client immediately.

Within minutes, the whole sample browser is downloaded to the client and can be started from there. All necessary files will be installed during the first launch.



For regular updates on the progress of the beta and the public release, you can visit the development blog and follow me on twitter. Don't hesitate to contact me in personal (andreas.podgurski{at}mediaguild{dot}de), if you are interested in participation in the beta or if you have a game you would like to publish yourself. Things will progress now pretty fast, so be sure to gain your first row seat for news!