When you upload a custom map of any type you can see its size on the Steam workshop page. This is less than the file size for map and textures that is shown by windows. For example on my map the map file is 14,993 kb while the textures are 2.65 mb (transparent png’s take a stupid amount of space ) .
It is a detailed map, but I confess I am not entirely sure why the map file is so large. Size wise the file is large for mini golf, but not compared to other games, such as ball race or some of the highly detailed SDNL maps.
While the total shown on Steam is 15.352mb, which is quite a bit less than the 17.3(ish) mb the files take up, it is still a sizeable file set. I suspect that it causes folk with a slow internet issues when they come to join a game for the 1st time. I also suspect that they give up if the map does not load quickly enough as a result.
However running 7 zip over the map file compresses it to 394kb, though the textures hardly reduce at all to 2.62 mb.
So question and suggestion. Do you run any compression over the map files and if not would it be possible to implement?
I’ve talked about doing it a few times but we’ve often been focused on other more important things, but I’d like us to get around to it at some point cause yeah the compression ratios are insane.
Thanks for this. I’m not sure knowing the format will help much though. The issue appears to be that the map files are large, but also, maybe, they are downloaded from the host’s pc?
I’m not sure about this, but I hosted a few custom maps today and even those with small map files failed to load for other players.
Also I had one player join who had downloaded my mini golf map (so subcribed to it on the workshop) yet still had serious delays as the map loaded.
Are maps always download from the host’s PC, even if someone has subscribed to them on the Steam workshop?
It would explain a lot as I only have a 0.9 Mb/s (mega bit per second) upload speed, but 15 Mb/s download.
Yes, this download process is because you are the host of the server.
This is because the condo files repeat TONS of data for every single object placed. From my understanding, when you compress the saves, all the repeated data is basically consolidated so that there are no longer any repeats.
Edit: Even without the ‘consolidation’ of repeated data, just removing the unused data from the files gives a huge decrease in file size while still being easily loadable.
Many thanks for this info. I’m now hedging this behaviour as a bug, or at least very unwanted feature. If a player has subscribed to a map why would the game download it from the host, unless its a different version? Unlikely as Steam updates workshop items very quickly. Many folk still run over copper and have awful upload speeds. I know I do. If you have 3 players trying to run a map then that awful speed will become impossible - ok more impossible- as the sever is now splitting its slow upload over multiple clients.
The post by Physics sounds like they have been looking at the issue, but my Steam general forum only goes back to March 2024 for some reason and searching for their post is failing. Is there any way for you to link the full thread?
The message is located on the Community Tooling Discord, right here. Additionally, the fruits of their labor are already available on the main branch of PyTower. Once downloaded with the recommended instructions, just run the command pytower compress CondoData inside one of your condo directories!
Edit: Its worth noting that the discussion in the Tooling Discord was sparked by your original post here.
Many thanks for the links, I didn’t know that the Community Tooling Discord existed. While I found the discussion very interesting - I’m always impressed by the skills of modders - I feel that the issue probably needs to be solved by PixelTail. Sadly any external solution could break unexpectedly following an update.
That said I did throw my map file into notepad++ expecting it to be pure binary, with maybe some text for the various named items, and was rather surprised at the result.
Anyway I can now see why it compresses so readily, though I am still unsure as to why the game is uploading the map from the host’s server if a player has already subscribe to it. Hopefully the devs will be able to implement a compression system, and change this behaviour. Currently hosting a large map, of any type, means you’ll probably be playing on your own.