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#.
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.
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.
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!)
- Use TortoiseSVN to get the latest source code
- Compile the source code using #Develop (pronounced “Sharp Develop”)
- Move all .dll files from the ‘release/lib’ directory up one level to the ‘release’ directory
- Download and create the game database using PHPMyAdmin
- Use DOLConfig.exe to set up the DOLServer configuration (db link, type of server, etc)
- Configure DOLloader batch file, Start the Server & Enjoy
- Download the Source Code (you need TortoiseSVN installed for this step)
- Create a new folder to download the DOL source code
- Open your new folder
- Right-click and select SVN Checkout…
- Fill in ‘URL of repository’ with: https://svn.code.sf.net/p/dolserver/code/DOLSharp/trunk/
- Click OK – this may take awhile depending on your bandwidth
- Compile the Code
- in your folder you should have a file named ‘Dawn of Light.sln’
- Open this file in #Develop
- Under the ‘Tools’ menu, select ‘Project Upgrade’
- Click the ‘Select All’ tick box
- ensure the ‘Convert selected projects to:’ is set to C# 5.0
- and set ‘Change target framework:’ to .NET Framework 4.5.1
- click the ‘Convert’ button
- Under the ‘Build’ Menu
- ‘Set Configuration -> Release’
- and then ‘Build Solution’ (or hit F8)
- Hopefully you will not have any errors, at this point I only had 3 ‘Warnings’ – which were safe to ignore
- You’re done with the compiler and can close #Develop
- Tweak the ‘release’ folder that #Develop created during the compile process
- Navigate to the ‘release -> lib’ folder
- ‘Shift select’ all of the DLL files
- Right-click and ‘Copy’ the files
- Move up one directory (now you’re inside the ‘release’ folder)
- 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)
- At this point I tend to rename the release folder (like DOLexeFiles) and move it outside of the source-code folder
- Prepare the game Database
- 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.
- Login to PHPMyAdmin
- 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 )
- 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)
- 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.
- Move the SQL file to the special Uniform Server folder included for large SQL imports: UniServerZ/etc/phpmyadmin
- This folder allows you to import very large SQL files using PHPMyAdmin without worrying about the usual MySQL import size limits
- Back in PHPMyAdmin, navigate to your empty DOL db
- Click ‘Import’ (along the top)
- 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
- 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)
- Hopefully you will get the message: “Import has been successfully finished” along with how many queries were executed and which sql file was used
- We’re done with the database! (for now)
- Configure and Test the Server
- Ensure that the ‘rolled-back’ game.dll file is in your DAOC game folder where the original game.dll file was
- 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)
- Start DOLConfig.exe – you may get an error asking to load a default configuration, just say yes to that.
- Now let’s adjust our configs, you should be on the ‘General configuration’ tab
- Here you can change your server name & short name (optional)
- Set your game type:
- Normal – ‘classic DAOC’ where you have PvE and RvR areas
- PvP – PvP everywhere (like the days of Mordred)
- PvE – Cooperative server (like Gaheris)
- Casual – I’m assuming this is like ‘Normal’
- Roleplay – Like ‘Normal’ but chat channels are expected to be ‘in character’
- Test – Like ‘Normal’ but things may be ‘broken’ and/or in testing
- Set your IP (for a local server I use the ‘loopback IP’ 127.0.0.1 )
- Now go to the ‘Database’ tab
- Ensure the ‘Database type” is set to MySQL
- Skip down to the ‘Database Name’ and put in the name of your MySQL db that you created in Step 4
- Enter the ‘Username’ and ‘Password’ that you created in PHPMyAdmin that has admin access to your db
- Click the ‘Test connection’ button, and if everything goes OK, you should get the following message: “Congratulations! I am Connected!”
- Click the ‘Save configuration’ button and exit DOLConfig
- You’re done configuring the server!
- Server Start-Up
- Double click the DOLServer.exe file
- 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.
- 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)
- You’re ready to login for the first time!
- Double click your .bat file from Step 5 and DAOC should start up!
- Choose your realm, create a character and start looking around