Read Me
-*- markdown -*-
# Humm and Strumm Engine
To the extent possible under law, the people who associated CC0 with
this file have waived all copyright and related or neighboring rights
to this file.
## Overview
The Humm and Strumm Project is a Free, Open-Source Project to create a
high-performance, concurrent 3D video game engine in modern C++. The
Project is composed of volunteers from around the world. By creating a
foundation that we hope to be competitive with modern proprietary
video game engines and by licensing it under a copyleft Free Software
license, we hope to promote Free Software gaming. We actively test the
engine with popular compilers on GNU/Linux, FreeBSD, and Microsoft
Windows, and it should compile and run on any POSIX system with X11
and OpenGL.
You can find our home page [here](http://hummstrumm.sourceforge.net).
Our home page has news updates, new downloads, documentation, and
links to all parts of the project.
## Features
* Cross Platform: Our code is written in standards-compliant C++11,
and should compile with any compiler that supports C++11. Our
target compilers are Clang, GCC, and MSVC. We actively test on
GNU/Linux, Windows, and FreeBSD, but we try to write our code so
that it works on any system that supports X11 and POSIX.
* Well-Documented: All code that is written for the Humm and Strumm
Project must be well documented with Doxygen comments. We are also
working on getting high-level guides and tutorials written.
* Well-Tested: We have unit-tests for all our code that we run every
nightly on all supported platforms, which helps us catch bugs that
may have been missed during development.
* Integration with C++11: Our code is modern C++, not Java-style OOP
or C-style imperative code. We use the standard library and Boost
heavily: our logging system integrates with the standard
iostreams, we use `shared_ptr` and `unique_ptr` wherever it makes
sense, and take advantage of the STL algorithms and data
structures.
## License
### Code License
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This code is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have receives a copy of the GNU General Public License
along with this code. If not, see [the GNU website][gnu-license].
[gnu-license]: http://www.gnu.org/licenses/
### Content License
The other content, including images, documentation files, Doxygen
documentation, and music, unless otherwise noted, is licensed under a
Creative Commons Attribution-ShareAlike Unported License 3.0,
available at [the Creative Commons website][cc-license].
[cc-license]: http://creativecommons.org/licenses/by-sa/3.0/
### Alternative Content License
Some other small content files are licensed under the Creative Commons
CC0 license, available at
[the Creative Commons website][cc0-license]. These files are clearly
marked as such at the top (if they are plaintext) or in a separate
`README` file (if they are binary).
[cc0-license]: http://creativecommons.org/publicdomain/zero/1.0/
## System Requirements
We test our engine on x86 and x64_86 systems running Microsoft
Windows, GNU/Linux, and FreeBSD. These platforms should have good
support. (Please note that our FreeBSD code is new and experimental.)
In order to build the engine, you will need:
* A C++11 compiler. We test the engine on MSVC 2013, GCC 4.8.2,
Clang 3.3, and Clang 3.4. Any other compiler that supports C++11
fully enough should work as well.
* CMake 2.8 or later Build System
* Eigen 3 Linear Algebra Library
* Boost 1.33.0 or later Portable C++ Libraries
* Intel TBB 4.2
To build and run unit tests, you will also need:
* cipra 1.x Unit Testing Framework
To build API documentation, you will need:
* Doxygen 1.8.2 or later
* LaTeX (optional)
## Directory Structure
* `src` - C++ source files
* `include` - C++ header files.
* `doc` - Doxygen documentation
* `tests` - Test source files
## Installation
Please see the file `INSTALL` for instructions on how to install the
software.
## Release Notes
The file `NEWS` contains important changes that may affect the user of
the software.
## Credits
Please see the files `AUTHORS` and `THANKS` for all the people that
have helped make the Humm and Strumm engine possible.
## Bug Reports
The Humm and Strumm engine uses the Sourceforge issue tracking
system. You can find out how to file a bug on the "Report a bug" [page
on our website](reportbug).
[reportbug]: http://hummstrumm.sourceforge.net/reportbug