Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Torrent Setup Guide

Joined
Feb 2, 2011
Messages
437
Reaction score
451
Short Description


Allods Online client uses update system. So on each application launch game checks new updates and installs them if there are any. Also this system can check game client on consistency. Short check of binary executable files and serialized data bases is proceed on each launch. Full check is proceed after patch implementation and can also be started manually from Launcher.exe interface.
Here is a scheme of update system:
adastmin - Torrent Setup Guide - RaGEZONE Forums



Client Part


Client part consists of three modules:

Code:
• Launcher.exe - module of data downloading and repair tool. They can be executed by user. • SyncVersion.exe - module of updates installation. It is launched by Launcher.exe file. • Repair.exe - special installer that fixed problems in repair system. It can be downloaded from publisher's web-site if needed. Launcher.exe can redirect use to the proper link if there are any problems.



Server Part

Patch-server old​


Patch sequence calculation was transferred to client side. Java application was removed from Patch-server structure. For these purposes all data files from Patch Server should be avaliable on WEB.
For Example PatchesHistory.xdb contains following.


Code:
<?xml version="1.0" encoding="UTF-8" ?>
    <torrentServer.TorrentPatchesTree>
        <ripTorrentFile>*Operator_2.0.02.96.torrent*</ripTorrentFile>
        <versionFile>*Operator_2.0.02.96.version*</versionFile>
        <repairInstallerFile>Operator_Repair.exe</repairInstallerFile>
        <versions>
            <Item>
                <versionNumber>2.0.02.92</versionNumber>
                <isCritical>true</isCritical>
                <updates>
                    <Item>
                        <beaten>false</beaten>
                        <syncVersionID>777</syncVersionID>
                        <weight>30</weight>
                        <patchedTo>2.0.02.96</patchedTo>
                        <torrentFile>*Patch_Operator_2.0.02.92_2.0.02.96_.patch.torrent*</torrentFile>
                    </Item>
                </updates>
            </Item>
            <Item>
                <versionNumber>2.0.02.96</versionNumber>
                <isCritical>true</isCritical>
                <updates />
            </Item>
        </versions>
    </torrentServer.TorrentPatchesTree>

The following files should be available for downloading:


Code:
• PatchesHistory.xdb - Patch history description.
 • current.version - txt file with version string. For this example it will be 2.0.02.96
 • Operator_2.0.02.96.torrent - full client torrent
 • Operator_2.0.02.96.version - version CRC file - it should be copied from latest client Profiles\game.version
 • Patch_Operator_2.0.02.92_2.0.02.96_.patch.torrent - Patch torrent

All files should be avaliable by url template
http:\\patchServerDNS\OptionalString\filename


Where


Code:
• patchServerDNS - DNS of Patch Server
 • OptionalString - additional string for WEB team purposes - can be Empty
 • filename - file name for download

Launcher.exe will upload current.version as first step and compare it with client version. In case when client need update, it will download PatchHistory.xdb and get a list of patch torrents from it, and start downloading process.



Patch-server 3.0


Config files CurrentVersion.xdb and Launcher.torrent have been added.


Current.version has been removed.


CurrentVersion.xdb file strcture:<?xml version="1.0" encoding="UTF-8" ?>
Code:
<currentVersion>
        <gameVersion>current_live_server_version</gameVersion>
        <prepatchVersion>prepatch_version</prepatchVersion>
        <launcherVersion>required_launcher_version</launcherVersion>
</currentVersion>

, where:
current_live_server_version – string; equals to current string from current.version
prepatch_version – string; game version which has available in next patch, for preloading, you can make it blank
required_launcher_version – string (blank)


Launcher.torrent file consists of latest file versions which are necessary to launcher work. Also it includes game.version file of latest update. I.e. this torrent always has the latest launcher and game version.


Launcher.torrent file contents:Launcher/
Code:
        Launcher.exe
        libeay32.dll
        libexpatw.dll
        mfc80.dll
        mfc80u.dll
        mfcm80.dll
        mfcm80u.dll
        Microsoft.VC80.CRT.manifest
        Microsoft.VC80.MFC.manifest
        msvcm80.dll
        msvcp80.dll
        msvcr80.dll
        ssleay32.dll
        zlib1.dll
        game.version



Tracker


We use opentracker program for torrent distribution. It has free lisence, but you may use any other program for such purposes.

Seeders


We use clienttransmission program for seeding. It is free, but it can be changed with any other program you like.


For WEB seeds we use nginx.


Working schema


We use the scheme with test and live torrent servers. All patches are implemented on test server at first. They are tested and if patch is approved and no bugs found we switch patching port and update becomes available to players. So our patch server is always available.
Here is a scheme of how it works:

adastmin - Torrent Setup Guide - RaGEZONE Forums





PatchServer schema

adastmin - Torrent Setup Guide - RaGEZONE Forums
 
Back
Top