From f988416ad966633e3c851bd09357efa21d6e827c Mon Sep 17 00:00:00 2001 From: Haru Date: Thu, 24 Sep 2015 18:13:55 +0200 Subject: Partial clean-up of the README file - Added new badges - Rewritten the list of dependencies and requirements (moved some links to the useful tools section, as they aren't requirements) - Cleaned up the installation procedure Signed-off-by: Haru --- README.md | 178 +++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 106 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index e3e19be33..6fa74495b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,19 @@ Hercules ======== -Build Status: [![Build Status](https://travis-ci.org/HerculesWS/Hercules.png?branch=master)](https://travis-ci.org/HerculesWS/Hercules) +Build Status: +[![Build Status](https://img.shields.io/travis/HerculesWS/Hercules.svg)](https://travis-ci.org/HerculesWS/Hercules) +[![Coverity Scan Build Status](https://img.shields.io/coverity/scan/3892.svg)](https://scan.coverity.com/projects/herculesws-hercules) + +Issues and pull requests: +[![Open Issues](https://img.shields.io/github/issues-raw/HerculesWS/Hercules.svg?label=Open%20Issues)](https://github.com/HerculesWS/Hercules/issues) +[![Issues in progress](https://badge.waffle.io/HerculesWS/Hercules.svg?label=status%3Aconfirmed&title=In%20Progress)](https://waffle.io/HerculesWS/Hercules) +[![Ready PRs](https://badge.waffle.io/HerculesWS/Hercules.svg?label=status%3Aready&title=Ready%20PRs)](https://waffle.io/HerculesWS/Hercules) + +License: +[![License](https://img.shields.io/github/license/HerculesWS/Hercules.svg)](https://github.com/HerculesWS/Hercules/blob/master/LICENSE) + + Table of Contents --------- @@ -12,81 +24,102 @@ Table of Contents * 5 Helpful Links * 6 More Documentation -1. What is Hercules? ---------- +What is Hercules? +----------------- Hercules is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, -warps and modifications. The project is jointly managed by a group of volunteers -located around the world as well as a tremendous community providing QA and -support. Hercules is a continuation of the original Athena project. +warps and modifications. The project is jointly managed by a group of +volunteers located around the world as well as a tremendous community providing +QA and support. Hercules is a continuation of the original Athena project. + +Prerequisites +------------- +Before installing Hercules there are certain tools and applications you will +need. This differs between the varying operating systems available, so the +following is broken down into Windows and Unix (incl. Linux) prerequisites. + +#### Windows + - Git client + - MySQL-compatible server ([MySQL Community Edition](https://www.mysql.com/products/community/) or [MariaDB](https://mariadb.org/)) + - Microsoft Visual Studio ([Version 2010 through 2015](https://www.visualstudio.com/)) + +#### Unix/Linux/BSD (names of packages may require specific version numbers on certain distributions) + - git + - gcc or clang (version 4.1 or newer, recommended 4.8 or newer) + - GNU make + - mysql (mysql-server) + - libmysqlclient (mysql-devel) + - zlib (zlib-devel) + - libpcre (pcre-devel) *optional* + - *Optional dependencies for development only* + - perl (required to rebuild the HPM Hooks and HPMDataCheck or to regenerate the mobdb sql table) + - Doxygen (required to rebuild the HPM Hooks and HPMDataCheck) + +#### Mac OS X + - Xcode + - MySQL-compatible server (installation of mysql or mariadb through [Homebrew](http://brew.sh/) is recommended) + - libpcre (pcre-devel) *optional* + - *Optional dependencies for development only* + - Doxygen (required to rebuild the HPM Hooks and HPMDataCheck) + +#### Optional, useful tools + - MySQL GUI clients + - [MySQL Workbench](http://www.mysql.com/downloads/workbench/) (cross-platform) + - [HeidiSQL](http://www.heidisql.com/) (Windows) + - [Sequel Pro](http://www.sequelpro.com/) (Mac OS X) + - Git clients + - [Atlassian SourceTree](https://www.sourcetreeapp.com/) (Windows, Mac OS X) + - [TortoiseGit](https://tortoisegit.org/) (Windows) + + +Installation +------------ -2. Prerequisites ---------- -Before installing Hercules there are certain tools and applications you will need. -This differs between the varying operating systems available, so the following -is broken down into Windows and Linux prerequisites. - -* Windows - * TortoiseGIT ( http://code.google.com/p/tortoisegit/ ) - * MSysGit ( http://code.google.com/p/msysgit/downloads/list?can=2 ) - * MySQL ( http://www.mysql.com/downloads/mysql/ ) - * MySQL Workbench ( http://www.mysql.com/downloads/workbench/ ) - * MS Visual C++ ( http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express ) - -* Linux (names of packages may require specific version numbers on certain distributions) - * gcc - * make - * mysql - * mysql-devel - * mysql-server - * pcre-devel - * git - * zlib-devel - -3. Installation ---------- This section is a very brief set of installation instructions. For more concise guides relevant to your Operation System, please refer to the Wiki (links at the end of this file). -* Windows - * Install prerequisites - * Create a folder to download Hercules into (e.g. C:\Hercules) - * Right click this folder and select "Git Clone". - * Paste the GIT URL into the box: https://github.com/HerculesWS/Hercules.git - * Open MySQL Workbench and create an instance to connect to your MySQL Server - * Create a database (hercules), a user (hercules), give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) - and then login using the new user - * Use MySQL Workbench to run the .sql files in /sql-files/ on the new Hercules database - -* Linux - * (For CentOS) - * Step 1: yum install gcc make mysql mysql-devel mysql-server pcre-devel zlib-devel - * Step 2: rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm - * Step 3: yum install --enablerepo=webtatic git-all - * Step 4: yum install --enablerepo=webtatic --disableexcludes=main git-all - * (For Debian/Others) - * Type: apt-get install git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev - * Type: mysql_secure_installation - * Start your MySQL server - * Setup a MySQL user: - - CREATE USER 'hercules'@'localhost' IDENTIFIED BY 'password'; - * Assign permissions: - - GRANT SELECT,INSERT,UPDATE,DELETE ON `hercules\_rag`.* TO 'hercules'@'localhost'; - * Type: git clone https://github.com/HerculesWS/Hercules.git ~/Hercules - * Insert SQL files: mysql --user=root -p hercules_rag < trunk/sql-files/main.sql (and others) - * Type: cd trunk && ./configure && make clean && make sql - * When you're ready, type: ./athena-start start - - - -4. Troubleshooting ---------- +#### Windows + 1. Install the prerequisites. + 2. Clone the Hercules repository (see [GitHub](https://github.com/HerculesWS/Hercules)) using a git client, into a new folder. + 3. Connect to the MySQL server as root: + - Create a database (hercules): `CREATE DATABASE hercules;` + - Create a user (hercules): `CREATE USER 'hercules'@'localhost' IDENTIFIED BY 'password';`. + - Give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) to the user: `GRANT SELECT,INSERT,UPDATE,DELETE ON \`hercules\`.* TO 'hercules'@'localhost';` + 4. Connect to the MySQL server as the new user: + - Import the .sql files in /sql-files/ into the new database. + 5. Start Visual Studio and load the provided solution: + - Compile and run the three projects, login-server, char-server, map-server. + +#### Unix + 1. Install the prerequisites through your distribution's package manager + - (Red Hat compatible / CentOS) `yum install gcc make mysql mysql-devel mysql-server pcre-devel zlib-devel git` + - (Debian compatible) `apt-get install gcc make libmysqlclient-dev zlib1g-dev libpcre3-dev mysql-server git` + - (FreeBSD) `pkg install clang35 gmake mysql56-server mysql-connector-c pcre git` + - (Mac OS X): + - Install Xcode through the Mac App Store + - Initialize the build tools through the Terminal `xcode-select --help` + - Install Homebrew as described on the project page + - Install MySQL: `brew install mysql` + 2. Clone the Hercules repository `git clone https://github.com/HerculesWS/Hercules.git ~/Hercules` + 3. Configure the MySQL server and start it. + 4. Connect to the MySQL server as root: + - Create a database (hercules): `CREATE DATABASE hercules;` + - Create a user (hercules): `CREATE USER 'hercules'@'localhost' IDENTIFIED BY 'password';`. + - Give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) to the user: `GRANT SELECT,INSERT,UPDATE,DELETE ON \`hercules\`.* TO 'hercules'@'localhost';` + 5. Connect to the MySQL server as the new user: + - Import the .sql files in /sql-files/ into the new database. + 6. Enter the Hercules directory and configure/build Hercules + - `./configure` + - `make clean && make sql` (on FreeBSD, replace `make` with `gmake`) + 7. Start the three servers login-server, char-server, map-server. + +Troubleshooting +--------------- + If you're having problems with starting your server, the first thing you should -do is check what's happening on your consoles. More often that not, all support issues -can be solved simply by looking at the error messages given. +do is check what's happening on your consoles. More often that not, all support +issues can be solved simply by looking at the error messages given. Examples: @@ -125,8 +158,9 @@ Examples: If this shows up on the map server, it generally means that there is no Char Server available to accept the connection. -5. Helpful Links ---------- +Helpful Links +------------- + The following list of links point to various help files within the GIT, articles or pages on the Wiki or topics within the Hercules forum. @@ -144,9 +178,9 @@ pages on the Wiki or topics within the Hercules forum. Channel: #Hercules +More Documentation +------------------ -6. More Documentation ---------- Hercules has a large collection of help files and sample NPC scripts located in /doc/ * Scripting -- cgit v1.2.3-60-g2f50