Setting up a DOLServer (DAOC server emulator)

DOL = “Dawn of Light” and it is a community driven, open-source Dark Age of Camelot server emulator that is coded in C# and has been a ‘work in progress’ for about a decade or more.  Most of the information in this guide has been compiled from innumerable sources found on the Official DOLserver Forums.

I’m writing this up-to-date guide because most of the ‘official’ documentation on DOLserver is outdated and I’m tired of trying to piece together information that is scattered willy nilly across a multitude of forums through several years.

First, you need to address the prerequisites – esp. if you’re planning on compiling a ‘virgin’ game server, or coding your own modifications in C#.

Suggested Experience:

This process is not for the faint of heart, nor for an inexperienced IT person. You should be VERY comfortable around tools like Apache, PHPMyAdmin/MySQL and using code-compiler IDEs (Integrated Development Environments) like Visual Studio, SharpDevelop, NetBeans, or Zend/Eclipse.  Additionally. you’ll need a lot of patience.

Rarely do any installs, upgrades, code-compiles, or SQL updates proceed without any issues.  Even with a guide like this, you are bound to run into errors or failures along the way. Therefore you also need to be fairly fluent in troubleshooting such issues.

Even after you get it up and running, the server itself is a work-in-progress. The game will not play as LIVE, however it’s a close approximation. Keep in mind there will be a lot of ‘fixes’ that you will need to implement on your own.

Suggested Hardware: 

Just about any Windows PC made in the last 5-10 years. I’ve run the server on up-to-date 64-bit gaming rigs, an older 32-bit Vista box, and a laptop without any issues related to hardware.

Suggested Software:

An up-to-date DAOC Client
Uniform Server (A WAMP [Windows/Apache/MySQL/PHP] server with MySQL & PHPMyAdmin)
TortoiseSVN to download the C# projects from the DOL code repository
The latest .NET Platform (at the time of this writing .NET 4.5.2)
#develop (aka sharpdevelop) an IDE to compile the C# code
The ‘Rolled-Back’ game.dll file (rename your old one to something like gameORIG.dll)
DOLloader to login to your server w/o using the ‘DAoC Portal’ login app

Quick Process (assuming all above software-installs are complete!)

  1. Use TortoiseSVN to get the latest source code
  2. Compile the source code using #Develop (pronounced “Sharp Develop”)
  3. Move all .dll files from the ‘release/lib’ directory up one level to the ‘release’ directory
  4. Download and create the game database using PHPMyAdmin
  5. Use DOLConfig.exe to set up the DOLServer configuration (db link, type of server, etc)
  6. Configure DOLloader batch file, Start the Server & Enjoy

Detailed Process:  

  1. Download the Source Code (you need TortoiseSVN installed for this step)
    1. Create a new folder to download the DOL source code
    2. Open your new folder
    3. Right-click and select SVN Checkout…
    4. Fill in ‘URL of repository’ with: https://svn.code.sf.net/p/dolserver/code/DOLSharp/trunk/
    5. Click OK – this may take awhile depending on your bandwidth
  2. Compile the Code
    1. in your folder you should have a file named ‘Dawn of Light.sln’
    2. Open this file in #Develop
    3. Under the ‘Tools’ menu, select ‘Project Upgrade’
      1. Click the ‘Select All’ tick box
      2. ensure the ‘Convert selected projects to:’ is set to C# 5.0
      3. and set ‘Change target framework:’ to .NET Framework 4.5.1
      4. click the ‘Convert’ button
    4. Under the ‘Build’ Menu
      1. ‘Set Configuration -> Release’
      2. and then ‘Build Solution’ (or hit F8)
      3. Hopefully you will not have any errors, at this point I only had 3 ‘Warnings’ – which were safe to ignore
    5. You’re done with the compiler and can close #Develop
  3. Tweak the ‘release’ folder that #Develop created during the compile process
    1. Navigate to the ‘release -> lib’ folder
    2. ‘Shift select’ all of the DLL files
    3. Right-click and ‘Copy’ the files
    4. Move up one directory (now you’re inside the ‘release’ folder)
    5. Paste the DLL files in this folder so that DOLConfig.exe and DOLServer.exe can find them (these files should be located at this directory level)
    6. At this point I tend to rename the release folder (like DOLexeFiles) and move it outside of the source-code folder
  4. Prepare the game Database
    1. Now you need to have your Uniform Server up and running with MySQL and PHPMyAdmin – which I won’t describe here since that’s a whole other server configuration.
    2. Login to PHPMyAdmin
    3. Create a new InnoDB database for your server to use (I usually name my databases with DOL and the db-version in their name, and whether it’s ‘virgin’ or a ‘working’ db:  DOL30orig, DOL31custom, DOLMaster, or DOLmisiMouse, DOLgame etc )
    4. create a ‘user’ and assign that user full privs just for the DOL db you just created (I use this user for all of my other DOL db’s – you may end up with several databases, I usually have 7 or 8 DOL dbs at a time due to testing and backup purposes)
    5. Download the db SQL file that you want to use – I prefer the 3.0 release over the 3.1 alpha to use as my ‘Base database’ and build up from there.  The 3.1 db has some good stuff in it though, so grab it to use later for importing some of the better data.
    6. Move the SQL file to the special Uniform Server folder included for large SQL imports:  UniServerZ/etc/phpmyadmin
    7. This folder allows you to import very large SQL files using PHPMyAdmin without worrying about the usual MySQL import size limits
    8. Back in PHPMyAdmin, navigate to your empty DOL db
    9. Click ‘Import’ (along the top)
    10. Under ‘File to Import’ use ‘Select from the web server upload directory’  – and use the ‘drop-down’ box that allows you to select files from that special ‘phpmyadmin’ folder – select the SQL File you put there
    11. Leave all of the other settings as they are and click ‘Go’ at the bottom of the page – the SQL will build your db (this can take some time, it’s a big db)
    12. Hopefully you will get the message: “Import has been successfully finished” along with how many queries were executed and which sql file was used
    13. We’re done with the database! (for now)
  5. Configure and Test the Server
    1. Ensure that the ‘rolled-back’ game.dll file is in your DAOC game folder where the original game.dll file was
    2. I also move the dolloader.exe file into my DOLexeFiles (the renamed ‘release’ folder), along with its associated batch (.bat) file – (more info on these files)
    3. Start DOLConfig.exe – you may get an error asking to load a default configuration, just say yes to that.
    4. Now let’s adjust our configs, you should be on the ‘General configuration’ tab
      1. Here you can change your server name & short name (optional)
      2. Set your game type:
        1. Normal – ‘classic DAOC’ where you have PvE and RvR areas
        2. PvP – PvP everywhere (like the days of Mordred)
        3. PvE – Cooperative server (like Gaheris)
        4. Casual – I’m assuming this is like ‘Normal’
        5. Roleplay – Like ‘Normal’ but chat channels are expected to be ‘in character’
        6. Test – Like ‘Normal’ but things may be ‘broken’ and/or in testing
      3. Set your IP (for a local server I use the ‘loopback IP’ 127.0.0.1 )
    5. Now go to the ‘Database’ tab
      1. Ensure the ‘Database type” is set to MySQL
      2. Skip down to the ‘Database Name’ and put in the name of your MySQL db that you created in Step 4
      3. Enter the ‘Username’ and ‘Password’ that you created in PHPMyAdmin that has admin access to your db
      4. Click the ‘Test connection’ button, and if everything goes OK, you should get the following message: “Congratulations! I am Connected!”
      5. Click the ‘Save configuration’ button and exit DOLConfig
    6. You’re done configuring the server!
  6. Server Start-Up
    1. Double click the DOLServer.exe file
    2. A command window will open up and a lot of stuff will start streaming through the window. Don’t worry too much if you get some red and yellow text. But if it’s A LOT of red text, there’s probably a real issue.
    3. If all goes well, a message eventually appears indicating: “GameServer is now open for connections!”  (more ‘informative’ messages will appear after this message describing what is going on with the server like where it’s raining, logins, etc)
    4. You’re ready to login for the first time!
    5. Double click your .bat file from Step 5 and DAOC should start up!
    6. Choose your realm, create a character and start looking around
    7. Enjoy!

Comments

Setting up a DOLServer (DAOC server emulator) — 7 Comments

  1. I very much appreciate all the effort, but there is one issue… Under detailed process, section 2 you want the reader to open the specified file with #develop, go under tools and select ‘project upgrade’, unfortunately its grayed out.. now what?

  2. In what state will the game be when launching att server according to this procedure? Will it be playable or will it need alot of tweaking? Will merchants, mobs, horse routes, etc be there or do you have to code everything yourself?

  3. The game is in pretty good shape, but most people will find that many things still need to be added or adjusted. I’ve started outlining a document that describes most of the quick-fixes that can be done and will at least get you started on how to fix other things you find.

    I found it fairly playable as PvE platform. Darkness Falls and many old-world dungeons are up and running, however the new areas like Catacombs under-worlds do not have any mobs. The locations are there to explore, but no mobs. Same for Atlantis – you enable it and you can get there, but no mobs/NPCs etc.

    Folks are working on these areas, however, so you may be able to download databases that enable those mobs. You just need to be very careful bringing new db data into your existing config.

  4. Hey I am so grateful I found your weblog, I really found
    you by accident, while I was searching on Digg for something
    else, Anyways I am here now and would just like to say kudos for
    a marvelous post and a all round exciting blog (I also love the theme/design), I don’t have time to read it all
    at the moment but I have bookmarked it and also added your RSS feeds, so
    when I have time I will be back to read much more, Please do keep up the excellent job.

Leave a Reply

Your email address will not be published.