-------------------------------------------------------------------------------
Information for developers and contributors
-------------------------------------------------------------------------------

Contributions
-------------

Contributions like patches, ideas and bug-reports are always welcome! Just
send an email to Uwe Hermann <uh1763@hermann-uwe.de> or to the development
mailing-list.
After a few patches you'll get CVS-access, and can then commit your changes
directly into the CVS-repository.

See AUTHORS for a list of people who already contributed to htsserver.


Coding Guidelines
-----------------

The coding-style you use in your patches doesn't matter, I'll convert
everything to my own coding-style anyway :-)

The following guidelines should keep the code consistent and maintainable:

 * Indentation width and brace style: See source files.
 * Keep files and functions reasonably small.
 * Write only 80 characters per line where possible.
 * Always use good, unabbreviated, correctly-spelled, meaningful names.
 * Procedure names should reflect what they do, function names should reflect
   what is returned by them.
 * If you can identify a function as returning a boolean from its name
   (e.g isalpha(), password_is_valid() etc.) then it should return TRUE
   or FALSE or alternatively YES or NO.
   If the name doesn't sound like the function returns a boolean
   (e.g. do_this_and_that()), then it should return 0 on success,
   and -1 on errors.


Client/Server Design
--------------------

Holsham Traders is a client/server game. This allows networked games on
LANs or the Internet. The game is intended to allow very many players
simultaneously and it will run in realtime.

The server and clients communicate according to a protocol called
'htsprotocol', which is a set of keywords that must be interpreted by the
client and the server correctly. See docs/PROTOCOL in the htsserver package
for details.


Tools
-----

If you want to contribute code to this project you'll probably need the
following tools/libraries installed in addition to the requirements mentioned
in the README:

 * autoconf 2.49c or better
    ftp://alpha.gnu.org/gnu/autoconf/

 * A recent CVS automake (or the soon-to-be-released automake 1.4c)
    ftp://sourceware.cygnus.com/pub/automake/


Patches
-------

Use
 diff -Naur old_dirname new_dirname > patchfile
to generate patches which you can send to me.

Test these patches with
 patch -Np0 < patchfile

Always include information about *which* version you patched in your mail.

If you plan to make lots of changes, it's better to send several smaller
patches than a big one. This will ease including your changes in the
distribution.


CVS
---

nhtsclient is also available via CVS. Please check
  http://sourceforge.net/cvs/?group_id=827
to learn how you can 'checkout' the source.

You can browse the repository online here:
  http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi?cvsroot=nhtsclient


Mailinglists
------------

See README for information about available mailing-list(s) and info on how
to subscribe/unsubscribe. There are mailing-list archives available, too.


-- 
Any comments or tips are welcome.
Uwe Hermann <uh1763@hermann-uwe.de>
