Version 12, last updated by Seniltai at August 24, 2009 19:20 UTC

TRoS Lite is basically the entire TRoS engine (with all it's tools, etc...) but with a much tidier subversion tree. Also, it's not as large anymore (4,5 gig -> 15 mb or so). I try to keep the entire tree size to a minimum. Data files will need to be downloaded elsewhere, but I haven't determined the location yet. Some data files will be added, but only small test cases, and shaders, which are small anyway.

It's very much a work in progress, which is almost always the case with engines. You just can keep adding and adding.

IMPORTANT: Get supplementary data files here: http://troslite.5nxs.com/dlmulti.php?id=data.rar

Licensing

Current versions of TRoS Lite are licensed under GNU Lesser General Public License (LGPL) (full legal: http://www.gnu.org/licenses/lgpl-3.0-standalone.html). This may change without notice.. However, it is guaranteed that all versions *before* a potential license change still retain their original license.

 

Current features:

Core

- Cross-platform (Linux/Windows, and it should also work on a Intel based Mac, but that's untested at the moment)
- Visual Studio/G++ compilers officially supported, has also been successfully used with Intel C++.
- Built in a modular fashion; everything can be removed and replaced.
- Serializer: Change classes/structs/interfaces to string form and vice versa, easily.
- Blueprint system, automatic reference counting & destruction by concepts like capturing and on-death hooks.
- Nodular design, almost all classes are nodes which can be placed arbitrarily in any tree (CContainerNode)
- Callbacks by controllers, callbacks can be handled with C++ or Lua, by adding the right controller to a controller chain.
- Mouse/Keyboard Input. (support for all three buttons, scroll wheel, and also extra buttons, if your mouse has them)
- 3d math classes: Quaternions, 4x4Matrices and Vectors. Work the same whether you use DirectX or OpenGL (averting the row-major/column-major issue)
- Wide interpolation support (linear, cosine, cubic, cubic-bezier, hermite spline, TCB, catmull-rom)
- Collision detection (AABB/OBB/Sphere/Ray/Triangle/Frustum)
- XML importer
- Scripting language support (Lua)
- MD5 hash computation
- BZip2 compression

Network

- UniNetwork based; a variant on RakNet completely written from scratch
- Switchable to UDP/SmartTCP/TCP, just by changing a single enum value.
- Packet based (makes the stream part of TCP go away, by using SmartTCP)
- Multi threaded (using pthreads)
- Made for heavy-duty use (I've written a test FTP server with it, and ran it on a linux computer with an 100 mbit connection, where it managed speeds of 9,8 MB/s. In RawTCP mode)

Graphics

- Scene graph driven (built on top of the Node system of Core)
- Renderer agnostic (OpenGL/DirectX9 are currently implemented, but an extra renderer, like DX10, could be easily added)
- Multiple instances of renderers can be transparently working next to each other, so you can view renderer differences instantly.
- Renderers can be removed without reloading all meshes/textures/etc. Switching a renderer in real-time is easy (see toolkit).

- Shader support (CgFX currently, which works on both OpenGL and DirectX. Support for HLSL/GLSL is planned.)
- Generic mesh system (terrain renderer, skybox, skydomes, animated meshes, or static meshes, it's all the same)
- CPU based skeletal animation (still working on a GPU variant, with shaders)
- Matrix animation (using the interpolator from core)
- OBJ/Collada model loaders.
- DDS/TGA texture loaders.
- Cubemapping

Audio

- Sound streaming support
- MP3/OGG support (OpenAL driven)
- 3d sound support (OpenAL)

Database

- MySQL support
- SQLite3 included (with a custom made C++ wrapper, to make life a lot easier)