Game Packaging and Patch System Setup - Windows Server
(This is a draft document)
Server Software Installation
Requirements
Apache Web Server
Download Apache Web Server 2.0.63
(Do not use 2.2 on Windows, Subversion modules are built against 2.0)
Subversion
http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe
1. Install Apache Web Server
2. Install Subversion (the installer also installs the necessary Apache modules, once finished you should see SVN/1.4.3 in the Apache Server Monitor. If not, try restarting Apache.)
3. Open a command shell, and type: svn help [Enter] (You should see a help page for Subversion displayed. If not, you should edit your path so that C:\Program Files\Subversion\bin is in it.)
4. Type the following:
cd c:\ mkdir mygame cd mygame mkdir svnrepo cd svnrepo svnadmin create patchfiles "C:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -bc htpasswd admin mypassword "C:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -b htpasswd starter myotherpassword
5. Create a new text file with Notepad, paste the below into it, and then save it as C:\mygame\svnrepo\svnaccess.txt
[patchfiles:/] admin = rw starter = r
6. Select Start -> Program Files -> Apache HTTP Server -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File
7. Add this to the bottom of the file:
<Location /svn>
SetOutputFilter DEFLATE
SetInputFilter DEFLATE
DAV svn
SVNParentPath C:/mygame/svnrepo
# our access control policy
AuthzSVNAccessFile C:/mygame/svnrepo/svnaccess.txt
AuthType Basic
AuthName "My Game's Patch File Repository"
AuthUserFile C:/mygame/svnrepo/htpasswd
require valid-user
</Location>
8. Restart the Apache Server, open a Web Browser, and navigate to http://127.0.0.1/svn/patchfiles (You will be prompted for a username and password, username: admin and password: mypassword should bring you to Revision 0 of the repository)
9. You are now ready to configure your binary distribution of your game.
Workstation Setup
Requirements
Python Imaging Library
http://effbot.org/downloads/PIL-1.1.6.win32-py2.5.exe
Py2Exe
http://downloads.sourceforge.net/py2exe/py2exe-0.6.6.win32-py2.5.exe
Nullsoft Scriptable Install System
http://prdownloads.sourceforge.net/nsis/nsis-2.24-setup.exe
1. Install the Python Imaging Library, Py2Exe, and Nullsoft Scriptable Install System
2. Make sure you have have started a new game and setup the MMORPG servers before proceeding.
3. Add the following to the .\serverconfig\server.cfg file:
[Local] Working Repository = C:\mygame\patchfiles
Also, change the Patch Server entries with the proper information:
Patch Server Demo = starter:myotherpassword@http://127.0.0.1/svn/patchfiles Patch Server Premium = starter:myotherpassword@http://127.0.0.1/svn/patchfiles
4. Open a command shell and run:
cd C:\mygame svn co http://127.0.0.1/svn/patchfiles patchfiles
(Make sure to authenticate with the admin account, you need write permission)
5. Change directory to your source installation, and run: .\packaging\client2exe.py gameconfig=testgame.cfg py2exe
6. Run: .\packaging\builddistro.py
7. Copy the .\distrib\common folder to C:\mygame\patchfiles (you should end up with a C:\mygame\patchfiles\common folder)
8. Run: .\packaging\touchmanifests.py
9. Change directory to C:\mygame\patchfiles folder and run:
svn add common svn add windows svn commit -m "adding binary baseline"
Building Binary Client Installer
1. In your source installation, right click on .\packaging\nsis\mmogame_installer.nsi and select Compile NSIS Script
2. Double click the created MMOGame.exe and install the binary
Testing Installation
1. Start the Master Server (If it was already running, make sure to restart it)
2. Run Start -> Programs -> MMO Game
3. Register a new account, and then select Play Online. The client should generate a local manifest of files, contact the patch server, and patch if necessary (which requires a client restart). If there are no errors, you should be able to access the world selection gui.
Publishing a Patch
1. Open a command shell and change directory to your source installation
2. Run: .\packaging\builddistro.py gameconfig=testgame.cfg
3. Copy the .\distrib\common folder to C:\mygame\patchfiles (selecting overwrite files)
4. Run: .\packaging\touchmanifests.py
5. Change directory to C:\mygame\patchfiles\common
6. Run: svn commit -m "updating world database"
7. Run Start -> Programs -> MMO Game, select Play Online, and the new world.db should patch in.
Coming Soon: Building and deploying a binary package of the dedicated world server
