Time is valuable. The most valuable thing that we have in life is time. I just wasted time by reading this discussion (for my entertainment purposes).
Map protection does not exist. If you download Vexorian's Optimizer, he notes in it that map protection could exist, but it did not at the time of writing and his tool does not achieve it. All that we have are a lot of intentionally corrupted maps. It turns out, when you get better technology you can have people build off of the technology and make inventive new solutions to problems. Suppose we look forward 3-5 years. If the Warsmash project goes the way that I want it to, I would anticipate it might become a very trivial task to download the sourcecode for the Warsmash engine, and to add to the "In-Game ESC Menu" a second button. This button would be like "Save Game" but instead it would be "Save Game as Map". Then it would make a World Editor compatible map file based on the positions of the current units in the world and dump the currently active triggers to the Trigger Editor. We all know that the technical issues would make this slightly harder than I am describing, but the surprising reality is that it would not be
too much harder than what I am describing. I am at least able to imagine the "modding death star" repo that would contain support for loading and saving all Warcraft 3 formats as well as a playable reference implementation of the game, and in this repo I think that it would not be so difficult to add this menu option.
Another way to think about why map corruption is actually stupid would be if I added a new button to Retera Model Studio called Model Corrupter. Model corrupter would corrupt a model into a format that none of our modding tools knew how to preview or open. That way, "View in 3D" on the Hive would not work, and opening the model in MDLVis or Magos or Retera Model Studio or the MdlxConv or whatever would not work, but then the model would still work in the game. And you have to ask yourself, if map corruption should exist, then why are we not also pursuing this model corruption technique? If I discovered a new way to achieve this model corruption and publish an "MDX Optimizer" that can achieve this -- without publishing the source code for the "MDX Optimizer" so that only I know how it works -- would I be doing all of you a favor?
And what it seems to me is that stupid data corruption is not a favor. I believe that publishing the MDX Corrupter would not do anyone a favor. Whether I do or do not know how to achieve MDX Corruption, I do not feel interested in publishing an MDX Corrupter tool for everyone. And the reason is simple:
because it would be stupid and pointless.
What happens if I go to the models section right now and search through 1000 MDX files, find my favorite 15 models, download them all, "improve" them all by replacing their head with Archimonde's head, and then upload it to the Hive as a resource? Do you believe that
the models section has a deficiency because our technology allows me to do the Archimonde Head Defacing? Do you believe that we should invent a separate "corrupted model" format that nobody understands so that the proud, "skilled" MDX artists can make all their uploaded models be in the Corrupted Format so that our tools do not work on them, but only the game can view them?
I see the questions that I am asking as a form of satire because of how ridiculous the corrupted model format would seem to me to be. And yet,
in the eyes of the format inventors, .MDX is that protected format and .MAX is the unprotected version. And once you realize that truth you might have to ask yourself why this website has supported modifying "protected" (i.e. MDX binary) model files while simultaneously living the hypocrisy of not supporting modifying the "protected" map files. One might say the difference was who created the files --
and that we are all here to disrespect Blizzard so their invention of a separate, compiled "release" MDX binary model format in 2002 with no means to modify it is irrelevant. But I prefer to believe that I am not disrespecting Blizzard when I make the
Owl Moon Priestess by modifying the
compiled binary MDX models in the game whose authors did not have a technology to modify this format themselves.
Now, there are probably some RPG authors out there who loathe cheated save codes or something and are fuming about my technology-focused stance and my allegory between map files and model files. Maybe that is because they believe that map files are more complicated than model files and therefore deserve more respect. Yet, many Reforged model files are larger and contain more data than many old map files that did not use custom assets. I have many, many great memories playing "Real Life [for Morons]" with my family back in 2005 or so. Some versions of the map file that I have on my computer are roughly 3 MB in size. The Reforged Peasant MDX file, by contrast, is 3.9 MB in size. Yet again, the technology defies the human intuition in this case regarding which is "bigger". And if you decide to measure by
time taken to create the file rather than its size, I can make a similar counter argument because I know users like Direfury have told me stories of working on a single MDX model from scratch for many days, whereas I have made and enjoyed custom maps that were the work of only a few hours.
And this is sometimes incredibly frustrating to me because I have moments like the other night when I was rambling on to Kam about something I was passionate about in Warsmash, and then he fires back seeing me as a "technological person" and then asks me if I can make a "new map optimizer to replace Vexorian's." When I incredulously ask him what part of his map is going slow, he suggested that he simply wanted to revoke the possibility of other authors modifying the map. And so while for Warsmash you have me working to try to gather and publish all the knowledge I can scrape together from all of these sources on the Hive about how the game is built so that we can do modding even on the game itself, and meanwhile you have a literal former Reforged employee trying to ask me to focus instead on reducing the amount of modding we can do by achieving the imaginary and nontechnical task of making a map file unreadable while still being readable by the computer of anyone who tries to play it. It turns out, an unreadable-yet-readable map is actually a stupid imaginary paradox from the technology side of things. It depends on the idea that the users do not have any say over how their technology functions.
And it really is just that simple. There never was any map protection to begin with, so this entire topic is actually a trollish in-joke among friends. And like I said, I appreciate the entertainment, but I think that it is important to also understand how technology works. The reason I cannot do the Archimonde Head Defacing and re-upload the defaced models is that it is morally and ethically wrong to deface models and the people on the Hive would stop me (... I hope?). And it is the same premise with map files. Let us not preach ignorance any longer! And we can start to have consistent policies on how we handle these two types of user-generated content (maps and models).
If the map developer community wants a technology to be developed that can prevent the modification of map files, then that would be a wholly new frontier and a new topic that we could create. On that topic, we could take as an example how other large well-informed entities have solved similar problems in history. Consider the example of Android apps: each app is a bundle of assets and code (not unlike a Warcraft 3 map!) and the app is signed with a cryptographic signature that can only be produced by the map's author (because of the scientifically valid notion of "mathematically hard problems"). When a new developer wants to make a modified fork of the compiled Facebook Messenger app, he can unarchive the app and all of its contents (since his phone computer must know how to do this in order to execute the app's contents) so it is entirely possible to create a new Facebook Messenger Cheater app version where every message has a cow emoji appended to the end of the message when sent. However, at the time that the Facebook Messenger Cheater developer tries to rebundle his app as an archive and publish it, he has no technology to generate the cryptographic hash signature matching the original Facebook Messenger signature. So, if he gives his bundled application to a friend and tells them, "This is Facebook Messenger. It is a new version. Install it today!" his friend's app installation system will automatically determine that the cryptographic hash signatures do not match and install Facebook Messenger Cheater as a second, new independent app because it is cryptographically/mathematically self-evident that it is not from the original author.
Furthermore, this technology of cryptographic signatures exists and is supported by the Warcraft III game and has been since 2002.
Drops the mic.
I challenge you to make a new Warcraft III map with the "BLIZ" blue logo sign on the map. You will find that unlike "map deprotector" nonsense programs made by ignorant people lying to other ignorant people, it is cryptographically/mathematically impossible for you to stamp a map with the same known BLIZ signature and so you cannot make a "BLIZ" blue logo sign on your map, since it is technologically and mathematically impossible for you to do. That is, has been, and will be the only form of map protection until a substantially new technology is invented.
PS: I have not actually studied the BLIZ logo in any great detail, but that example highlights to me how the solution to this "problem" -- if it is indeed seen as a problem -- is 100% to use advanced mathematically proven cryptography to prove authorship and identity and is 0% to preach ignorance to people. My knowledge of cryptography is limited when we go beyond the basics, and yet I understand the
fact that it clearly exists. So even from my basic understanding I
cannot imagine solving this problem in any other way for the long term in good faith.
PS 2: However, given all of the above stated thoughts, I would not be opposed to adding a means for Retera Model Studio to
sign any MDX model file based on a private key file kept only by the model author, so that models manipulated by other authors could be easily detected as such. It would be an interesting toy example. We could open a legitimate technological discussion about that.
PS 3: If anyone ever asks for a map protector, link them to this tool (but it requires publishing to your users a modified Game.DLL that includes your RSA public key so that the game can identify the maps cryptographically signed by you):
shawwwn/MapSigningTool
PS 4: My quotation marks on things Kam said are all paraphrased based on the idea of what I remember him saying and are not remotely exact quotes.