Torrent Setup Guide

Results 1 to 1 of 1
  1. #1
    The Cyber Fox adastmin is offline
    MemberRank
    Feb 2011 Join Date
    WashingtonLocation
    405Posts

    idea Torrent Setup Guide

    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:



    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. opentracker | erdgeist.org

    Seeders


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


    For WEB seeds we use nginx.nginx documentation


    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:






    PatchServer schema





Advertisement