Difference between revisions of "CWE Libraries and SDKs"

From OpenUru
Jump to: navigation, search
m (OpenAL/EFX SDK: fixed link to OpenAL)
m (Undo revision 1297 by Mac Fife (talk) - Fixed something that wasn't broken)
Line 50: Line 50:
== OpenAL/EFX SDK ==
== OpenAL/EFX SDK ==
OpenAL [http://openal.org/] with EFX (Effects Extension) is an open specification replacement for [[#EAX|EAX]] provided under a [http://www.gnu.org/copyleft/lesser.html LGPL license]. Installers and SDKs for various platforms are readily available for download from Creative Labs website. [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx]
OpenAL [http://kcat.strangesoft.net/openal.html] with EFX (Effects Extension) is an open specification replacement for [[#EAX|EAX]] provided under a [http://www.gnu.org/copyleft/lesser.html LGPL license]. Installers and SDKs for various platforms are readily available for download from Creative Labs website. [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx]
== OpenSSL Toolkit ==
== OpenSSL Toolkit ==

Revision as of 14:52, 26 September 2011

The information on this page is not guaranteed to be fully complete or accurate, but is the best understanding avalable at the time of preparation. Consider this to be a "quick start" for information on the libraries, and a hub for further research. It is also likely that as development progresses, the information here will be superceded. Everyone should feel free to propose amendments to this page on the OU forums.
This page contains draft content
The content of this page is a "work-in-progress" and is subject to change. Do not place undue reliance on the completeness or accuracy of the material presented here!


The CyanWorlds.com Engine (CWE) is released under the GPLv3 Open Source license but uses a number of libraries or SDKs that are not part of the development tool suite and are either commercially licensed or use licenses that are otherwise incompatible with the GPL. Consequently, these are not included within the Open Source release. However, many of these are readily available to any developers wishing to work on the CWE code.

The GPL FAQ addresses allowance of incompatible libraries: [1]

Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.

What this means is that you may build and distribute a GPLv3 application as a binary that uses those libraries, but in distributing the source you need not distribute the library or its source (and you may be expressly prohibited from doing so by the applicable license).

The following paragraphs summarize the situation regarding each of these libraries/SDKs.


The Bink Video Codec [2] is a commercially licensed product by RAD Game Tools. At around US$6000 for a single product license this is probably beyond the price range of most private open source developers. Fortunately this only appears to be used at present for the introductory videos.

Direct X

CWE was built using the DirectX 9.0c SDK which is readily downloadable.[3] The EULA for the SDK permits free re-distribution in object form.


The CyanWorlds.com Engine originally used Creative Labs EAX 3D audio technology [4]. EAX is a commercially licensed product, and beyond the reach of most private developers.

The alternative is to use OpenAL with EFX which supports EAX effects.


The Expat XML parsing library [5] is believed to only be required when building the server code. As Cyan's server code is not yet ready for Open Source release, the omission of Expat is of little significance at this time. However, for reference, Expat is offered under the MIT License

FreeType 2

FreeType 2, from the FreeType Project, is a font service supporting OpenType, TrueType, Windows .fnt and Type 1 fonts amongst many others. FreeType 2 used methods that were subject to patent protection, but these expired in May 2010. [6]

Two licenses are available to use with FreeType 2: The FreeType License (BSD-like) and the GPL. The latter is obviously more appropriate for compatibility with CWE.

FreeType may only be required when generating content (age building using the plugin).

Intel JPEG Library

The Intel JPEG Library (IJL) is no longer available for download, and no new licenses are being offered. Intel recommend using the Integrated Performance Primitives (IPP)[7] instead. This is commercially licensed (US$199) and is not currently available for Mac platforms.

IJG jpeglib

An open source alternative, which has already been succesfully integrated with CWE, is the Independent JPEG Group (IJG)[8] jpeglib. The license for this is embedded within the README file accompanying the library and is specific to jpeglib. Please note that binary distributions that use jpeglig must give credit to IJG in the form: "This software is based in part on the work of the Independent JPEG Group." This may either be in the form of in-game credits or an accompanying README file.

3ds Max 7 SDK (Autodesk)

This is apparently only required to build the plugin. The Max 7 SDK is supplied on the 3ds Max product DVD [9] and is not available for download. It is commercially licensed alongside 3ds Max. 3ds Max 7 is no longer available as a retail product although some pre-owned copies may be available. Current editions (3ds Max 2011 and 3ds Max 2012) are priced at US$3495 [10] putting this outside the reach of many fan developers.

Ogg Vorbis

Ogg Vorbis is an open specification for audio compression, designed by Xiph.org Foundation. [11]. The reference library implementation is supplied under a BSD license. This is the newer, three clause BSD license that omits the controversial advertising clause of the original BSD license, and is verified as GPL compatible by the Free Software Foundation.

Note that Ogg [12] and Vorbis [13] are supplied as separate libraries and that both are required.


OpenAL [14] with EFX (Effects Extension) is an open specification replacement for EAX provided under a LGPL license. Installers and SDKs for various platforms are readily available for download from Creative Labs website. [15]

OpenSSL Toolkit

OpenSSL is a Secure Sockets Layer implementation originally developed by Eric Young. OpenSSl is "dual licensed" in that that both the OpenSSL License (BSD-like) and the original SSLeay License are applied concurrently [16]. From Gnu.org: [17]

The license of OpenSSL is a conjunction of two licenses, one of them being the license of SSLeay. You must follow both. The combination results in a copyleft free software license that is incompatible with the GNU GPL. It also has an advertising clause like the original BSD license and the Apache license.

We recommend using GNUTLS instead of OpenSSL in software you write. However, there is no reason not to use OpenSSL and applications that work with OpenSSL.

It is the "advertising clause" that presents the incompatibility with GPLv3, and requires that all "advertising material" should include the credits noted below.

Binary distributions that use the OpenSSL Toolkit must give credit to the OpenSSL group and the original creators: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic software written by Eric A. Young (eay@cryptsoft.com). This product includes software written by Tim J. Hudson (tjh@cryptsoft.com)." This may either be in the form of in-game credits or an accompanying README file.

The credit to Tim J. Hudson may be omitted if you can determine that no Windows specific code from the toolkit, or any derivative of it, is used in your application.

PhysX (Ageia/nVIDIA)

There are two components to PhysX - the Drivers (run-time elements) and the SDK. Each are subject to different licensing conditions. The CyanWorlds.com Engine was originally built using version 2.6.0. of the SDK, which is no longer available for download - the earliest version currently avaliable is 2.6.4.

Please note that it is important that the version of Driver used provides support for the version of SDK in use.


Starting from version 2.6.0 of the SDK, the End User License Agreement [18] was changed to make this free for commercial and non-commercial use. However each developer is required to register on the nVIDIA Developer site [19] prior to downloading the SDK. The SDK license is exclusive to the registered developer, and it is not permissable to re-distribute the SDK in any form.


The driver (or "PhysX System Software") is required for all client installs and may be freely downloaded from the nVIDIA site. It is also permissable to redistribute the driver alongside a compiled application. [20]

It is recommended that you use the the latest version of the PhysX driver (currently 9.10.0513 [21]) as this provides support for all versions of the SDK from v2.3.1 and onwards.

Quicktime for Windows

Not currently required for the CyanWorlds.com Engine.

Windows SDK (Microsoft)

The Windows Platform SDK (February 2003) as used by CWE is longer available from the Microsoft Download center, but direct links to download each of the .CAB files and the Extractor are available on the Microsoft forums [22] and in the build instructions. The EULA accompanies the SDK, and allows for free redistribution within the compiled application.