Strilanc
Veteran Scripter
- Reaction score
- 42
This is a post about how I believe blizzard will protect their maps. Everything I describe is do-able, and effective. I don't think there's anything else they could do. It's all speculation, but it's really the only reasonable thing they can do. I will laugh very hard if they have a "please don't open this map" checkbox.
Normally maps include the information necessary to open it in the editor, as well as the information necessary to play it in the game. Obviously these overlap somewhat. The fundamental reason you can't perfectly protect a map is because it must be readable by the game. If I get truly desperate I can simply read the information out of memory when the game opens it.
Protectors generally screw with the MPQ file in non-standard ways, and remove editor-only information. The downside is if you lose the unprotected version, you're screwed.
Here is what I believe Blizzard will do:
When you blizzard-protect a map, all the editor-only information is encrypted with a password. The map script will be encrypted but a non-encrypted version will be converted to byte code or otherwise optimized, readable by the game but useless for development. [The default editor will also voluntarily not open these files at all unless you give the correct password, but that doesn't really count, now does it?].
Notes:
- Object data and terrain will not be protected from anyone using an MPQ editor. It simply can't be done, unless there's a one-way transformation (like compiling) on terrain or object data that leaves it readable to the game.
- Trigger data will be relatively well protected. People may be able to add new triggers into already-compiled byte code, but retrieving and modifying existing triggers would be extremely difficult. Decompilation is next to impossible to automate.
- There will be no distinction between a protected or unprotected map, because only the developer will know the password to decrypt the editor-only files.
- Someone should totally do this for wc3. Just store the encrypted war3map.j as war3map.j2 or something.
Merry Christmas
Normally maps include the information necessary to open it in the editor, as well as the information necessary to play it in the game. Obviously these overlap somewhat. The fundamental reason you can't perfectly protect a map is because it must be readable by the game. If I get truly desperate I can simply read the information out of memory when the game opens it.
Protectors generally screw with the MPQ file in non-standard ways, and remove editor-only information. The downside is if you lose the unprotected version, you're screwed.
Here is what I believe Blizzard will do:
When you blizzard-protect a map, all the editor-only information is encrypted with a password. The map script will be encrypted but a non-encrypted version will be converted to byte code or otherwise optimized, readable by the game but useless for development. [The default editor will also voluntarily not open these files at all unless you give the correct password, but that doesn't really count, now does it?].
Notes:
- Object data and terrain will not be protected from anyone using an MPQ editor. It simply can't be done, unless there's a one-way transformation (like compiling) on terrain or object data that leaves it readable to the game.
- Trigger data will be relatively well protected. People may be able to add new triggers into already-compiled byte code, but retrieving and modifying existing triggers would be extremely difficult. Decompilation is next to impossible to automate.
- There will be no distinction between a protected or unprotected map, because only the developer will know the password to decrypt the editor-only files.
- Someone should totally do this for wc3. Just store the encrypted war3map.j as war3map.j2 or something.
Merry Christmas