Map protection
From Wikipedia, the free encyclopedia
Map protection is a process by which custom StarCraft and Warcraft III maps can be rendered unopenable by official campaign editor included with the game (StarEdit and the Warcraft III World Editor, respectively).
Contents |
[edit] Overview
Whereas with computer software and media there is DRM, map protection is an attempt by the author of Warcraft 3 maps to protect his interests. These interests usually fall into credit or praise for one's work, but may extend into preventing private releases from being played by the public, preventing cheating, or making a map crash the game if it is saved by the editor, effectively making it read-only.
Unlike DRM, however, there is no legal precedent for a map author taking legal action against those who edit his or her work. It is a strictly community-enforced policy to respect the author's wishes on this matter. Additionally, being that Blizzard never explicitly programmed support for map protection into the game, all attempts at map protection are invariably attempts at exploiting how the map editor and game program behave when encountering unexpected conditions. This makes all attempts at map protection especially limited in scope, in comparison to software protection for example.
Additionally, should the author abandon his work, or respond slowly to a game update that breaks his map, the fanbase of that map must play it as-is, in its broken or unfinished state. The exception being if a player decides to unprotect the map, although like piracy, there is often mixed, or negative reaction to this.
[edit] Protection methods in Warcraft III
Warcraft III maps are saved in the Mo'PaQ format, which means that every map is effectively a set of other files identified by a path. Many of the files included in a map are for the campaign editor's convenience only. The basis of most map protectors is mutilating or removing the unnecessary files.
[edit] Map script and convenience files
All maps include a file named war3map.j. It is known as the map script file. It is used exclusively by the game to specify the map's camera positions, map regions, sounds, music, and custom triggers. However, due to the nature of scripting languages (such as the one used by war3map.j, Jass), it's difficult to get the important data out of a script and into a suitable format for humans to edit. Because of that, the World Editor adds several convenience files in a simple format to avoid doing it the hard way. These files are war3map.w3c, war3map.w3r, war3map.w3s, war3map.wtg and war3map.wct.
If one or more of these files (especially the ones corresponding to custom triggers) is damaged or removed, the World Editor will either refuse to open the map or open the map with the appropriate data missing. This is a common protection method.
This can be broken by creating a utility that will read the map script and re-create the convenience files. This is possible, although difficult, and may not restore the data exactly as it was before protection (comments entered into the editor may be missing, for example). Common protection is usually that people will import a blank war3map.wtg file to overwrite the map's one, causing the map to be unopenable in the editor
[edit] Map script obfuscation
The map script file is easy, as files go, to read in a text editor such as Windows Notepad. The World Editor strives to make it as close to human-readable as possible when the map is saved. This means that if a user knows Jass, they can open the map script file and discover any secrets or easter eggs that may have been hidden via other protection methods.
Obfuscation is the process of changing a script file so it is harder for a human to read but identical from an interpreter's perspective. However, some obfuscation methods are incompatible with some maps. Obfuscation is commonly used in conjunction with removing the editor's convenience files.
[edit] Map script hiding
Due to the specifics of the Mo'PaQ format used by Warcraft III to store maps, to open a file included in a map you must know the path of the file you want. A similar protection method to map script obfuscation is changing the path of the war3map.j file to Scripts\war3map.j. This path is not known by some MPQ editors, which makes the map script effectively unopenable unless the user knows of this protection method. The game knows of this path, however, and will be able to load the map script normally.
[edit] Corruption when saved
An alternate method of map protection allows the map to be opened normally in the World Editor, but will corrupt the map when it is saved, making it difficult to alter and re-distribute the map, but lets the map be inspected and used for learning purposes. There are many ways of accomplishing this.
[edit] External links
[edit] Documentation
- War3 File Download Area--A website that hosts various Warcraft-related files, as well as information on map protection.
- Warcraft III Map Unprotection--A website hosting information on the various methods of protection and how to remove them.