Joel already explained the difference between the current system and the one you want, but I guess you didn’t understand.
The current system uses a hash of the module name plus the module version number to generate a filename that is guaranteed to be unique and valid for all file systems: it contains no characters that are illegal for any known file system, and is a fixed length, and therefore, will not go beyond the file system’s path length limitations (unless the tile cache is buried too deep in the file structure, in which case VASSAL modules won’t work at all).
On the other hand, module names can be practically any characters at all. You could name a module “*($&#^)(:JNGFHTIHJ:LK$%#@()” and VASSAL probably wouldn’t complain, but good luck creating a file by that name in any existing file system! Joel already gave a more realistic example: 13 Days: The Cuban Missile Crisis
. This contains a colon, which cannot be part of a filename on any Windows system.
Yes, we could filter out all illegal/reserved/restricted characters, but you still have the issue of filename length. What is someone gives a module a ridiculously long name? Now, suddenly, you have a filename that may work on some systems (those where the tile cache is very shallow, such as C:\VTC
(for VASSAL Tile Cache–I’m assuming the existence of an option to allow you to specify the exact path to the Tile Cache), but fails utterly on systems where the path to the tile cache is deeper, such as C:\Users\ridiculously long user name\Application Data\VASSAL\tile cache
). How should we account for that?
About the only possibility then would be to arbitrarily cut the filename short, say at 20 characters. Now, what happens if you have 2 related modules with very long names, where the only difference is at the end, say, for example, Battles of the Napoleonic Wars: Waterloo: Day 1
and Battles of the Napoleonic Wars: Waterloo: Day 2
? If you cut that off anywhere, the 2 names are now identical. How now are you going to differentiate the tile caches for these 2 modules?
In conclusion, the hash system is simple to program and has no exceptions to have to deal with; directly using the module names is fraught with possible problems that would need to be accounted for.
I thank you for donating to VASSAL, but donating is entirely voluntary and in no way gives you any more say in how VASSAL is developed than any other person.