-*- 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.
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
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.
* 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
### 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].
### 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].
### 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).
## 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
Please see the file `INSTALL` for instructions on how to install the
## Release Notes
The file `NEWS` contains important changes that may affect the user of
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).