Octodyssey's core library repository.
Please do it using this issue tracker.
The source files of the library are located in includes/
and src/
directories.
This repository contains an units test program located in tests/
' directory
and somes graphics interactives test programs located in interactive_tests/
folder.
Somes modules provides tools applications which are located in tools/
directory.
Sources of theses interactives application are a good entry point to discover the library, and they are used as examples by generated documentation.
Tools can be found in tools/<tool_name>
.
- Packager:
tools/packager
- Package reader:
tools/package_reader
- Editors:
tools/editors
Documentation files are located in doc/
- C++ 11 compiler (clang 6, g++ 4.8 or higher)
- Doxygen for documentation (with Dot if you wants cutes graphs)
- GNU make
- SFML 2.2 or higher
- Qt 5 framework
- Boost test library
Produces the library libocto.a
into the root directory:
$> git clone git@github.com:IohannRabeson/octolib.git
$> cd octolib
$> make complete
Generate the documentation:
$> make doc
Builds are made in builds/
folder.
$> git pull origin master
$> git submodule update
$> make complete
- make complete: rebuilds the library then build tools and unit tests
- make doc: generate documentation
- make open_doc: open documentation in your web browser (OSX only)
- make run_tests: builds unit tests
- make tests: builds unit tests
- make application_tests: builds interactives tests
- make tools: builds tools
By default the Makefile builds in release mode.
You can switch this mode to debug using MODE variable.
Exemple to run make re in debug mode:
make re MODE=debug
Octolib is separable into several modules:
Provides commons stuff.
Provides services to manage the differents screens required by a game.
Provides services to pack multiple ressources into an unique file called package. This module provides also a way to read datas from a package file.
Manage all the games ressources such textures, fonts, sound. Resource module use read services of packages module.
Provides services to animate objects properties.
Provides services to render stuff
Provides classes to play music composed in real-time.
Provides basic stuffs to create simple user interface.