Ileor Server Framework
Summary:
========
This directory contains the source code for the Ileor Server Framework,
a server framework for the development and deployment of massively
multiplayer online games.
Some attention has been paid to make this software easily configurable
and extendable. The framework is made of a light and efficient core
component which relies on dynamically loaded modules to do all the
game logic. In this regard, it is similar to the concept of dynamically
loaded drivers in the Linux kernel. The build system has also been made
highly extensible by using a scheme similar to the KConfig files used
in the Linux kernel sources.
Status:
=======
The core is currently in a minimal working condition and works for the
most basic use cases. Currently it is lacking in extra functionality
in the core (eg. automatic timers, robust implementations etc.). Only
the basic hello module has been created at the moment.
In case of problems and bugs see the CHANGELOG and CREDITS files to
find out who contributed to the specific feature and mail them with the
issue. You can also simply submit a report at the Ileor bug tracker [1].
[1] http://bugs.ileortech.com
Source Code:
=========================
The Ileor Server Framework source code is maintained the the git
repository at [1]. You can also browse it online at [2].
The code in the repository is the latest development version and is not
recommended for production servers. For production servers you can
download the latest stable release from the Ileor website.
[1] git://git.ileortech.com/ileor.git
[2] http://git.ileortech.com/?p=ileor.git
[3] http://www.ileortech.com
Directory Structure:
====================
/build Environment for running the server
/conf Various configuration files used by Ileor
/modules The folder containing all modules to be loaded
/config Files required for building (eg. Makefiles)
/core The core components of Ileor
/include Header files directory
/ileor Header files specific to the Ileor core
/modules Source code for all modules
/hello Files for a simple hello world module
/tests Files containing unit tests for the Ileor core
/tools Various utilities used by Ileor
/iconfig Files for tool used to generate .config files
Software Configuration:
=======================
Configuration is done by running the 'iconfig' utility in
'tools/iconfig'. In order to make it easier, there is a 'config' rule
in the Makefile. You can run the configuration utility using:
$ make config
Follow the onscreen instructions and once you are done you should see a
new '.config' file in the root directory (run 'ls -a' to view hidden
files).
Compiling:
==========
You can compile the configured source using:
$ make
This will generate a file called 'server' which can be run to start
Ileor. It additionally requires an argument containing the path to the
configuration files. You can use the sample files provided in the source
distribution by running:
$ ./server ./build/conf/
The server should start up the network and modules (the 'hello' module
is set to be loaded by default in 'build/conf/modules.conf').
NOTE: You must compile the modules separately for now. In the future we
will have it so that the Makefiles compile the modules automatically
but for now you must go into each directory and compile the modules.
For example, you can compile the 'hello' module using:
$ cd modules/hello
$ make
$ cd -
Now you can run the server and it will load the modules. The advantage of
having dynamically loaded modules is that the server does not need to be
restarted each time a module is upgraded. This allows for over-the-air
server upgrades without have to take the server offline.
Coding Standards:
=================
All contributions to the Ileor Server Framework should conform to the
Linux kernel coding style; see the file "Documentation/CodingStyle" [1]
and the script "scripts/Lindent" [2] in the Linux kernel sources [3].
Please note that the Ileor Server Framework core is implemented entirely
in C (modules may contain code from other programming languages). No C++
is used and C++ style comments (//) are NOT accepted. For comments, use
only the C-Style comments (/* */).
Please also stick to the following formatting rules:
- remove any trailing white space
- use TAB characters for indentation, not spaces
- make sure NOT to use DOS '\r\n' line feeds
- do not add more than 2 empty lines to source files
- do not add trailing empty lines to source files
Submissions which do not conform to the standards may be returned with
a request to reformat the changes.
[1] http://www.kernel.org/doc/Documentation/CodingStyle
[2] http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/scripts/Lindent
[3] http://www.kernel.org/
Contributing:
=============
If you wish to submit contributions to the Ileor Server Framework, you
may do so by sending patches to me at mvanga@ileortech.com. You are
also required to send me a physical copy of the Contributor License
Agreement as outlined below.
Contributor License Agreement:
==============================
All references to 'Project' below refer to the Ileor Server Framework.
In order to clarify the intellectual property license granted with
Contributions from any person or entity, I (Manohar Vanga) as
maintainer of the Project, must have a Contributor License Agreement
(CLA) on file that has been signed by each Contributor, indicating
agreement to the license terms [1]. This license if for Your legal
protection as a Contributor as well as the legal protection of the
Project and its users; it does not change your rights to use your
own Contributions for any other purpose.
[1] See file 'docs/CLA.pdf'
Contact:
========
You can contact us at:
Project Web Page:
http://www.ileortech.com
Project Bug Tracker:
http://bugs.ileortech.com
Project Wiki:
http://wiki.ileortech.com
Project Code:
http://git.ileortech.com
Project Maintainer:
Manohar Vanga <mvanga at ileortech dot com>
Project Developers:
Manohar Vanga <mvanga at ileortech dot com>
Agastya Nanda <agastya at ileortech dot com>