RACER USAGE - READ BEFORE MODIFYING SOURCE CODE

The programs and source code of the Racer project are copyright of Ruud van
Gaal, Dolphinity, 2000-2001.
All rights reserved. Publishing of included material without prior written
permission of the author is prohibited.

Publishing of material downloadable here may however be done on a
non-commericial basis. In this case, I would appreciate it if you send me a
note regarding where you make available the material.

Use of any of the published source code in commercial software is explicilty
NOT allowed without prior written permission. Distributions on Linux
distributions (as is done on SuSE8.0 for example) IS however allowed. Use of
(parts of) the source code in non-commercial software is allowed however.
For commercial usage, licensing may be an option, for which you can contact
the author.

This is NOT an Open Source project, although many people think so. You CAN
contribute to the source if you want (or cannot resist), but all changes
will go through me to the master source code. This is done to ensure quality
and consistent style for instance. Also, parts of Racer (the QLib/D3
libraries) are used in other projects, and changing the source code of this
would be counterproductive for the other products that use these libraries.
Therefore, the decision has been made not to OpenSource the source code.
Realise that the copyrights will stay at Dolphinity, so for many people this
will mean that they won't contribute to the source. This is ok to me, the
product seems not large enough to need the whole world to aid in developing
(except for the contents; cars & tracks). To add to the Racer project and
maintain control, it is advised to create separate executables, which may
use parts of the source code, but are not completely separately usable
products. This means you can create a Replay Analyzer which uses track code
from the Racer source code, but that you may NOT create a complete racing
game based on a specific era for example, and distribute this commercially
as a separate product.

If you have any questions on the usage of the materials presented in the
Racer site, please contact me.

ADDITIONAL COPYRIGHTS (PRODUCTS MENTIONED IN PARTS OF THE SITE)

Sports Car GT Copyright Electronic Arts 1999
F1 2000 Copyright Electronic Arts 2000
Microsoft Windows is a registered trademark of Microsoft
Grand Prix Legends is a registered trademark of Papyrus

All other trademarks are property of their respective companies.

No SCGT tracks can and will be found on this website. You are (probably) not
allowed to post directly converted tracks onto your website, but you can
upload Racer-specific files (but not the images and directly converted DOF
models).

Ruud van Gaal
last updated August 11, 2002
