World of Warcraft (WoW) was an AAA proprietary game, released by Blizzard in November 2004, that would become one of the most successful and influential games among MMORPGs (and games in general). It was the mainstream kind of "theme park" fantasy MMO, considered fairly easy to learn and play (compared to something like Eve Online), something explicitly admitted as one of the game's primary design goals because the game HAD to make a lot of money in order to pay for its long and costly development -- upon its release it was the biggest game ever made. It was a successor to Warcraft III which was a real time strategy, although both games were actually developed in parallel. World of Warcraft had -- in its beginning -- one of the best aesthetics of all games in history (hand painted, relatively low poly cartoonish/stylized look it shared with the aforementioned Warcraft III), however later on (after the few initial expansions) it adopted a more "modern" look and ruined everything of course. World of Warcraft, like so many other franchises, was killed around the disastrous year 2010. Nowadays it's been long considered dead, not more than a money milking corpse, with devs censoring emotes, politically correcting the lore and adding tons of crap such as literal furry races and whatnot.
The "good old" WoW (mostly the vanilla but we can possibly extend this to the end of WOTLK) sit somewhere in between good old and shitty modern games, it had many great things like the iconic awesome low poly hand painted stylized graphics, big open world, amazing PvP and PvE, but the modern poison was already creeping in. The WoW of today is of course 100% pure shit, it's bloated beyond any imagination, the graphics is absolutely ruined (semi realistic style, everything looks like a cheap plastic toy, with the retarded shit like character outlines, it looks much worse and is also 10000x heavier on the GPU), it's extremely censored and politically correct (you can literally change gender of your character at barbershop lol, they did this out of fear of LGBT, they also removed the spit emote because it was "offensive" -- yes, a game that's all about war and killing and literally has war in its name must restrain you from hurting someone's feelings by spitting on the ground). You can also make any weapon or armor make look like any other weapon or armor ("transmog"), that just kills the whole point of an RPG, some players also see a different world than others ("phasing") and so on. Also basically every race can now be any class, even if it doesn't make any sense, like Tauren rogue (in the past this used to be a joke but today jokes are made into reality) -- otherwise it would be racism or something. A rat in level 80-90 area is 1000 times stronger than a bear in level 1-10 area, that's just fucked up. The game has about 1 billion expansions while the lore writers had already ran out of any ideas after like 5 of them, so they now just started to mess around with time travel and alternative timelines (resorting to time rape is always that desperate last resort move which signifies the work has been dead for a long time by then). The game is so bad Blizzard even started running official vanilla, no expansion servers ("classic WoW"), which is the only thing holding it above the water now. Of course before this they nuked all the popular unofficial private vanilla servers with legal threats so they could force a monopoly -- this destroyed great many communities but Blizzard is a corporation so they could do anything they want.
Now for the (un?)fortunate reader who didn't get to play WoW during the glorious days or never at all, here is the gist. You bought the game and then had to pay $15 monthly in order to continue playing on the official servers. Pirating WoW was possible and playing on unofficial servers was gratis (Blizzard tolerated unofficial servers maybe because they provided a de-facto "demo" version for the hesitating customers), but the first such servers (running on Wowemu) were ridiculously broken and buggy and had maybe 10 or 20 other players, so it felt like shit (for many still the best shit of their lives). In the game you were allowed to create several characters and for each you'd have to choose a server (officially called a "realm") -- in total there were hundreds of official servers around the globe simply because the number of players was ginormous. Naturally players from different servers couldn't meet each other, plus USA and Europe (and other continents) maintained separate servers (you couldn't choose a US server as a European and vice versa, even if you wanted). Apart from players inhabiting the servers they were mostly identical -- same world, same quests, same dungeons -- spare for a few peculiarities, e.g. that some were officially in non-English languages, some were marked as "PvP" (players could be attacked without consent) or "roleplaying" (players had to stay in character). Lorewise there were 2 big factions at war with each other: the Alliance and the Horde, each comprised of 4 allied races, so 8 playable races in total for the players to choose from (humans, orcs, elves etc.). Additionally you elected a class such as a warrior, mage, priest or druid (some classes were limited only to some races) -- the class would determine how you'd fight and what role in raids you'd be assigned (your race didn't matter as much as the class). For example warriors could wear the heaviest armor and were dangerous at close range but couldn't heal themselves easily, a hunter was good with ranged weapons and could tame a wild animal as a pet to fight by his side etc. Alliance and Horde both had their own cities and players from the opposing factions couldn't talk to each other (the chat text of enemy players was made to gibberish by the game, in lore explained by difference of languages -- this actually spawned the kek meme), but they could, of course, fight. Upon entering the world with your character you'd start at level 1 with the goal of reaching the maximum level 60 (by gaining experience for killing monsters and completing quests), which could take several weeks and was actually something akin to a tutorial before the "endgame". By endgame raiding and/or PvP is understood here; through these activities players acquired better and better gear to further improve their maximum level character. As for geography: the world was massive, initially comprised of two large continents, each split to 25 or so zones -- a zone always had its unique feel, quests and level range for the players; players weren't prevented from going anywhere per se, but since you wouldn't survive so much as a butterfly touching you in a higher level zone, the progress through zones was eventually relatively linear. Leveling was mostly about completing quests for the NPCs, typically killing other NPCs and collecting and delivering items. If you died, you'd appear as a ghost at the nearest graveyard and had to walk back to your corpse whereupon you could re-enter your body and revive yourself, or you could revive right at the graveyard but with some penalty. Other activities included collecting new and better items, exploring zones, trading at the auction house, making and joining guilds, training professions (like herbalism or leatherworking) and selling crafted products, fishing, fighting in battlegrounds (special PvP only "arenas"), collecting mounts etc. With higher levels you'd learn new spells, become able to purchase and raid a mount (slower one at level 40 and fast one at 60), choose your talents (further specializing you within your class, e.g. as a warrior you could specialize on defense of attack) etc. Every once in a while a new """optional""" (:D) expansion would be released that typically opened new parts of the world, raised the level cap and brought new features such as new races, classes, flying mounts etc. WoW wasn't hugely innovative but rather well executed, polished and balanced: for example the customer service was universally praised -- not only its quality but how Blizzard employees would appear as GameMasters (GMs) in the game if you had some trouble, it was cool to see the almighty blue robed demigods do the magic and be friendly in the chat, even telling jokes or giving away small items. Each race and class was fun in its own way (some could shapeshift, some could summon demons, some could teleport, ...) and it's amazing how relatively balanced they were. You could play WoW your own way -- most people focused on PvE or PvP, but you could just solo explore the world, grind many alt characters, hang out with guild mates, organize your own little events such as races through the continents or maybe do a bit of trolling by kiting world bosses to capital cities.
Some stats about the game (regarding official servers and the early years unless noted otherwise): Alliance had greater numbers, reaching approximately 58% of all players; most people played as human (23%), night elf (23%) and undead (15%), the least favorite was orc and troll (each 7%). The subscriber count peaked at 12 million in 2010 (coincidence?). At launch there were 120 GMs on the American servers. The game was completely translated to 6 languages.
{ For me the peak of Warcraft was Warcraft III:TFT, it was perfect in every way (except for being proprietary and bloated of course). As a great fan of Warcraft III, seeing WoW in screenshots my fantasy made it the best game possible to be created. When I actually got to playing it it was really good -- some of my best memories come from that time -- nevertheless I also remember being disappointed in many ways. Especially with limitation of freedom (soulbound items, forced grinding, effective linearity of leveling, GMs preventing hacking the game in fun ways etc.) and here and there a lack of polish (there were literally visible unfinished parts of the map, also visual transitions between zones too fast and ugly and the overall world design felt kind of bad), laziness and repetitiveness of the design. I knew how the game could be fixed, however I also knew it would never be fixed as it was in hands of a corporation that had other plans with it. That was the time I slowly started to see things not being ideal and the possibility of a great thing going to shit. ~drummyfish }
UNDER HEAVY CONSTRUCTION
{ Not sure if everything here is absolutely correct but I spent a good portion of my life (I mean like a week) scavenging the details from various sources (the WoW Diary, wowdev wiki, noclip.website source code, ...) and by observation (screenshots, noclip.website, ...), so I hope this can be "reasonably" credible. If you're someone who knows good trivia or you spot errors, let me know, thanks. ~drummyfish }
Here are some details on the technical/technological side of WoW, mostly applying to the game as seen on release or shortly after (by now large portions of the original code, data and server hardware may have been completely replaced). A lot of the info comes from a book called WoW Diary: A Journal of Computer Game Development (WD). There is also an official "making of" video series from some old DVD.
There exist a FOSS implementation of the WoW server called MaNGOS (now having some forks) that's used to make private servers. The client is of course proprietary and if you dare make a popular private server, Blizzard (or whatever it's called now, it's probably merged with Micro$oft or something now) will rape you. There also exist FOSS world editors (such as Noggit) and a bunch of other tool/libraries. The code for these tools and documentation (e.g. https://wowdev.wiki) can be a good source of additional technical details.
Minimum hardware requirements for vanilla WoW were an 800 MHz CPU, 256 MB RAM, 4 GB of hard drive space and 56k Internet connection.
The official development team (internally called Team 2) mostly counted around 40 to 70 people (but hundreds actually worked on it in one way or another). Custom engine was developed for WoW, it was written in C++^[WD] (after they tried to write it in Java and found the performance sucked ass lmao). Upon release the codebase boasted over 2 million lines of code^[WD], which by 2009 climbed up to something like 5.5 million (see also bloat). One of the game programmers, David Ray, was quoted (in WD) stating that only the game's in-house world editor had more lines of code than blueprints for a space shuttle that he also happened to work on, i.e. the game's project overshadowed even space missions. Of course WoW was a window$ (and Mac) game but off the record some insiders said there was GNU/Linux testing build, which they wouldn't officially release (probably cause it'd be hell to support with so many distros).
The game client's data, such as texture, sounds and 3D models, were stored in MPQ (Mike O'Brien Pack) files, the Blizzard's archive format they also used in other games like Diablo and Warcraft III. The format is complicated as fuck (can be compressed, encrypted, has different versions and files stored in it usually come in another Blizzard-unique format), so it won't be described here. All the MPQ files totaled a little over 5 GB for vanilla WoW. The game's content was created using a proprietary in-house editor called Wowedit which fans could get a rare glimpse of during various Blizzard presentations, so some screenshots of it circle around. Employees described it as extremely complex: it allowed everything from editing the physical world to designing quests, items, spells, monster spawns etc. The company also developed other tools, notably for example the GM tools (so called "god tool") -- GameMasters actually only rarely interacted with the player through the normal client, they instead used these special programs where they could see everything about the players as they chatted with him. Most stuff in the game was hand made, including all items, NPC spawns, individual caves etc. There weren't even any motion capture animations because they wouldn't go well with the unrealistic art style, so all was animated by hand (imagine the amount of work considering only one gender of one race had 120+ unique animations). Even though procedural generation was initially planned for things like dungeons, eventually only very little was done this way -- the few procedural things included for example clouds in the sky and small amounts of vegetation.
Graphics/rendering: the engine implicitly used DirectX but could also be switched to an OpenGL backend. According to WD right handed coordinate system was used in the engine. 3D models were created with the proprietary 3D Studio Max (initially buildings/interiors were made using Radiant, the editor for Quake-like shooters, but that didn't work out). Male character models had 615 vertices and 1160 triangles on average (the most and fewest vertices/triangles were used for undead with 804/1474 and gnome with 502/960). A single woman breast was made of 38 triangles (her face had nearly 100). Textures for the terrain and (even player) characters had resolution of 256x256 pixels -- there were only diffuse textures except for terrain that also had additional specular highlight textures. Portals were used for culling large portions of the 3D scene (which is why all the capital cities had "corner" entrances -- being able to see both outside and inside of the city would be too demanding on the GPUs; out of bounds you can notice the entire city flickering randomly based on camera angle).
World/terrain: on the biggest level the whole world was comprised of "maps" (a gigantic continuous space that typically accommodated one world continent), each extending 31211 meters (by game's units) in both width and height (so provided the big continents span only half of the map vertically, they're only something about 15 km tall). A map is split into 64x64 "blocks" (these allowed artists to collaboratively edit the world -- the system would only ever allow one man to be editing given block at a time), each further split into 16x16 chunks and each chunk would have 9x9 "corner" vertices forming 8x8 small square tiles in between (each tile having size of 1.9 by 1.9 meters, spanning exactly one texture) -- now each such tile has one additional "middle" vertex in the center, subdividing it into 4 triangles. Each vertex (corner or middle) holds a vertical offset value, i.e. the terrain's shape is defined by a heightmap, with the possibility of creating "holes" in the terrain so that caves and overhangs (proper 3D models) could be added. Additionally each chunk has a static prerendered shadow map (64x64 1 bit array, either lit or unlit). It seems like each chunk had a limit of 4 textures and these could be blended ("layered") with alpha transparency (resolution of this "blending" channel seems to be the same as that of the shadow map). Subsequent expansions also added vertex colors to allow further painting and tinting of terrain, but vanilla didn't have it (by careful observation you can see they kinda faked vertex painting by using the texture blending, for example in Blasted Lands a completely black texture was used for painting shades of gray on the terrain). In addition to the diffuse ground textures there were also specular maps (only for terrain textures though) that gave the ground a little prettier, more "realistic" look, but which wasn't as expensive as bump mapping for example. The game data also contained a low resolution version of the terrain heightmap that was used to draw the silhouettes of distant mountains (see also LOD). Water is a little complicated too: firstly there seems to be a traditional "sea level", mostly for the ocean around the continents, but then there can also exist other bodies of water -- these can be different types of water or even different liquids, placed at different heights and EVEN non-horizontal, such as a river flowing down the hill (the body of water could also have a direction of flow set). The uneven water surface is achieved by a heightmap specific to each non-sea body of water. The water geometry looks to be simpler than terrain geometry in that the "tiles" don't have the center vertex (so they're only composed of two triangles).
Physics was rather simple (compared to FPS games for example), players couldn't collide with each other and NPCs (which would put servers under immense computational stress and allow trolling by blocking building entrances etc.), however monsters in respect to other monsters had a "light" sort of "collision system" in the sense that their AI was programmed to make them maintain a distance from each other as if they had a volume. For collisions simplified meshes of the environment and players/NPCs were used. For example stairs were in fact just sloped plains and players were represented by a tall cuboid with "pointy bottom". The environment collision geometry was mostly static with a few exceptions such as lifts and zeppelins. In addition to the invisible collision geometry there was an invisible pathing geometry, looking like "interconnected tiles", used by NPCs to know where they could move.
The translation of languages to gibberish (for preventing enemy player from communicating) is done basically by replacing words with same length words from a predefined dictionary, so it's not possible to unambiguously translate the text back (since many original sentences will translate to the same gibberish sentence).
The user interface was open to customization and scripting via XML and Lua. This resulted in many fan created addons which at times completely overhauled the entire GUI (for some this was like "WoW ricing", some people could barely see the 3D game beyond all the onscreen windows).
Network: the game was tolerant of relatively shitty connection, a latency up to 200ms was bearable and bandwidth used was about 1 or 2 kB/s (even so the whole game allegedly constituted for half of the Internet's traffic before YouTube). Client-server communication is carried over a custom protocol over TCP (YES, TCP) on port 3724 (however things such as logins and later the voice communication use different ports/protocols). Looking at the source code of Mangos Zero, the protocol seems to have around 900 opcodes.
Hardware used for game servers was bought (not rented) and was one of the biggest expenses according to WD. The infrastructure was hosted by AT&T in 10 data centers around the world (Washington, Texas, Germany, France, China, ...). Every realm required 8 server blades and was designed to support around 2000 concurrent (i.e. simultaneously playing) players -- each blade had 2 CPUs, so 16 CPUs per realm (4 for users, 4 for one continent, 4 for the other and 4 for instanced dungeons). At launch there were 88 servers for the US, plus there were additionally European and Asian servers. In 2009 the servers allegedly used 1.3 petabytes of storage, 75000 CPU cores and 112 terabytes of RAM.
TODO: pathing, collisions, lights, ...
Powered by nothing. All content available under CC0 1.0 (public domain). Send comments and corrections to drummyfish at disroot dot org.