WoW: Difference between revisions

No edit summary
No edit summary
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
The [[Whoa]] and [[Thunderbrew]] projects are based on the mission of recreating a faithful and open-source implementation of the World of Warcraft 3.3.5a.12340 Wrath of the Lich King client.
[[Category:Software]]
{{Software
|name        = World of Warcraft
|image      = WoW Box Art.jpg
|type        = Computer game
|authors    = [[Blizzard Entertainment]]
|license    = Proprietary
}}


== Why work with 3.3.5a mainly? ==
'''''World of Warcraft''''' ('''''WoW''''') is a 2004 massively multiplayer online role-playing game (MMORPG) developed and published by [[Blizzard Entertainment]] for [[WoW:Windows port|Windows]] and [[WoW:Mac OS X port|Mac OS X]].


The game and its libraries have become significantly more complex in the intervening 10+ years. By picking 3.3.5a, it's possible to imagine our implementation will eventually be complete.
== Client ==


== Study ==
== Server ==


Many attempts have been made throughout history to study the internals of this client.
== Our mission ==


To consolidate and refine our collective understanding, [[Thunderbrew:Binana|Binana]], a repository of symbol databases and C headers, was created.
The [[Whoa]] and [[Thunderbrew]] projects are based on the mission of recreating a faithful and open-source implementation of the [[WoW:3.3.5a|3.3.5a client]].


=== Compilers used ===
The game and its libraries have become significantly more complex in the intervening 10+ years. By picking 3.3.5a, it's possible to imagine our implementation will eventually be complete.
 
On Windows, the client was known to be compiled using the Microsoft Visual C++ Compiler (but which version?)
 
On MacOS, the XCode version of GCC was used.
 
=== Dependencies ===
 
The WoW client was known to have the following dependencies:
 
* fmod - For in-game audio playback
 
* lua - Used extensively for Glue and FrameScript. Much of the client runs through this Lua interface.
 
* libexpat - Used to parse XML, commonly used in GlueXML and FrameXML