It might be too laggy to constantly reload the bank file with so many players, as the bank load time seemed to go up when I had more than just me in a game (I even got network timeouts, but that was when I was loading a decently large bank file). Though since it can basically emulate network play (even while offline), you could always just run the map as single player so that bank reloading is near instant and you don't get b.net delay, making multiplayer wasd maps actually possible.
I just wonder if blizzard would be ok with a program writing to and reading from the bank files with a 3rd party program.
I updated the programs a bit - shouldn't be causing any lag anymore. I know the sc2map is gonna be getting errors because of the way I set it up. I was testing latency on it earlier and it seems that there is a very brief delay in Reload Bank function (Maybe 10ms or so).
I'm working on cross-game chat right now so that you can join a "Server" in-game for chat. Then you can chat with anyone in any game in real-time with roughly 40ms delay (10x2 +20ms from my server). And of course the delay varies from person to person, but that's in everything.
After cross-game chat is done, I'll be relaying a single unit's position as we'll and see how well the game handles two parameters being passed constantly, instead of 1. Though I don't see a problem with it at all.
It might be too laggy to constantly reload the bank file with so many players, as the bank load time seemed to go up when I had more than just me in a game (I even got network timeouts, but that was when I was loading a decently large bank file). Though since it can basically emulate network play (even while offline), you could always just run the map as single player so that bank reloading is near instant and you don't get b.net delay, making multiplayer wasd maps actually possible.
I just wonder if blizzard would be ok with a program writing to and reading from the bank files with a 3rd party program.
Battle.Net delay has been fixed with the big patch that brought all the HOTS content.
Battle.Net delay has been fixed with the big patch that brought all the HOTS content.
Really? They fixed the sync? Gotta check on it.
Also we should probably run this by our local Blizzard resident on the Mapster IRC Channel before we mess around with it. He can hand it up to his boss and they can give you a straight answer, I'd say. Better we check on it now before you invest huge amounts of time and people get banhammered.
Through banks and an external program in the background - you can emulate WASD with 0 delay, even in multiplayer, because the commands would be picked up locally by the program (instant response) and sent to the game bank (instant) and then read by the game (instant).
EDIT: You actually might see 10ms delay or so, but that's nothing.
One more thing we should keep in mind is that this program will only get downloaded and used (after we can get Blizz approval) if there is a good use. It should probably have a more social aspect to it as well, so it has more uses than just the custom maps. There has to be a long-term value to it for people to bother (see Steam, Origin and UPlay).
And it would need a decent amount of maps to use it.
Also what would happen if people played it without the program by just downloading the map on Battle.net? What kind of problems could arise from that is a thing to keep in mind.
Overall this might be a really cool thing for SCU though. I bet they could make good use of it.
Only one person would need it per-game basis, but depending on how a map maker depended on this program would affect the overall outcome.
For example, you could have a master trigger that would check if anyone has the program running or not and that would decide from thereon how the map runs.
Example 1: Hero Arena has 3 servers you can choose from and a game list lobby when you run the game if someone has the program running. If no one has it, it won't even ask for a server to join and will instead just play the map normally bypassing the multi-game integration stuff.
One more thing that came up in my head just now: How much will this be secured from shenanigans by malicious intent? I mean we managed to produce instagib maps back in WC3 that overloaded PCs easily. SC2 can do the same funny enough. So how do you intend to circumvent that?
This is probably also something Blizz would want to know, aside from the obvious checking if this impacts BNet security (I doubt it, but those are concerns for such a big company).
It's not the first time the map making community uses 3rd party tools. Reinvent the Craft back in WC3 allowed WASD + Mouse stuff already. And DotA had it's Blacklist and Hosting Bots. But that was a different time.
I'm not sure of the possible exploits at the moment other than on my side which I protected from sql injection.
It depends on what is allowed to be dynamic by the mapper himself. For examples, sending strings back and forth does not seem to have any exploits (not to my knowledge) at the moment. Sending unit movements does not seem exploitable to me either, since I will be encrypting/decrypting it back and forth, The only possible thing I can see is that if a mapper allows code injection (to create triggers on the fly - another system I made a while back) and somehow the actual player takes advantage of it someway??
@Enexy: Go
Well a example is that you can create infinite teleportation of unit spawns between 2 zones, if done right, it will utterly break SC2 and any weaker PC. There is other things as well, but that one even a complete idiot can do.
So if someone made use of code injection in that way, he could ruin the games of anyone subbed to that map if there is a hole you overlooked. In case of a really popular map this could be thousands of people at once. And guess who gets the complaints? Not you at first ;)
Obviously code injection would be one of the most needed features if you really want to make dynamic content. Otherwise you might as well run a random trigger that picks from 100 dynamic events already set up.
This is just one of the concerns I'd have as a Dev with a fan-program. If you wanna try and run this by Blizzard for approval, you should make sure you have all your bases covered for questions like this.
I hope you get a stamp of approval though, which is why I brought this stuff up. This could be really good stuff if it's not eaten alive by a cease and desist answer. But for the love of god don't post it on the official forums as a question, go through our Blizzard contact for this.
There is a lot of very stupid idiots out there that would love to ruin the day of a lot of people at once and your program might be an angle of approach for them if it gets popular.
Well, Ive been playing a selfmade TPS that doesnt exactly go easy on the computer with a bunch of different people now in the last days and not once have I noticed any sort of delay that was previously there (and I should have, seeing how I played the map occasionally back to back from the editor and then on the battle.net, so the delay, if there is any, is very close to zero). However, that map was always optimized for beeing lag and delay free and had minimal delay and lag even before the patch, so the fix might not be as extreme as I might think, even though im pretty sure there has been a fix.
@Crainy: Go
We just tried it and the delay still is there. It's as little as it has always been after they halved the sync timer.
But the sync timer exists for their normal matchmaking, so I really doubt that it is gone.
It's the same delay we had months ago for our mod and the only way to get rid of it would be if the sync was disabled and it could be done locally.
Do you use any different solution from trigger button press reading? Like abilities or something (Bounty liked to do that).
Through banks and an external program in the background - you can emulate WASD with 0 delay, even in multiplayer, because the commands would be picked up locally by the program (instant response) and sent to the game bank (instant) and then read by the game (instant).
EDIT: You actually might see 10ms delay or so, but that's nothing.
Have you reloaded a bank online and timed how long it takes? It takes at minimum 0.4ish seconds to reload a bank online because it still has to sync it with all of the players and the b.net server, making it take roughly the same time and maybe even longer (possibly 1+ seconds with lots of people in the game, I only tested it wiith 1 other person and it bumped it up 0.1 seconds).
With all this discussion about lag-free WASD-movement and such, I would like to point out that even if these particular things should not be possible, it is still a great idea and would allow map-makers to become creative in new ways. I - for example - dream of an economy-orientated map in which you could trade ressources between all players on all maps globally! please make it happen :)
That is when bank file even manages to load right. I have even tried solution to put bank files to same trigger as where they are loaded but they still fail at times to load everything at least before HotS.
Hmm. Using bank files to reduce lag is something useful if it actually works reliably.
With all this discussion about lag-free WASD-movement and such, I would like to point out that even if these particular things should not be possible, it is still a great idea and would allow map-makers to become creative in new ways. I - for example - dream of an economy-orientated map in which you could trade ressources between all players on all maps globally! please make it happen :)
There is other options too. Like you could probably simulate something along the lines of a universe in which each player has his own planet and you can send a fleet to attack someone near you, make alliances, trade on a global market, etc.
Something akin to a Browsergame or EVE would become possible here, though obviously both sides shouldn't be able to control their fleet. That wouldn't work out so well I fear for the invader which would've to rely on the AI.
So I'm curios how you plan on setting this up. Are you going to create some kind of server program to pair with the banks? Or are you leaving that task to the map developers themselves? Either way this is awesome :P
I was thinking about creating something like this for a globally ranked tournament system in Starmon, but you're doing it already :D This is pretty awesome.
Rollback Post to RevisionRollBack
Feel free to Send me a PM if you have any questions/concerns!
To post a comment, please login or register a new account.
It might be too laggy to constantly reload the bank file with so many players, as the bank load time seemed to go up when I had more than just me in a game (I even got network timeouts, but that was when I was loading a decently large bank file). Though since it can basically emulate network play (even while offline), you could always just run the map as single player so that bank reloading is near instant and you don't get b.net delay, making multiplayer wasd maps actually possible.
I just wonder if blizzard would be ok with a program writing to and reading from the bank files with a 3rd party program.
@LinkD: Go
I updated the programs a bit - shouldn't be causing any lag anymore. I know the sc2map is gonna be getting errors because of the way I set it up. I was testing latency on it earlier and it seems that there is a very brief delay in Reload Bank function (Maybe 10ms or so).
I'm working on cross-game chat right now so that you can join a "Server" in-game for chat. Then you can chat with anyone in any game in real-time with roughly 40ms delay (10x2 +20ms from my server). And of course the delay varies from person to person, but that's in everything.
After cross-game chat is done, I'll be relaying a single unit's position as we'll and see how well the game handles two parameters being passed constantly, instead of 1. Though I don't see a problem with it at all.
EDIT: And yes, MMO's are now possible in SC2 :)
Battle.Net delay has been fixed with the big patch that brought all the HOTS content.
Really? They fixed the sync? Gotta check on it.
Also we should probably run this by our local Blizzard resident on the Mapster IRC Channel before we mess around with it. He can hand it up to his boss and they can give you a straight answer, I'd say. Better we check on it now before you invest huge amounts of time and people get banhammered.
@Crainy: Go
Through banks and an external program in the background - you can emulate WASD with 0 delay, even in multiplayer, because the commands would be picked up locally by the program (instant response) and sent to the game bank (instant) and then read by the game (instant).
EDIT: You actually might see 10ms delay or so, but that's nothing.
One more thing we should keep in mind is that this program will only get downloaded and used (after we can get Blizz approval) if there is a good use. It should probably have a more social aspect to it as well, so it has more uses than just the custom maps. There has to be a long-term value to it for people to bother (see Steam, Origin and UPlay).
And it would need a decent amount of maps to use it.
Also what would happen if people played it without the program by just downloading the map on Battle.net? What kind of problems could arise from that is a thing to keep in mind.
Overall this might be a really cool thing for SCU though. I bet they could make good use of it.
@Gorandor: Go
Only one person would need it per-game basis, but depending on how a map maker depended on this program would affect the overall outcome.
For example, you could have a master trigger that would check if anyone has the program running or not and that would decide from thereon how the map runs.
Example 1: Hero Arena has 3 servers you can choose from and a game list lobby when you run the game if someone has the program running. If no one has it, it won't even ask for a server to join and will instead just play the map normally bypassing the multi-game integration stuff.
@Enexy: Go Ye that should work.
One more thing that came up in my head just now: How much will this be secured from shenanigans by malicious intent? I mean we managed to produce instagib maps back in WC3 that overloaded PCs easily. SC2 can do the same funny enough. So how do you intend to circumvent that?
This is probably also something Blizz would want to know, aside from the obvious checking if this impacts BNet security (I doubt it, but those are concerns for such a big company).
It's not the first time the map making community uses 3rd party tools. Reinvent the Craft back in WC3 allowed WASD + Mouse stuff already. And DotA had it's Blacklist and Hosting Bots. But that was a different time.
@Gorandor: Go
I'm not sure of the possible exploits at the moment other than on my side which I protected from sql injection.
It depends on what is allowed to be dynamic by the mapper himself. For examples, sending strings back and forth does not seem to have any exploits (not to my knowledge) at the moment. Sending unit movements does not seem exploitable to me either, since I will be encrypting/decrypting it back and forth, The only possible thing I can see is that if a mapper allows code injection (to create triggers on the fly - another system I made a while back) and somehow the actual player takes advantage of it someway??
@Enexy: Go Well a example is that you can create infinite teleportation of unit spawns between 2 zones, if done right, it will utterly break SC2 and any weaker PC. There is other things as well, but that one even a complete idiot can do.
So if someone made use of code injection in that way, he could ruin the games of anyone subbed to that map if there is a hole you overlooked. In case of a really popular map this could be thousands of people at once. And guess who gets the complaints? Not you at first ;)
Obviously code injection would be one of the most needed features if you really want to make dynamic content. Otherwise you might as well run a random trigger that picks from 100 dynamic events already set up.
This is just one of the concerns I'd have as a Dev with a fan-program. If you wanna try and run this by Blizzard for approval, you should make sure you have all your bases covered for questions like this.
I hope you get a stamp of approval though, which is why I brought this stuff up. This could be really good stuff if it's not eaten alive by a cease and desist answer. But for the love of god don't post it on the official forums as a question, go through our Blizzard contact for this.
There is a lot of very stupid idiots out there that would love to ruin the day of a lot of people at once and your program might be an angle of approach for them if it gets popular.
@Gorandor: Go
Yes, there's always those who want to do harm... It's unavoidable, but people have jobs for that reason.
I've ran this through some Blizz people and am just waiting for a response.
@Enexy: Go Well, here is hoping for a positive one!
@Gorandor: Go
Well, Ive been playing a selfmade TPS that doesnt exactly go easy on the computer with a bunch of different people now in the last days and not once have I noticed any sort of delay that was previously there (and I should have, seeing how I played the map occasionally back to back from the editor and then on the battle.net, so the delay, if there is any, is very close to zero). However, that map was always optimized for beeing lag and delay free and had minimal delay and lag even before the patch, so the fix might not be as extreme as I might think, even though im pretty sure there has been a fix.
@Crainy: Go We just tried it and the delay still is there. It's as little as it has always been after they halved the sync timer.
But the sync timer exists for their normal matchmaking, so I really doubt that it is gone.
It's the same delay we had months ago for our mod and the only way to get rid of it would be if the sync was disabled and it could be done locally.
Do you use any different solution from trigger button press reading? Like abilities or something (Bounty liked to do that).
No, the delay is still there, I just tested it on b.net.
Have you reloaded a bank online and timed how long it takes? It takes at minimum 0.4ish seconds to reload a bank online because it still has to sync it with all of the players and the b.net server, making it take roughly the same time and maybe even longer (possibly 1+ seconds with lots of people in the game, I only tested it wiith 1 other person and it bumped it up 0.1 seconds).
With all this discussion about lag-free WASD-movement and such, I would like to point out that even if these particular things should not be possible, it is still a great idea and would allow map-makers to become creative in new ways. I - for example - dream of an economy-orientated map in which you could trade ressources between all players on all maps globally! please make it happen :)
@LinkD: Go
That is when bank file even manages to load right. I have even tried solution to put bank files to same trigger as where they are loaded but they still fail at times to load everything at least before HotS.
Hmm. Using bank files to reduce lag is something useful if it actually works reliably.
There is other options too. Like you could probably simulate something along the lines of a universe in which each player has his own planet and you can send a fleet to attack someone near you, make alliances, trade on a global market, etc.
Something akin to a Browsergame or EVE would become possible here, though obviously both sides shouldn't be able to control their fleet. That wouldn't work out so well I fear for the invader which would've to rely on the AI.
@LinkD: Go
I have tried it online. When I set everything to no waits, it came up near instantaneously.
I've never had troubles loading bank files - possibly something on your end Clord?
So I'm curios how you plan on setting this up. Are you going to create some kind of server program to pair with the banks? Or are you leaving that task to the map developers themselves? Either way this is awesome :P
I was thinking about creating something like this for a globally ranked tournament system in Starmon, but you're doing it already :D This is pretty awesome.