Since my map has a quite complex Top20 ranking system in place (with 8 values for each record) and needs to store a lot of data, I've been strugglig with savefiles since May. I'm baffled at how everyone is criticizing the low size limit for maps themselves but there aren't many topics (if any) about how retardedly small Banks are!
At first it was 80 keys max, then it became 50, then we found out that Banks couldn't exceed 4 Kb in beta phase 2. Please note I'm using efficient compression algorhytms to save dozens of integers and string values on a single key already. Well, with yesterday I had to reset all players' stats four times now because the map refused to load as soon as too many (6+) tried to load their own in lobbies.
Brace for the lastest discovery, which seems to be that the combined amount of .sc2banks loaded cannot exceed 8 Kb or something close.
I can load a 7Kb Bank just fine, I can't load two 4.5Kb Banks.
5 players can load 1.6Kb Banks, 6 can NOT.
Really. Come on. 8 Kb?!
Assuming you created a 10-players-max custom and don't want your players to crash if everyone has played it at least once, well, good luck trying to store everything in 800 BYTES.
Nonsense. If anyone came up with different results, please tell because I'm pretty sure I had 3.5Kb Banks in beta phase 2 and everything was good even with 6 "veterans" in lobbies. Now, that would just crash :|
Sorry to disappoint you, but that has been discovered months ago during beta already. We just weren't absolutely sure whether it has been changed post-release or not. It seems it stood that way. I'm just a bit buffled that it seems you managed to load over 18 kb in beta.
Well, but honestly 800 bytes isn't soo little. That's 800 characters. Now we probably have to deduct the XML syntax and stuff (or other factors, it's not too sure yet) and let's say we're down to 400 characters.
That's a 400-character long string. When I looked at Warcraft 3 where save codes of more than 20 characters were a pain in the ass already I'm pretty happy with what I got now :)
What I really don't like is the fact that the game crashes if the banks are too large. That's insecure, prone to errors and the initiator probably wouldn't even know it was his fault.
well, I'm quite positive my beta phase 2 games loaded even 6 / 7 x 3.4Kb saves without crashing :|
Also, weird thing is Nagrand was featured on EU for a whole week and I haven't seen a single crash with the previous savefile structure (which took around 1.7 Kb) even in full premade games with 10 .sc2banks to load. I only applied minor changes since then, like moving strings around and merging them within very reasonable limits, and it doesn't load anymore after porting it to NA.
Anyway, 800 bytes aren't really enough if you are saving detailed player stats or trying to implement a shared top scores feature, even if you compress everything into a single huge string (which you can't do actually, since maps can only read up to 6xx characters from a single string and the rest is ignored).
Anyway, 800 bytes aren't really enough if you are saving detailed player stats or trying to implement a shared top scores feature, even if you compress everything into a single huge string (which you can't do actually, since maps can only read up to 6xx characters from a single string and the rest is ignored).
This nonsense is absolutely gamebreaking.
Well, who told you you could use it to record detailed player stats? It's not really gamebreaking. It's just something you can't do with SC2. And there's plenty of it.
Not having a shared top score feature won't destroy your map.
Not that I'm happy with the limitation, but we need to use what we have. And we need to use it to the greatest extend.
Well, who told you you could use it to record detailed player stats? It's not really gamebreaking. It's just something you can't do with SC2. And there's plenty of it. Not having a shared top score feature won't destroy your map. Not that I'm happy with the limitation, but we need to use what we have. And we need to use it to the greatest extend.
So we can basically do anything with Galaxy Editor, but we can't save detailed stats (think of RPGs with multiple characters saved) or implement some sort of intelligent shared "database" spread by players across the map?
This sounds like a major design flaw to me, unless Blizzard only thought of turret defenses and DotA clones as custom maps. This is way more restricting than the 10mb limit (which will be raised soon anyway imho)
I haven't encountered this at all, infact I've made a custom map on B.net that will populate several (5) 737KB banks for 5 players. You can find it, it's called TestMapBanks.
If someone has an example of an unlocked map exhibiting this behavior it would probably be helpful in finding a solution.
You're welcome to go through the map and see what you can find, but in no way have I been limited to 4 or 8 KB.
I dont even need to check. What your saying is not possible. simple as that, check your code, your banks are not being loaded if you think its working.
Granted in the map I'm not trying to preload one bank for two players.
I'm simply trying to root out this issue and get some extra information because a workaround seems possible obviously since I seem to not be having the issue. And if you check the screenshot there you can see this is out of my Accounts folder so it has to be through bnet.
I'm not doubting that there is some kind of issue here at all.
-___- then whas your point of posting? dosnt matter if you can make a 20 gig bank, if you cant load it. you wouldn't be able to load even one of those banks, thats the point. There is no " workaround" this is a built in limitation.
Right but you can preload it per player is what I'm saying. You just can't load it for the same two players right now. If you would actually look at the map you can see I preload all 5 of the banks before use and it loads just fine. But if you switch player two's first preload bank from 21 to 11 you'll hang till you get dropped since player one is already preloading bank 11.
So the problem is not that there is a bank limitation but that the same bank can't be preloaded for multiple people?
If that's the case you don't need to preload the bank at all, just open it and start setting Variable values from each of the players.
Let's say you have a character Bank. Just "Open" character banks for all players and set the proper variables. Don't preload them. Preloading won't help at all in that instance. Opening a bank will check to see if the bank exists or open one for writing.
Bank-Preloadandsynchronizebank"test"forplayer1Bank-Openbank"test"forplayer1Bank-Storestring"fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl as "w" of section "e" in bank (Last opened bank)Bank-Storestring"fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl as "w" of section "a" in bank (Last opened bank)Bank-Storestring"fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl as "w" of section "g" in bank (Last opened bank)Bank-Storestring"fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl as "w" of section "s" in bank (Last opened bank)Bank-Storestring"fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl as "w" of section "f" in bank (Last opened bank)Bank-Savebank(Lastopenedbank)
Single player, 1 bank, just over the max size, game will not load.
ps: I dont mean to sound so...blunt hehe, so sorry im coming off that way, just the topic of banks leaves a bad taste in my mouth.
That's what I'm using to populate and write the strings. It seems to be all good for me.
Then on map initialization I preload all the banks for the players.
This is not a pissing contest, I'm trying to find out the issue, if you would have a look at the map and let me know what's so different I would love to try and help.
It seems that constructing the strings using variables works alright, if you try and explicitly call them then it screws up.
I reconstructed your code and it hung till I was dropped, I then piped it through a variable before storing it and it seems fine.
The map is called 2ndTestBank.sc2map it's public right now.
This is the trigger:
Map Initialization
Bank - Open Bank "Popstain" for player 1
Bank - Preload and synchronize bank "Popstain" for player 1
Bank - Store String Untitled Variable 001 as "w" of section "e" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "a" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "s" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "g" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "x" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "p" in bank (Last opened bank)
Bank - Save bank (Last opened bank)
Variable Value = fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl
make the string larger (surpassing 3kb to 8k) and it crashes.
As I edited my post, I really dont mean to sound so harsh, its just the fact that I already |Know| you cant get past the limit, We had people working on it for full days, counting every byte, string, character they put in them, loaded different ways... ect the fact is, this is a built in limitation right now.. thats what im trying to say, we as a community |know| there is nothing we can do right now. its just a waiting game till blizzard fixes this. [and gets me grumpy]
@Molsterr:
Yea I'm just trying to root out what kind of problem it is, if it's a general size issue or the way the data is saving. I think I have enough info. Thanks Molsterr!
Try not preloading the bank. :) See if that helps out. You should still be able to call the data out of the bank for each player without needing to preload.
Oh trust me I have.. and just for the heck of it, I did i once more [just now] (sense they updated map size). removing preloading just makes the map crash latter in the load bar (when it starts to read normal triggers)
Awesome! I was able to repro the issue. Thanks Molsterr! It looks like this only happens over b.net so testing the map seems to work okay, but not having something like this over b.net is just terrible.
Since my map has a quite complex Top20 ranking system in place (with 8 values for each record) and needs to store a lot of data, I've been strugglig with savefiles since May. I'm baffled at how everyone is criticizing the low size limit for maps themselves but there aren't many topics (if any) about how retardedly small Banks are!
At first it was 80 keys max, then it became 50, then we found out that Banks couldn't exceed 4 Kb in beta phase 2. Please note I'm using efficient compression algorhytms to save dozens of integers and string values on a single key already. Well, with yesterday I had to reset all players' stats four times now because the map refused to load as soon as too many (6+) tried to load their own in lobbies.
Brace for the lastest discovery, which seems to be that
the combined amount of .sc2banks loaded cannot exceed 8 Kb or something close.
I can load a 7Kb Bank just fine, I can't load two 4.5Kb Banks.
5 players can load 1.6Kb Banks, 6 can NOT.
Really. Come on. 8 Kb?!
Assuming you created a 10-players-max custom and don't want your players to crash if everyone has played it at least once, well, good luck trying to store everything in 800 BYTES.
Nonsense. If anyone came up with different results, please tell because I'm pretty sure I had 3.5Kb Banks in beta phase 2 and everything was good even with 6 "veterans" in lobbies. Now, that would just crash :|
@WhiskeeGX: Go
Sorry to disappoint you, but that has been discovered months ago during beta already. We just weren't absolutely sure whether it has been changed post-release or not. It seems it stood that way. I'm just a bit buffled that it seems you managed to load over 18 kb in beta.
Well, but honestly 800 bytes isn't soo little. That's 800 characters. Now we probably have to deduct the XML syntax and stuff (or other factors, it's not too sure yet) and let's say we're down to 400 characters. That's a 400-character long string. When I looked at Warcraft 3 where save codes of more than 20 characters were a pain in the ass already I'm pretty happy with what I got now :)
What I really don't like is the fact that the game crashes if the banks are too large. That's insecure, prone to errors and the initiator probably wouldn't even know it was his fault.
well, I'm quite positive my beta phase 2 games loaded even 6 / 7 x 3.4Kb saves without crashing :|
Also, weird thing is Nagrand was featured on EU for a whole week and I haven't seen a single crash with the previous savefile structure (which took around 1.7 Kb) even in full premade games with 10 .sc2banks to load. I only applied minor changes since then, like moving strings around and merging them within very reasonable limits, and it doesn't load anymore after porting it to NA.
Anyway, 800 bytes aren't really enough if you are saving detailed player stats or trying to implement a shared top scores feature, even if you compress everything into a single huge string (which you can't do actually, since maps can only read up to 6xx characters from a single string and the rest is ignored).
This nonsense is absolutely gamebreaking.
800 characters aren´t enough
<?xml version="1.0" encoding="utf-8"?> <Bank version="1"> <Section name="Slots"> <Key name="Slot6"> <Value flag="0"/> </Key> <Key name="Slot5"> <Value flag="0"/> </Key> <Key name="Slot3"> <Value flag="0"/> </Key> <Key name="Slot2"> <Value flag="0"/> </Key> <Key name="Slot4"> <Value flag="0"/> </Key> <Key name="Slot1"> <Value flag="0"/> </Key> </Section> </Bank>
size: 563 bytes !!! with 6 true/false entries
Same bank with 6 boolean values. Just 183 bytes.
Well, who told you you could use it to record detailed player stats? It's not really gamebreaking. It's just something you can't do with SC2. And there's plenty of it. Not having a shared top score feature won't destroy your map. Not that I'm happy with the limitation, but we need to use what we have. And we need to use it to the greatest extend.
So we can basically do anything with Galaxy Editor, but we can't save detailed stats (think of RPGs with multiple characters saved) or implement some sort of intelligent shared "database" spread by players across the map?
This sounds like a major design flaw to me, unless Blizzard only thought of turret defenses and DotA clones as custom maps. This is way more restricting than the 10mb limit (which will be raised soon anyway imho)
@WhiskeeGX: Go
I haven't encountered this at all, infact I've made a custom map on B.net that will populate several (5) 737KB banks for 5 players. You can find it, it's called TestMapBanks.
If someone has an example of an unlocked map exhibiting this behavior it would probably be helpful in finding a solution.
You're welcome to go through the map and see what you can find, but in no way have I been limited to 4 or 8 KB.
@Mehoron:
I dont even need to check. What your saying is not possible. simple as that, check your code, your banks are not being loaded if you think its working.
@Molsterr: Go
What say you?
Granted in the map I'm not trying to preload one bank for two players.
I'm simply trying to root out this issue and get some extra information because a workaround seems possible obviously since I seem to not be having the issue. And if you check the screenshot there you can see this is out of my Accounts folder so it has to be through bnet.
I'm not doubting that there is some kind of issue here at all.
@Mehoron:
-___- then whas your point of posting? dosnt matter if you can make a 20 gig bank, if you cant load it. you wouldn't be able to load even one of those banks, thats the point. There is no " workaround" this is a built in limitation.
@Molsterr: Go
Right but you can preload it per player is what I'm saying. You just can't load it for the same two players right now. If you would actually look at the map you can see I preload all 5 of the banks before use and it loads just fine. But if you switch player two's first preload bank from 21 to 11 you'll hang till you get dropped since player one is already preloading bank 11.
So the problem is not that there is a bank limitation but that the same bank can't be preloaded for multiple people?
If that's the case you don't need to preload the bank at all, just open it and start setting Variable values from each of the players.
Let's say you have a character Bank. Just "Open" character banks for all players and set the proper variables. Don't preload them. Preloading won't help at all in that instance. Opening a bank will check to see if the bank exists or open one for writing.
@Mehoron: Go
Your code is flawed then
Single player, 1 bank, just over the max size, game will not load.
ps: I dont mean to sound so...blunt hehe, so sorry im coming off that way, just the topic of banks leaves a bad taste in my mouth.
Wow you're really not going to look at the map are you? Fine.
That's what I'm using to populate and write the strings. It seems to be all good for me.
Then on map initialization I preload all the banks for the players.
This is not a pissing contest, I'm trying to find out the issue, if you would have a look at the map and let me know what's so different I would love to try and help.
Bank - Open Bank "Popstain" for player 1
Bank - Preload and synchronize bank "Popstain" for player 1
Bank - Store String Untitled Variable 001 as "w" of section "e" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "a" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "s" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "g" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "x" in bank (Last opened bank)
Bank - Store String Untitled Variable 001 as "w" of section "p" in bank (Last opened bank)
Bank - Save bank (Last opened bank)
Variable Value = fdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdklfsdklffdfksabfjksdklfjsdkl
Bank Size = 3KB
@Mehoron: Go
make the string larger (surpassing 3kb to 8k) and it crashes. As I edited my post, I really dont mean to sound so harsh, its just the fact that I already |Know| you cant get past the limit, We had people working on it for full days, counting every byte, string, character they put in them, loaded different ways... ect the fact is, this is a built in limitation right now.. thats what im trying to say, we as a community |know| there is nothing we can do right now. its just a waiting game till blizzard fixes this. [and gets me grumpy]
@Mehoron:
Oh trust me I have.. and just for the heck of it, I did i once more [just now] (sense they updated map size). removing preloading just makes the map crash latter in the load bar (when it starts to read normal triggers)
Awesome! I was able to repro the issue. Thanks Molsterr! It looks like this only happens over b.net so testing the map seems to work okay, but not having something like this over b.net is just terrible.
Hopefully blizz fixes it soon.
All this, and you were testing locally? :P
@WhiskeeGX: Go
I was thinking the same thing..... lol, but they did say somewhere they tried with two people? duno