RenderWare and Template:Icon-square: Difference between pages

(Difference between pages)
(contributions from myself, Aschratt, The GTA, and The Hero)
 
(Spaceeinstein moved page Template:Icon-square to Template:Icon)
Tag: New redirect
 
Line 1: Line 1:
[[File:RenderWareLogo.gif|thumb|The RenderWare Logo]]
#REDIRECT [[Template:Icon]]
'''RenderWare''' ('''RW''' for short) is the graphics engine by Criterion Software that was licensed and used by [[Rockstar Games]] for their titles Manhunt, Bully, [[Grand Theft Auto III]], [[Grand Theft Auto: Vice City]] and [[Grand Theft Auto: San Andreas]], just as for various [[wikipedia:List of RenderWare games|other games]]. GTA III's portable successors [[Grand Theft Auto: Liberty City Stories]] and [[Grand Theft Auto: Vice City Stories]] use the [[Leeds Engine|Rockstar Leeds engine]] that is almost a clone of the original RenderWare engine, which was already influenced by Rockstar Game's custom engine called [[RAGE]], which was used in the later titles [[Grand Theft Auto IV]] and [[Grand Theft Auto V]].
 
==Description==
RenderWare is a [[Three-Dimensional|3D]] API (Application Programming Interface) and graphics rendering [[wp:Game engine|engine]] used in computer and console games such as Grand Theft Auto III and Grand Theft Auto: San Andreas,and and in MUVRS's such as [http://www.activeworlds.com/ Active Worlds], and some VRML (Virtual Reality Markup Language) browsers. RenderWare is developed by Criterion Software Ltd. (which used to be a wholly-owned subsidiary of Canon but is now owned by [http://www.ea.com/ Electronic Arts]).
 
Prior to versions 2.x, an external programming or scripting language had to be used to take advantage of RenderWare.  RenderWare 2.x, on the other hand, has its own internal scripting language: RWX (RenderWare script).
 
RWX support was dropped from RenderWare 3.x, instead focusing on a binary model file format. RWX scripts are incompatible with RW3.x.
 
With RenderWare 4.x, Criterion is slated to drop support for RW3.x's formats, thereby making version 4.x incompatible with scripts/files from all previous versions.
 
RenderWare is available for use in Windows based [[Personal Computer|PC]] applications, and many video game consoles such as [[PlayStation 2]], GameCube, [[Xbox]] and [[PlayStation Portable]].
 
==Versioning==
 
Each GTA game was linked against a certain version of the RenderWare engine. The following table gives an overview over the different versions that apply to GTA.
 
{| class="wikitable"
|
| III
| Vice City
| San Andreas
|-
| PS2
| 3.1.0.0
| 3.3.0.2
| 3.6.0.3
|-
| PC
| 3.3.0.2
| 3.4.0.3
| 3.6.0.3
|-
| Xbox
| 3.5.0.0
| 3.5.0.0
| 3.6.0.3
|-
| Android
| 3.4.0.5
| 3.4.0.5
| 3.6.0.3
|-
|}
 
On binary level, versions are used in different cases, most notably the ''library identifier stamp'' found in RenderWare's binary stream files. The stamp contains the version and build number of the RW library that wrote the file. It is a number that appears in the form <code>0xVJNBB</code>, where V (3 bits) is the Renderware version, J (4 bits) is the major revision, N (4 bits) is the minor revision and B (6 bits) is the binary revision. Version 3.6.0.3 for instance would be encoded as <code>0x36003</code>. The library build is <code>0xFFFF</code> in all versions used by GTA.
 
To make the library ID stamp, <code>0x30000</code> is subtracted from the version first and then packed as follows (where D is the 16 bit build number):
VVJJ JJNN NNBB BBBB DDDD DDDD DDDD DDDD
Version <code>0x36003</code> build <code>0xFFFF</code> for instance is encoded as <code>0x1803FFFF</code>.
 
Version 3.1.0.0 and before had no binary revision and build number and the library ID stamp was just <code>0x00000VJN</code> (no <code>0x30000</code> subtracted).
Version 3.1.0.0 for instance would be encoded as <code>0x00000310</code>.
Version 3.1.0.1 (used in some GTA III files, build <code>FFFF</code>) on the other hand is encoded as <code>0x0401FFFF</code>.
To find out what version a file has when reading, RW checks the upper 16 bits and assumes the old format when they're zero.
 
These C example functions pack and unpack library ID stamps:
 
<pre>
RwUInt32
libraryIDPack(RwUInt32 version, RwUInt32 build)
{
if(version <= 0x31000)
return version>>8;
return (version-0x30000 & 0x3FF00) << 14 | (version & 0x3F) << 16 |
      (build & 0xFFFF);
}
 
RwUInt32
libraryIDUnpackVersion(RwUInt32 libid)
{
if(libid & 0xFFFF0000)
return (libid>>14 & 0x3FF00) + 0x30000 |
      (libid>>16 & 0x3F);
return libid<<8;
}
 
RwUInt32
libraryIDUnpackBuild(RwUInt32 libid)
{
if(libid & 0xFFFF0000)
return libid & 0xFFFF;
return 0;
}
</pre>
 
==Binary streams==
 
The most notable part of the engine when used in a modding context are the [[RenderWare binary stream file|binary stream files]], which contain either the games geometry ([[DFF]]) or its textures ([[TXD]]).
 
==External links==
*[http://www.renderware.com/ RenderWare]
*[http://www.csl.com/ Criterion Software]
*[http://www.tnlc.com/rw/ Active Worlds RenderWare Object Creation]
*[https://github.com/electronicarts/Renderware3Docs RenderWare 3 documentation] ([http://www.gtaforums.com/index.php?showtopic=882649 Discussion topic])
 
[[Category:Game Engines]]
[[Category:Companies]]

Latest revision as of 05:42, 19 July 2018

Redirect to: