power by Urho3d.
3rd-Engine is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.
Licensed under the MIT license, see LICENSE for details.
Before making pull requests, please read the Contribution checklist and Coding conventions pages from the documentation.
3rd-Engine is greatly inspired by OGRE (http://www.ogre3d.org) and Horde3D (http://www.horde3d.org). Additional inspiration & research used:
- Rectangle packing by Jukka Jylänki (clb) (http://clb.demon.fi/projects/rectangle-bin-packing)
- Tangent generation from Terathon (http://www.terathon.com/code/tangent.html)
- Fast, Minimum Storage Ray/Triangle Intersection by Möller & Trumbore (http://www.graphics.cornell.edu/pubs/1997/MT97.pdf)
- Linear-Speed Vertex Cache Optimisation by Tom Forsyth (http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html)
- Software rasterization of triangles based on Chris Hecker's Perspective Texture Mapping series in the Game Developer magazine (http://chrishecker.com/Miscellaneous_Technical_Articles)
- Networked Physics by Glenn Fiedler (http://gafferongames.com/game-physics/networked-physics/)
- Euler Angle Formulas by David Eberly (https://www.geometrictools.com/Documentation/EulerAngles.pdf)
- Red Black Trees by Julienne Walker (http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx)
- Comparison of several sorting algorithms by Juha Nieminen (http://warp.povusers.org/SortComparison/)
3rd-Engine uses the following third-party libraries:
- AngelScript 2.35.1 WIP (http://www.angelcode.com/angelscript)
- Boost 1.64.0 (http://www.boost.org) - only used for AngelScript generic bindings
- Box2D 2.3.2 WIP (http://box2d.org)
- Bullet 3.06+ (http://www.bulletphysics.org)
- Civetweb 1.7 (https://github.com/civetweb/civetweb)
- FreeType 2.8 (https://www.freetype.org)
- GLEW 2.1.0 (http://glew.sourceforge.net)
- SLikeNet (https://github.com/SLikeSoft/SLikeNet)
- libcpuid 0.4.0+ (https://github.com/anrieff/libcpuid)
- Lua 5.1 (https://www.lua.org)
- LuaJIT 2.1.0+ (http://www.luajit.org)
- LZ4 1.7.5 (https://github.com/lz4/lz4)
- MojoShader (https://icculus.org/mojoshader)
- Mustache 1.0 (https://mustache.github.io, https://github.com/kainjow/Mustache)
- nanodbc 2.12.4+ (https://lexicalunit.github.io/nanodbc)
- Open Asset Import Library 4.1.0 (http://assimp.sourceforge.net)
- pugixml 1.10+ (http://pugixml.org)
- rapidjson 1.1.0 (https://github.com/miloyip/rapidjson)
- Recast/Detour (https://github.com/recastnavigation/recastnavigation)
- SDL 2.0.10+ (https://www.libsdl.org)
- SQLite 3.36.0 (https://www.sqlite.org)
- StanHull (https://codesuppository.blogspot.com/2006/03/john-ratcliffs-code-suppository-blog.html)
- stb_image 2.18 (https://nothings.org)
- stb_image_write 1.08 (https://nothings.org)
- stb_rect_pack 0.11 (https://nothings.org)
- stb_vorbis 1.13b (https://nothings.org)
- tolua++ 1.0.93 (defunct - http://www.codenix.com/~tolua)
- WebP (https://chromium.googlesource.com/webm/libwebp)
- ETCPACK (https://github.com/Ericsson/ETCPACK)
- Tracy 0.7.6 (https://github.com/wolfpld/tracy)
DXT / PVRTC decompression code based on the Squish library and the Oolong Engine. Jack and mushroom models from the realXtend project. (https://www.realxtend.org) Ninja model and terrain, water, smoke, flare and status bar textures from OGRE. BlueHighway font from Larabie Fonts. Anonymous Pro font by Mark Simonson. NinjaSnowWar sounds by Veli-Pekka Tätilä. PBR textures from Substance Share. (https://share.allegorithmic.com) IBL textures from HDRLab's sIBL Archive. Dieselpunk Moto model by allexandr007. Mutant & Kachujin models from Mixamo. License / copyright information included with the assets as necessary. All other assets (including shaders) by 3rd-Engine authors and licensed similarly as the engine itself.
3rd-Engine classes have been sparsely documented using Doxygen notation. To generate documentation into the "Docs" subdirectory, open the Doxyfile in the "Docs" subdirectory with doxywizard and click "Run doxygen" from the "Run" tab. Get Doxygen from http://www.doxygen.org & Graphviz from http://www.graphviz.org. See section "Documentation build" below on how to automate documentation generation as part of the build process.
The documentation is also available online at: here
Documentation on how to build 3rd-Engine: here
Documentation on how to use 3rd-Engine as external library: here
Replace HEAD with a specific release version in the above links to obtain the documentation pertinent to the specified release. Alternatively, use the document-switcher in the documentation website to do so.
The change history is available online at: here