# Development for Bos Wars

This file should give you some information to help with development of the project.

For most up to date information, it is highly recommended to check the information on the Bos Wars website, including the page on development.

## IRC - Internet Relay Chat

You can try to meet other Bos Wars developers and users on the Libera.chat IRC Network, in the #boswars channel.

## Mailing list

If you want to help with development, you should join the bos-dev mailing list.

## Bugs and tasks

You can find known bugs on the project pages for Bos Wars.

Before starting work on a bug or task, please ask on the mailing list or in the IRC channel whether anybody else is already working on it.

## Building Bos Wars

### Installing the Git client

If you want to help develop, you should use Git. The online Git documentation will help you master Git.

### Getting Bos Wars from Git

The Bos Wars project has the following main repositories:

- boswars - The Bos Wars source code

  The source code for the whole game including the engine. The source is licenced under the GNU General Public License. This contains the sources needed for development.

- website.bos - The Bos Wars Website

  The website is stored in git for easy updating and version management by multiple people. This module is not needed unless you plan to update the website.

- materials.bos - Bos Wars assets

  Sources of large or difficult to generate Boswars assets like graphics and sounds.

### Getting Bos Wars without Git

Only releases are made outside of Git. If you wish to be involved with development, you should obtain the sources via Git. Git usually remains quite stable and is easier for you to keep up to date. Release versions of Bos Wars are available here.

### Building Bos Wars

You can find instructions for compiling Bos Wars at install.html.
Since you already have a copy of the source, you may skip ahead to step 2.

## Source code documentation

The engine has tagged source documentation.

You need either DoxyGen or DOC++ to generate source code documentation.

### Tags used in source code

We use the doc++ tags:

Multi line source code documentation:

/** ... */

Single line source code documentation:

/// ...

Start grouping:

//@{ or /*@{*/

End grouping:

//@} or /*@}*/

- @name
  Name of file or group.
- @param
  Describes function/macro parameter
- @return
  Describes function return
- @see
  Links to other section

Please read the doxygen/doc++ documentation.

## Sending a patch

Once you have completed some work, you will probably want it to be included in the main Bos Wars source.

You can create a pull request on the Bos Wars Codeberg project page.

Alternatively, you can create a patch with these steps:

- git diff > your-nickname.diff
- upload 'your-nickname.diff' to the patch tracker.

(C) Copyright 1998-2023 by The Bos Wars Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.