Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/elmindreda/Nori

A simple game engine
https://github.com/elmindreda/Nori

Last synced: about 1 month ago
JSON representation

A simple game engine

Awesome Lists containing this project

README

        

Nori library
=============

Introduction
------------

Nori is a small and still incomplete game engine written for my own use.

Unlike most of my projects, I write Nori primarily for own use, so while other
people may find it useful, it comes with no support and far too little
documentation. Its API may also change at any time.

If you like Nori and would like to use it for your game, you should instead
most likely use [gameplay](http://www.gameplay3d.org/), which is eerily similar,
more complete _and_ actually supported.

Nori currently lives on [GitHub](https://github.com/elmindreda/Nori).

License and copyright
---------------------

Copyright © Camilla Löwy Berglund

Some parts are Copyright © Tapio Vierros

Nori is licensed under the
[zlib/libpng license](http://opensource.org/licenses/Zlib), which can be found
in the `COPYING.txt` file. The license is also included at the top of each
source file.

Nori comes bundled with a number of dependencies, each with its own license.
See their respective `libs/*/COPYING.txt` files for license details.

Building Nori
--------------

Nori uses the [CMake](http://www.cmake.org/) build system for itself and all
its dependencies. It is available for all platforms supported by the engine.

Nori comes with internal versions of the following libraries:

- [Bullet] (http://bulletphysics.org/) for dynamics and collision
- [ENet](http://enet.bespin.org/) for UDP networking
- [GREG](http://github.com/elmindreda/greg/) for managing OpenGL extensions
- [GLFW](http://www.glfw.org/) for OpenGL context, input and window
- [GLM](http://glm.g-truc.net/) for vector math and explicitly sized types
- [pugixml](http://pugixml.org/) for reading and writing XML files
- [Squirrel](http://squirrel-lang.org/) for embedded scripting
- [stb\_image](http://nothings.org/) for reading and writing image files
- [stb\_truetype](http://nothings.org/) for TrueType typeface support
- [stb\_vorbis](http://nothings.org/) for decoding Ogg Vorbis files
- [utf8cpp](http://utfcpp.sourceforge.net/) for UTF-8 text support

Nori requires that OpenGL and OpenAL headers and link libraries are present in
your development environment.

On Debian GNU/Linux based systems, where GLFW also needs Xlib, the following
packages provide the necessary support:

- `xorg-dev`
- `libopenal-dev`
- `libgl1-mesa-dev`

On other Linux distributions, there will most likely be similarly named packages
available.

On OS X, OpenGL and OpenAL is already built-in.

On Windows, OpenGL headers and link libraries should be provided by your
compiler. For OpenAL, you will need to install an OpenAL SDK.

Nori uses some C++11 features and requires a fairly up-to-date compiler to
build. It is currently being used with the following compilers:

- Clang 3.0
- GCC 4.7
- Visual C++ 12.0

Using Nori
-----------

Nori is (partially) documented using [Doxygen](http://www.doxygen.org/).
A suitable `Doxyfile` will be generated by CMake in the `docs/` subdirectory.

The audio system requires OpenAL 1.1. No extensions are used.

The render system requires OpenGL 3.2 compatibility profile, meaning it will not
currently run on OS X. The following OpenGL extensions are not required but
used where available:

* `GL_ARB_texture_float`
* `GL_ARB_half_float_pixel`
* `GL_ARB_debug_output`
* `GL_EXT_texture_filter_anisotropic`

Questions, patches and other feedback
-------------------------------------

I will answer questions mailed to me, but please keep in mind that my time is
limited. Bug reports, patches and pull requests are also welcome, but I cannot
_guarantee_ that your change will be accepted.