Old Wiki:Category Incursion
The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game. It is compatible with Incursion v1.6 build 264377 client.
EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project.
INFORMATION FOR LINUX: Currently it's not possible to build it under Linux. This will be fixed soon.
Contents |
Source Code
We currently have transitioned to GitHub and have moved to Git SCM.
(There are no binaries for the server provided, you want it, you build it from the source)
Server setup
There are 4 steps to get running the Server:
- Getting the source code
- Compiling with CMake
- Database Setup
- Server Configuration
Getting the source code
The best Git primer we've seen is a 1hr 40min video series found here
You need a Git client in order to download the source. Windows users can download SmartGit, Linux users need to install the respective package (usually git).
If you prefer to use Git via CMD, here is a good tutorial on how to do it. Git-Linux Git-Windows
NOTE: Use Git to pull down the source, I would recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there.
Windows
Please load Smartgit and follow the on screen instructions to pull down the source from github.
Linux
You can use the gui from Linux or CMD Type following to the terminal:
$ mkdir ~/path/to/evemu/source $ cd ~/path/to/evemu/source Changes the current working directory to your newly created directory $ git initSets up the necessary Git files Initialized empty Git repository in /path/to/evemu/source/.git/ $ touch README $ git clone https://github.com/evemuproject/evemu_incursion.git
Compiling with CMake
EVEmu can be built using CMake: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu.
Getting the dependencies
Windows
- CMake - Please use v2.8.2 found in older releases here, as we have had reports that newer versions are causing problems
- Git For Windows CMD
- Visual Studio Express 2010 (Download the Offline install DVD)
- You may use Visual Studio 2008 as well if you dont have or dont want to use Visual Studio 2010
- zlib source code
- MySQL noinstall package Please use mysql 5.1 to build, you can use 5.5 to run the actual db, but not to build.
- BOOST Library
Install: CMake, Git and Visual Studio. Extract: zlib, mysql-noinstall and boost somewhere convenient, but not in your git repository. Move: Content of extracted files to C:\evemu\zlib and C:\evemu\mysql respectably.
WARNING: Don't move zlib-1.2.5 into C:\evemu\zlib. Only the contents of zlib-1.2.5. Same with MySql and boost.
Linux
- cmake
- git
- make
- g++
- zlib, zlib-dev
- libmysqlclient, libmysqlclient-dev
- boost-build, libboost-dev
NOTE: Just search your distro's repository for similarly named packages and install them.
Running CMake
WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!
Windows
Create directory C:\evemu\build.
Go to the directory where you have installed CMake, there should be subdirectory bin. Go in there and run cmake-gui.exe. In the new window in the upper part click Browse source and pick C:\evemu\source, then click Browse build and pick C:\evemu\build. After that click Configure in the lower part. Another dialog pops up, asking you to choose compilers and a generator. Choose Visual Studio 9 2008 or Visual Studio 10 2010 depending on which version you wish to use and have installed, then Use default native compilers and press Finish.
CMake starts configuring your build, but it'll fail, because you haven't set several CMake variables yet. For each of the rows below, click the button Add Entry in the upper part, fill in the corresponding editboxes and click OK:
Choose advance tab in cmake, The very first line should be Boost_include_DIR. Please update it to your path for Boost.
Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\mysql\include;C:\evemu\zlib Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\mysql\lib\opt Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\boost
Now click Configure again and it should be fine. After configuration is done, click Generate and close the window.
Finally, you can now open the EVEmu server solution in Visual Studio. Just make sure to open it in the same version of Visual Studio that you told CMake to use when you setup the CMake build.
Linux
Type:
mkdir path/to/evemu/build cd path/to/evemu/build cmake path/to/evemu/source
If you want to configure the build manually, add -i flag:
cmake -i path/to/evemu/source
This is particularly useful e.g. when you want to build a Debug binary.
Compilation
Windows
Browse to C:\evemu\build, there should be file evemu.sln. Double-click it and Visual Studio opens up. You can set it to two modes, 'Debug' or 'Release'. Either work, but the size of the exe file is bigger on debug but slightly more stable. In the left part, right-click Solution evemu and click Build solution. Compilation should start.
Linux
Type:
cd path/to/evemu/build make
If you want to make use of a multicore CPU, specify number of cores with -j option. For example, if you had quad-core CPU, you'd type:
make -j4
Debugging
These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code.
Windows
- Open the evemu project in Visual Studio.
- To do FULL Rebuilds of entire project, select ALL_BUILD at the top of the list in Solution Explorer, then either hit Ctrl+Alt+F7 key or click Build -> Rebuild Solution from the menu bar.
- To compile sub-projects by themselves, such as eve-server, then select that sub-project in Solution Explorer, then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar.
- To set the project for Debugging, find the drop down box on the toolbar that is either going to have Release or Debug inside. If it says Debug you are good to go, just to a FULL rebuild of the whole project. If it says Release, click on it then select Debug, then do a FULL rebuild of the whole project.
- To RUN eve-server after you have built it under Debug, follow these steps:
- Right-click on eve-server in the Solution Explorer and select Properties
- Expand Configuration Properties and click Debugging
- Put the text Debug in the field called Working Directory, then click the OK button
- Now, navigate to your server project source root directory, then drill down to this sub-folder: build\src\eve-server
- Make a new folder called etc and put your eve-server.xml file in that new etc folder
- Back in Visual Studio, right click on eve-server again in the Solution Explorer and select Set as StartUp Project, the eve-server tree label will now be bold to indicate this change
- You can now hit F5 to execute the debug build .exe or click Debug -> Start Debugging from the menu bar.
Linux
Sorry, need to be written
If you want to REBUILD your source code
Whenever you update your source code working tree from the github repository, add files to the project (which requires adding them to the CMakeLists.txt files), or change one of the .xmlp files found in /src/eve-common/packets/xmlp, you MUST do a full REBUILD of your source code to ensure that all changes and new files are made available to the compiler. Here's how you do that:
REBUILD source: This is simply accomplished by closing Visual Studio, opening CMake, clicking Configure twice, then Generate once, and finally opening Visual Studio again. Now, you need to right-click on the ALL_BUILD project, and click Rebuild. This will rebuild your entire source code from scratch using any new files or modified packet xmlp files that were added/modified by either you or whomever pushed changes to the github repository that you just pulled down.
Database Installation Guide
NOTE: This guide assumes directory structure created in compiling with cmake guide.
Required Software
- MySQL Server 5.1 (It's recommend downloading the Windows Essentials installer, as it is all that is needed)
- Incursion v1.5 Official DB dump
Database Setup
Download and install the latest stable version of MySQL 5.1 from the link above.
Extract the dowloaded database dump to directory C:\evemu\source\sql. Browse into C:\evemu\source\sql\utils.
If you are on Windows: In the /sql/utils/ directory, Execute merge-ofic-updates.bat.
If you are on Linux: In the /sql/utils/ directory, Execute merge-ofic-updates.sh.
This should create new file called ofic-updates.sql in parent directory sql.
Now, you'll have these .sql files in the /sql directory:
- inc15-mysql5-v1.sql
- evemu_dynamic-dump.sql
- evemu_static-dump.sql
- ofic-updates.sql
- prime_db.sql
- ./evemu-updates/liveupdates.sql
NOTE: inc15-mysql5-v1.sql is the biggest sql and takes the longest to write into the database, over 200 MB import.
Data Import
IMPORTANT: Paths should use / instead of \
Click Start -> All Programs -> MySQL -> MySQL Server 5.1 then MySQL Command Line Client. The MySQL Command Line Client will open, you will need to enter your MySQL database root password.
OR you may run a command prompt from the /sql directory and run mysql in that prompt like this:
C:\evemu\source\sql> mysql -u <username> -p
where <username> is your mysql database username, then type the password and hit enter. You will see a "mysql>" prompt, now you can create database and source the sql files using instructions below.
You will now need to create the EVEmu database, to do this type at the mysql command prompt:
create database evemu;
Now hit enter, it should tell you that was successful by saying:
Query OK, 1 row affected.
After each query is completed it will display mysql> - at this point simply run the next one.
Automated SQL Setup
NOTE: It is highly recommended to run the single "evemu_database_setup.sql" file, which contains the sql queries in the list below, however, you first need to copy the "inc15-mysql5-v1.sql" file into the /sql dir of the source, where the other sql files are located, then run the following shorter sequence of mysql commands:
use evemu; source C:/evemu/source/sql/evemu_setup_database.sql;
If this completes without errors, your database is completely setup. Now, proceed to "Final Checking of Database Integrity".
Manual Execution of each SQL piece
RECOMMENDED ONLY FOR ADVANCED USERS AND DEVELOPERS. IF YOU ARE NEW, USE THE INSTRUCTIONS ABOVE UNDER "Automated SQL Setup"
Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - don't execute them all at once!):
use evemu; source C:/evemu/source/sql/inc15-mysql5-v1.sql; source C:/evemu/source/sql/ofic-updates.sql; source C:/evemu/source/sql/evemu_static-dump.sql; source C:/evemu/source/sql/evemu_dynamic-dump.sql; source C:/evemu/source/sql/prime_db.sql; source C:/evemu/source/sql/liveupdates.sql;
Final Checking of Database Integrity
There are some final checks on your database that are highly recommended that you perform in order to ensure your database was 100% correctly setup in the previous steps. These are listed below:
- Check the AUTO_INCREMENT value in the entity table to make sure it is set to this value: 140000000. If it is not set to that value, change it to this value 140000000. If you do not, you may experience a server crash when you make your first character, so DO check it and set it if it is not the correct value. A common error that you may encounter if you miss this step is something like this in the server console due to the fact that the AUTO_INCREMENT was not set and the last itemID was 61000003 or something.
InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:471): Item 61000004 not found
Adding an Account
This is really simple... just type the following:
INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);
Simply make sure to replace your_account_name and your_password with what you want your username and password to be!
If you have to REBUILD your Database
If you somehow corrupt your database or the server does it as a result of a crash or wrong SQL query in the code, or you need to rebuild it due to development actions taken that modified SQL files found in the source's /sql directory, here's what we mean by "REBUILD":
REBUILD database: This is simply "dropping" the entire evemu database in mysql, such that the database is completely deleted, as in, the database name is no longer visible or accessible. Then, the database is built again from scratch by first creating a new database with the name you used before, switching to that database and running the "evemu_setup_database.sql" file on it. So, this basically means that you proceed directly to the "Data Import" section above on this page AFTER you have DROPPED your complete database from MySQL either using a MySQL client to do it (phpmyadmin, navicat, MySQL Workbench, etc) or by using the mysql command line as follows:
mysql> drop database evemu;
WARNING: MySQL does NOT prompt you on the command line, when you hit enter, it's too late, no going back. So, if you NEED to backup your database, do an export of the whole thing first.
Server Configuration
NOTE: This guide assumes directory structure created in Compiling with CMake guide.
To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them.
Directory Setup
- Browse to C:\evemu, create the folders bin, etc, log and server_cache
- Copy eve-server.exe from C:\evemu\build\src\eve-server to C:\evemu\bin
- Copy libmysql.dll from C:\evemu\mysql\lib\opt to C:\evemu\bin
- Copy eve-server.xml from C:\evemu\source\utils to C:\evemu\etc.
File Setup
Browse to C:\evemu\log and create empty text file named eve-server.log. Browse to C:\evemu\etc and create empty text file named log.ini OR use the sample log.ini file in the source code. After that go to C:\evemu\etc and open eve-server.xml in your favourite text editor, You will need to change 2 sets of setting(seperated by <> tags)(there are many optional settings to mess around, if you know what you are getting your hands into).
Remember: Every set up is different so use your own setting and don't copy and paste!
We will assume you have followed the previous step of setting up the database and we will go ahead and show an example of the needed changes:
Database Tag Changes
Default:
<database> <host>127.0.0.1</host> <username>eve</username> <password>eve</password> <db>eve</db> <!--<port>3306</port>--> </database>
Example:
<database> <host>127.0.0.1</host> <username>root</username> <password>password</password> <db>evemu</db> <!--<port>3306</port>--> </database>
NOTE: You will need to insert your own MySQL username and password
NOTE: Please make sure a password is set or client will stop after trying to connect
Net Tag Changes
Default:
<net> <!-- <port>26000</port> --> <!-- <imageServerPort>26001</imageServerPort> --> <!-- <imageServer>localhost</imageServer> --> <!-- <apiServerPort>26002</apiServerPort> --> <!-- <apiServer>localhost</apiServer> --> </net>
Example(Must be 26000):
<net> <port>26000</port> <imageServerPort>26001</imageServerPort> <imageServer>localhost</imageServer> <apiServerPort>26002</apiServerPort> <apiServer>localhost</apiServer> </net>
Files Tag Changes
Default:
<files> <!-- <logDir>../log/</logDir> --> <!-- <logSettings>../etc/log.ini</logSettings> --> <!-- <cacheDir></cacheDir> --> </files>
Example:
<files> <logDir>../log/</logDir> <logSettings>../etc/log.ini</logSettings> <cacheDir>../server_cache</cacheDir> </files>
The ../log/eve-server.log will contain the text from the eve-server console window. The ../etc/log.ini file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the ../server_cache directory is where the server will create files for all cached objects when the server starts up.
NOTE: If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed.
Keeping The Server Updated
The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile.
- Use your favorite git gui or the git command line to keep your source up to date
- Re-run CMake just in case new files were added or old files were removed.
- You must now rebuild you solution to actually see the changes in game.
- Run the "evemu" sln with C++ and rebuild the solution MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choise - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary.
Finishing Notes
WARNING: Tutorials are NON-functioning and WILL cause your client to hang at the infamous "black screen", so DISABLE your tutorials by hitting ESC key, then going under General Settings and uncheck the box next to Show Tutorials.
Windows
Then you should be able to run eve-server.exe to start the server. The server log will be stored in C:\evemu\log\eve-server.log if you need it. Wait for the message : "Init Done" before initiating any action associated with the server(Even opening a client). See here for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows.
Linux
You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. Here is a forum thread that lists several different scripts on how the eve-server can be restarted if it crashes.
FAQ
You will find it under Incursion FAQ
INCURSION Development
Information will be soon here.
Pages in category "Incursion"
The following 3 pages are in this category, out of 3 total.