RenderWare: Difference between revisions

No edit summary
 
mNo edit summary
 
(19 intermediate revisions by 13 users not shown)
Line 1: Line 1:
'''RenderWare''' ('''RW''') is computer and video game middleware from [[Criterion Software]].
[[File:RenderWareLogo.gif|thumb|The RenderWare Logo]]
'''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==
==Description==
RenderWare is a [[3D computer graphics|3D]] [[application programming interface|API]] and graphics rendering [[Game_engine#Middleware|engine]] used in [[computer games]], [[Active Worlds]], and some [[VRML]] browsers. RW is developed by [[Criterion Software]] (which used to be a wholly-owned subsidiary of [[Canon (company)|Canon]] but is now owned by [[Electronic Arts]]).
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).  
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).  
Line 10: Line 11:
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.
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 [[Microsoft Windows|Windows]] based [[Personal computer|PC]] applications, and many video game consoles such as [[PlayStation 2]], [[GameCube]], [[Xbox]] and [[PlayStation Portable]].
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]].


==Industry support==
==Versioning==
RenderWare is used throughout the [[video game industry]].  Some of the games using RW include:
*''[[Battlefield 2: Modern Combat]] 2006 Playstation 2, Xbox, Xbox 360


*''[[Black (video game)|Black]] 2006 PlayStation 2, Xbox, Electronic Arts Inc.,
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.


*''[[Bleach: Erabareshi Tamashii]]  2005 PlayStation2, Sony Computer Entertainment
{|class="wikitable"
|
!{{Icon|3}}
!{{Icon|VC}}
!{{Icon|SA}}
|-
!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
|}


*''[[Blitz: The League]] 2005 PlayStation 2, Xbox, Midway Games
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.


*''[[Broken Sword#Broken Sword: The Sleeping Dragon|Broken Sword: The Sleeping Dragon]] 2003 PlayStation 2, Windows, Xbox The Adventure Company, THQ, Inc.
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>.


*''[[Evil Dead: Regeneration]] 2005 Playstation 2, Xbox, Windows Cranky Pants Games, THQ, Inc.
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.


*''[[Burnout (game)|Burnout 2: Point of Impact]]  2002 GameCube, PlayStation 2, Xbox, Acclaim, Acclaim Entertainment, Inc.
These C example functions pack and unpack library ID stamps:


*''[[Burnout (game)|Burnout 3: Takedown]] 2004 PlayStation 2, Xbox, Electronic Arts Inc.
<pre>
RwUInt32
libraryIDPack(RwUInt32 version, RwUInt32 build)
{
if(version <= 0x31000)
return version>>8;
return (version-0x30000 & 0x3FF00) << 14 | (version & 0x3F) << 16 |
      (build & 0xFFFF);
}


*''[[Burnout (game)|Burnout Legends]] 2005 Nintendo DS, PSP, Electronic Arts Inc.,
RwUInt32
libraryIDUnpackVersion(RwUInt32 libid)
{
if(libid & 0xFFFF0000)
return (libid>>14 & 0x3FF00) + 0x30000 |
      (libid>>16 & 0x3F);
return libid<<8;
}


*''[[Burnout (game)|Burnout: Revenge]] 2005 PlayStation 2, Xbox, Xbox 360, Electronic Arts Inc.
RwUInt32
libraryIDUnpackBuild(RwUInt32 libid)
{
if(libid & 0xFFFF0000)
return libid & 0xFFFF;
return 0;
}
</pre>


*''[[Burnout (game)|Burnout]]  2001 GameCube, PlayStation 2, Xbox, Acclaim Entertainment, Inc.
==Binary streams==


*''[[Call of Duty: Finest Hour|Call of Duty: Finest Hour]] 2004 GameCube, PlayStation 2, Xbox, Activision Publishing, Inc.,
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]]).
 
*''[[City Crisis]] 2001 PlayStation 2, Syscom Entertainment Inc., Take-Two Interactive Software, Inc.
 
*''[[Cold Winter]] 2005 PlayStation 2, Vivendi Universal Games, Inc.
 
*''[[Commandos Strike Force]] 2006 PlayStation 2, Windows, Xbox, Eidos Interactive Ltd.
 
*''[[Darkwatch]] 2005 PlayStation 2, Xbox, Capcom Entertainment, Inc.
 
*''[[Eve Burst Error]] Plus 2003 PlayStation 2, Game Village
 
*''[[Football Generation]] 2003 Windows, 1C Company, FX Interactive, Take 2 Interactive
 
*''[[Frank Herbert's Dune]] 2001 PlayStation 2, Windows, Cryo Interactive Entertainment
 
*''[[Gauntlet: Seven Sorrows]] 2005 PlayStation 2, Xbox, Midway Home Entertainment Inc.
 
*''[[Grand Theft Auto III]] 2001 PlayStation 2, Windows, Rockstar Games, Inc.
 
*''[[Grand Theft Auto: San Andreas]] 2004 PlayStation 2, Windows, Xbox, Rockstar Games, Inc.
 
*''[[Grand Theft Auto: Vice City]] 2002 PlayStation 2, Windows, Xbox, Rockstar Games, Inc.
 
*''[[Headhunter: Redemption]] 2004 PlayStation 2, Xbox, SEGA of America, Inc.
 
*''[[Kamen Rider: Seigi no Keifu]]  2005 PlayStation2, Bandai, Cavia
 
*''[[kill.switch]] 2003 PlayStation 2, Windows, Xbox, Hip Interactive Corp., Namco Hometek Inc.,
 
*''[[Madagascar]]  2005 GameCube, PlayStation 2, Windows, Xbox, Activision Publishing, Inc.
 
*''[[Manhunt (video game)|Manhunt]] 2003 Windows, PlayStation2, Xbox, Rockstar North
 
*''[[Mortal Kombat|Mortal Kombat: Deadly Alliance]] 2002 Game Boy Advance, GameCube, PlayStation 2, Xbox, Midway
 
*''[[Mortal Kombat|Mortal Kombat: Deception]] 2004 GameCube, PlayStation 2, Xbox, Midway Home Entertainment Inc.
 
*''[[Nana]] 2005 PlayStation 2, Konami
 
*''[[NBA Ballers]] 2004 PlayStation 2, Xbox, Midway, Midway Games
 
*''[[NRL Rugby League]] 2003 PlayStation 2, Windows, Xbox, Tru Blu Entertainment Pty Ltd
 
*''[[ObsCure]] 2004 PlayStation 2, Windows, Xbox, DreamCatcher Interactive Inc., MC2 France, MC2-Microïds
 
*''[[Outlaw Golf 2]] 2004 PlayStation 2, Xbox, Global Star Software Inc.
 
*''[[Pro Evolution Soccer]] 2 2002 PlayStation, PlayStation 2, PC, Konami Corporation
 
*''[[Sonic Heroes]] 2003 GameCube, PlayStation 2, Windows, Xbox, SEGA Entertainment
 
*''[[SpongeBob SquarePants: Battle for Bikini Bottom]] 2003 GameCube, PlayStation 2, Windows, Xbox, THQ, Inc.
 
*''[[Tech Deck: Bare Knuckle Grind]] 2005 Xbox, Visionscape Interactive
 
*''[[The Incredibles: Rise of the Underminer]] 2005 GameCube, PlayStation 2, Windows, Xbox, THQ, Inc.
 
*''[[The Incredibles]] 2004 GameCube, PlayStation 2, Windows, Xbox, D3 Publisher Inc., Noviy Disk, Snowball.ru, THQ, Inc.
 
*''[[The Movies]] 2005 Windows, Lionhead Studios
 
*''[[The Warriors (video game)|The Warriors]] 2005 PlayStation 2, Xbox, Rockstar Toronto, Rockstar Games
 
*''[[Tony Hawk's Pro Skater 3]]  2001  GameCube, PlayStation 2, Windows, Xbox,  Neversoft, Activision
 
*''[[Tony Hawk's Pro Skater 4]]  2002  GameCube, PlayStation 2, Windows, Xbox,  Neversoft, Activision
 
*''[[Tony Hawk's Underground 2]]  2004  GameCube, PlayStation 2, Windows, Xbox,  Neversoft, Activision
 
*''[[Tony Hawk's Underground]]  2003  GameCube, PlayStation 2, Xbox,  Neversoft, Activision
 
*''[[Total Overdose]] 2005 PlayStation 2, Xbox, Windows, SCi Games Ltd.
 
*''[[Wangan Midnight Maximum Tune]] 200X Arcade, Genki, Namco
 
*''[[Without Warning (video game)|Without Warning]] 2005 PlayStation 2, Xbox, Capcom Entertainment, Inc.,
 
*''[[yourself!Fitness]] 2004 PlayStation 2, Xbox, Windows, responDESIGN
 
*''[[NFL Blitz]] 2002, 2003 and Pro. Sony Playstation 2, Nintendo Gamecube, Microsoft X-Box, Midway Games.
 
==See also==
* [[Gamebryo]], a chief competitor to RenderWare
* [[Active Worlds]]


==External links==
==External links==
*[http://www.renderware.com/ RenderWare]
*[http://www.renderware.com/ RenderWare]
*[http://www.csl.com/ Criterion Software]
*[http://www.csl.com/ Criterion Software]
*[http://tnlc.com/rw/ Active Worlds RenderWare Object Creation]
*[http://www.tnlc.com/rw/ Active Worlds RenderWare Object Creation]
[[Category:Game engines]]
*[https://github.com/electronicarts/Renderware3Docs RenderWare 3 documentation] ([http://www.gtaforums.com/index.php?showtopic=882649 Discussion topic])
[[Category:3D Scenegraph APIs]]
 
{{3-navi}}
{{VC-navi}}
[[Category:Game Engines]]
[[Category:Companies]]

Latest revision as of 02:10, 26 July 2018

The RenderWare Logo

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 other games. GTA III's portable successors Grand Theft Auto: Liberty City Stories and Grand Theft Auto: Vice City Stories use the 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 3D API (Application Programming Interface) and graphics rendering 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 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 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 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.

GTA III GTA Vice City GTA 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 0xVJNBB, 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 0x36003. The library build is 0xFFFF in all versions used by GTA.

To make the library ID stamp, 0x30000 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 0x36003 build 0xFFFF for instance is encoded as 0x1803FFFF.

Version 3.1.0.0 and before had no binary revision and build number and the library ID stamp was just 0x00000VJN (no 0x30000 subtracted). Version 3.1.0.0 for instance would be encoded as 0x00000310. Version 3.1.0.1 (used in some GTA III files, build FFFF) on the other hand is encoded as 0x0401FFFF. 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:

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;
}

Binary streams

The most notable part of the engine when used in a modding context are the binary stream files, which contain either the games geometry (DFF) or its textures (TXD).

External links