How to Compile: ArcEmu
Compiling servers is becoming a lost art. Repacks are taking over the emulation scene, but you my friend, are going to put a stop to this repack nonsense and learn how to compile your own server. In this guide I've put together the basic steps in how to download source from a SVN, use a compiler, and give you basic knowledge on whats happening behind the scenes. I realize that there are quite a bit of these, but there is always room for improvement in all of them. I am merely giving users a choice at the guides they want to read. So don't reply saying this has already been done. I hope you enjoy the guide. NOTE: I left out the DBC, map, and DB set up. The reason I did this is because of the recent update to 3.0.2. When there is a 'Stable' version released, I will update this.
What you are going to need:
A C++ Compiler - A compiler takes the scripts it is given and compiles them into one big program. There are numerous different compilers that you can choose from with most having the same basic features. NOTE: This list is for information purposes only, we will go over downloading/installing later on in the guide.
A Subversion client – A subversion client allows the user to download, and stay updated on source code releases. It allows you to download things such as ArcEmu, Ascent, various databases, Lua projects ect.Downloading/Installing the Compiler:
We need to start with the compiler. For this tutorial we are going to use Microsoft Visual C++ 2008 Express edition. Navigate your browser to Visual C++ 2008 Express Edition and download the compiler. The download only takes a couple of minutes, but don't be fooled. Once it is finished downloading and you start it up, it will download the entire program and install it to your machine. Just follow the instructions on the very basic installation.
Downloading/Installing the Subversion Client:
Next we need to download the subversion client. For this tutorial we are going to use TortoiseSVN which you can find here: tortoisesvn.tigris.org The download and install is again, very basic. After it is done installing you will need to restart your system.
Getting the Source Code:
Once you have those two things installed we need to obtain the ArcEmu source code. Make a new folder on your desktop by right clicking, selecting 'new' and then folder. Once you have a new folder, name it 'ArcEmu Source'. Right click on it and click SVN Checkout.
It will come up with a window(See Figure 1). For the URL of repository we will type http://www.arcemu.info/svn and hit 'OK'. It will come up with a box, and it will get all of the source code. Its going to take a while to get all of those files, so go get something to eat.
(Figure 1)
Installing the ArcEmu libraries:
Open up your ArcEmu source folder, click branches, then extras, then arcemu-windows-libraries. Open up the read-me and follow the directions.
Where it says:
Copy the files in VC\include to VC\include.
Copy the files in VC\lib to VC\lib.
It means that you need to go into the folder “VC” in your arcemu-windows-libraries folder and copy the two folders inside VC called lib, and include. Now go into your Compiler directory (C:\Program Files\Microsoft Visual Studio 9.0\VC) and paste them there. It will ask if you want to replace files, click yes for all.
Compiling the Ascent Library source:
Once you have copied those files, navigate to your 'Sources' folder inside arcemu-windows-libraries and double click 'VC90-solution.sln'. It should open with Microsoft Visual C++. Now we are going to need to build the source. We need to change the build to release, to do this you need to go to the top of the program and there is a drop-down menu that has 'Debug', 'Release', and 'Configuration Manager'. Set it to release. (See Figure 2)
(Figure 2)
Now either point your mouse to the 'Build' option on the top menu and select 'Build Selection' or, press F7. It should start to compile, and you should not get any errors.
This will create a folder called Output_Release. Go into it and copy the 2 new files. Paste them in your C++ compiler's lib directory. (C:\Program Files\Microsoft Visual Studio 9.0\VC\lib) Now get the 2 DLL files from your arcemu-windows-libraries and copy them too your System32 folder (C:\Windows\System32).
You only have to do this once per compiler. You can now compile ArcEmu!
Compiling Collision:
Go into Trunk> Extras> Collision> Collision_DLL. Double click on 'collsion_VC9.sln' set the build to release like the same as the libraries and click build. It should compile with no errors. You will have to use v_maps to enable collision. Collision comes highly recommended, and fixes many of the in-game walking through walls and other bugs.
Compiling ArcEmu:
Go into your ArcEmu source folder, click 'Trunk' and then 'Win'. Now double click on arcemuVC90.sln. Set the build to release like we did with the libraries, and click build. This takes about 10 minutes, so go check your favorite forums and such. You should get a message at the end saying 3 succeeded. If you don't, make sure you installed the libraries correctly, and double check you compiled collision.
Compiling Scripts:
Go into Trunk> SRC> Scripts. Double click on 'scripts2008.sln'. Set the build to release and click build. This takes a bit so check your forums again :P. It should compile with no errors. It should tell you that you successfully built 6 scripts. If it says any where skipped, please refer to my Q&A.
Making your server folder and adding the core to it:
Make a new folder for your server (Or use your old one if you already have a server). Call it whatever you want (I called mine 'Server').
Now, go into Trunk>Bin>Release. Copy 'arcemu-logonserver.exe' and 'arcemu-world.exe' to your new Server folder.
Make a new folder in your new Server folder called 'script_bin'. Now go into your Trunk>Bin>Release>Script_bin. Copy all of the DLL's and paste them into your new script_bin folder.
Now go into Trunk>src and copy the configs folder. Paste it into your new Server folder.
You now have your core files! You have officially compiled your very own ArcEmu Server!
NOTE: This is only a guide for compiling! You will not be able to start up your server without setting up a database. I will make another guide on that if it is requested. I also don't really expect this to be much of a hit, but hopefully it will help some people out.