Problems that could need to be adressed for game hosters

Problems that could need to be adressed for game hosters

Various things about Spring that do not fit in any of the other forums listed below, including forum rules.

Moderator: Moderators

Post Reply
Doxs
Posts: 56
Joined: 10 Sep 2005, 16:07

Problems that could need to be adressed for game hosters

Post by Doxs »

Hello

I am slightly upset at the moment and I would like to hear if there is any remedy to the following problems. Also feel free to let me know if a solution is planned.

First off, when people have pressed ready, why on earth can they still change teams, colors etc? Today I have had several 4v4 & 5v5 ruined because people switch teams 1 second before I press start. And then you wont notice untill everyone is ingame and I have to restart the battle.

When I force people into certain teams, why can they instantly change teams again?
When I as a host try to force people into teams, it is because I am really trying to even things out. I would like to see a checkbox where I as a host can lock down the settings so that people cannot mess with em after I have forced them into a certain team or color.

Getting rid of spectators, why can I not force spectators into teams or kick them from the lobby?

This would really help alot, since sometimes you end up with a large game and really need to get rid of all the spectators. Now I cannot do that from the lobby and I have to wait until Im ingame to kick them, and you all know how easy that is when Im supposed to play at the same time and then trying to kick a spectator named iijijijijiijijijij...

Pausing ingame, why cannot the host overide other peoples commands in the game? When I pause other people should not be able to unpause the game. If someone else pauses I should be able to unpause him, but he should not be able to mess with my settings.
As the host I need to pause sometimes if people are lagging.

Resyncing, is there some way of getting someone resynced after he has stopped syncing? ie. not getting sync responses from person xx?

/Edit
I almost forgot one last point.

Make a check so people cannot press ready without having the correct map. Eliminates people who for some reason press ready when they dont have the map. It would also be nice to have some sort of status on the map from a hosts perspective so that you know whether people have the map or not.
Last edited by Doxs on 05 Mar 2006, 16:54, edited 1 time in total.
User avatar
Min3mat
Posts: 3455
Joined: 17 Nov 2004, 20:19

Post by Min3mat »

once players pressed ready settings should be locked for them
force spectators wtf
kick spectators (in battle room .kick xxx)
pausing; wtf...play with ppl u know or kick ppl who play dirty
resyncing; impossible
BaKaRa
Posts: 14
Joined: 12 Nov 2005, 00:13

Post by BaKaRa »

when Im supposed to play at the same time and then trying to kick a spectator named iijijijijiijijijij...
rofl I wholeheartedly agree with you Doxs :P
Chocapic
Posts: 556
Joined: 16 Oct 2005, 03:35

Post by Chocapic »

BaKaRa wrote:
when Im supposed to play at the same time and then trying to kick a spectator named iijijijijiijijijij...
rofl I wholeheartedly agree with you Doxs :P
Pause the game and kick him and type other aditional usefull commands like .setmaxspeed 1 etc..
User avatar
Aun
Posts: 788
Joined: 31 Aug 2005, 13:00

Post by Aun »

Chocapic wrote:
BaKaRa wrote:
when Im supposed to play at the same time and then trying to kick a spectator named iijijijijiijijijij...
rofl I wholeheartedly agree with you Doxs :P
Pause the game and kick him and type other aditional usefull commands like .setmaxspeed 1 etc..
Or use the seemingly unknown "lock game speed".
Doxs
Posts: 56
Joined: 10 Sep 2005, 16:07

Post by Doxs »

Chocapic wrote:
BaKaRa wrote:
when Im supposed to play at the same time and then trying to kick a spectator named iijijijijiijijijij...
rofl I wholeheartedly agree with you Doxs :P
Pause the game and kick him and type other aditional usefull commands like .setmaxspeed 1 etc..
Also one of my points, I pause the game and anyone can depause it...
In a 10-16 player game, it happens alot.
User avatar
Felix the Cat
Posts: 2383
Joined: 15 Jun 2005, 17:30

Post by Felix the Cat »

Resync function should be added to the Monthly Topic Rotation in the wiki, tbh. I know I've suggested it at least once a month! :-p
User avatar
PauloMorfeo
Posts: 2004
Joined: 15 Dec 2004, 20:53

Re: Problems that could need to be adressed for game hosters

Post by PauloMorfeo »

Doxs wrote:...
Resyncing, is there some way of getting someone resynced after he has stopped syncing? ie. not getting sync responses from person xx?
...
Failure of sync usually means things like, one PC is saying that unit x still has 50 HP left while other PC is saying that unit x still has 100 HP left.

So, you can imagine what resync could mean?
PC 1 - There is a Krogoth x!
PC 2 - There is no Krogoth x! Where did that came from?
Resync
PC 2 - Ok, after all there is a Krogoth x...

Although it is much more complex than that.
Developers are very aware of those issues and are discussing plenty and and working on them. Mostly because it is what is stopping people with diferent platforms of the game (Windows-Linux-Mac) to play together. So, improvements over the sync system can be expected. One of the improvements discussed was a possible play back feature to replay the game on the PCs after unsyncs have occured to try and resync what failed.
User avatar
SwiftSpear
Classic Community Lead
Posts: 7287
Joined: 12 Aug 2005, 09:29

Post by SwiftSpear »

Locking the ability to pause and kicking spectators from battleroom are both features currently submitted in the mantis, and I just added locking player settings after they have readied. There will never be a way to force a spectator that doesn't want to play to play, you can just refuse to let them watch.

I'm not sure if we'll ever give the host the ability to change someone's team and not have the player able to change back. Hosts always have the option of kicking players that don't comply to the settings they are trying to enforce.

The issues with resycing have already been mentioned.

Also, I like the idea of checking to make sure people aren't readied without the map.
IMSabbel
Posts: 747
Joined: 30 Jul 2005, 13:29

Post by IMSabbel »

Well, i know that resyncing would cost a lot of bandwith (100s of kbyte, possibly).

But _could_ it be possible to just enable a "force resync" while the game is paused? 20 seconds waittime would still be better than just seeing those "no sync to player blabla" messages which more or less means game over...
User avatar
Felix the Cat
Posts: 2383
Joined: 15 Jun 2005, 17:30

Post by Felix the Cat »

Sabbael: if the game assumes that the host's version of the game is the "true" version, then it's as easy as that.

However, the game currently does not assume that, from my understanding. The game is like a liberal; it believes that everyone's viewpoint is equally valid. Therefore, a resynch becomes much more difficult because we don't know whose simulation is the correct one (since they're all equally valid). This wouldn't be a problem if the game rigorously checked sync all the time, but it doesn't - and it would probably take large amounts of bandwidth to do so.

The netcode is the second thing that I would take a look at, were I versed in C++ (pathfinding being the first). However, I am still in the process of learning the language, and I am under no illusion that I'll be able to do anything with Spring anytime in the next six months (optimistic) or year (more realistic). AF mentioned that programming an AI was an excellent way for him to learn C++ for use in Spring; however, with the documentation for the global AI interface spammed all over several threads and not at all organized, I don't know that I'm even up to the task of figuring out what's going on.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Well, i know that resyncing would cost a lot of bandwith (100s of kbyte, possibly).

But _could_ it be possible to just enable a "force resync" while the game is paused? 20 seconds waittime would still be better than just seeing those "no sync to player blabla" messages which more or less means game over...
That's sort of what we want to implement. If game detects out of sync, a pause message is sent, the game is resynced and an unpause message is sent.
Sabbael: if the game assumes that the host's version of the game is the "true" version, then it's as easy as that.

However, the game currently does not assume that, from my understanding. The game is like a liberal; it believes that everyone's viewpoint is equally valid. Therefore, a resynch becomes much more difficult because we don't know whose simulation is the correct one (since they're all equally valid). This wouldn't be a problem if the game rigorously checked sync all the time, but it doesn't - and it would probably take large amounts of bandwidth to do so.
The problem isn't that hard IMHO, if you play with more than 2 players there's a good chance that there's a majority with equal checksum, so you'd choose that game state as the correct one. If it's undecided, you just pick one. This would probably be the host because that seems easiest regarding port forwarding/bandwidth etc.

Also note that the game does quite rigorously check sync continuously. Every 2 seconds the server sends a REQUESTSYNC message, on which each client has to answer with a SYNCRESPONSE including a checksum over unit positions and metal/energy of each player. If the checksums aren't equal, a "sync error" is generated.

Because of the checksumming, this doesn't take really much bandwidth - 32 bit per checksum, and there only is 1 atm, sent only every 2 seconds. So, with, say, 32 bit overhead, it would be 32 bit/second bandwidth.

With smart checksumming it is possible to to a kind of diff too on resync (ie. only resyncing what is out of sync), so depending on what got out of sync, it may even take not so much time/bandwidth.
Doxs
Posts: 56
Joined: 10 Sep 2005, 16:07

Post by Doxs »

SwiftSpear wrote:Locking the ability to pause and kicking spectators from battleroom are both features currently submitted in the mantis, and I just added locking player settings after they have readied. There will never be a way to force a spectator that doesn't want to play to play, you can just refuse to let them watch.
This sounds wery good. However, if it is possible, can you please add the possibility to kick spectators just like normal players, at the moment you have to resort to manual commands that not all hosts know about.
Even if you dont want to give the host the ability to force spectators it would be nice to be able to kick them.
At the moment the player control menu is all grey when you try to use it on spectators.
SwiftSpear wrote:I'm not sure if we'll ever give the host the ability to change someone's team and not have the player able to change back. Hosts always have the option of kicking players that don't comply to the settings they are trying to enforce.
The problem arises when people can change teams at the same time as I press the start button. If their settings are locked when they have pressed ready it reduces the chance that people can change teams just before the game starts. So even if it does not solve the problem completely it atleast helps.
SwiftSpear wrote:Also, I like the idea of checking to make sure people aren't readied without the map.
Nice to see that my lobbying is working. :wink:

May I come with yet another suggestion for a feature to help hosts in large games.

What do you think about having an automatic team balancer?
Lets say that you make a choice of how many teams you want and then people will be assigned into teams with about equal strength (experience).

It should be possible to implement it so that each team gets about an equal amount of experience without to much fuss.
Lets say we got 2 rank 5 players and 4 rank 2 players and you want 2 teams, then it would assign one rank 5 player and 2 rank 4 players to each team.

If it cannot be done completely equal then it should make things as close as possible. This is mostly intended as something quick and dirty for large games where you dont know how good the individual players are anyway.
Doxs
Posts: 56
Joined: 10 Sep 2005, 16:07

Post by Doxs »

Tobi wrote:The problem isn't that hard IMHO, if you play with more than 2 players there's a good chance that there's a majority with equal checksum, so you'd choose that game state as the correct one. If it's undecided, you just pick one. This would probably be the host because that seems easiest regarding port forwarding/bandwidth etc.
This does indeed sound like a great solution to a gamekiller. It sucks when you have large games and one side looses one or several persons due to sync failures.
User avatar
SwiftSpear
Classic Community Lead
Posts: 7287
Joined: 12 Aug 2005, 09:29

Post by SwiftSpear »

Doxs wrote:
SwiftSpear wrote:I'm not sure if we'll ever give the host the ability to change someone's team and not have the player able to change back. Hosts always have the option of kicking players that don't comply to the settings they are trying to enforce.
The problem arises when people can change teams at the same time as I press the start button. If their settings are locked when they have pressed ready it reduces the chance that people can change teams just before the game starts. So even if it does not solve the problem completely it atleast helps.
Yes, I added that suggestion to the mantis. However, you said "When I force people into certain teams, why can they instantly change teams again?". That is something that will most likely always remain in the game, however, I'm not advocating for players in ready status to be able to change settings. You aren't really ready unless you have the settings you want and if the host see you're ready he has every right to assume that you won't be changing most of your settings after that point (race could change on the fly fairly harmlessly but team, ally, and color should not)

Kicking spectators from battleroom has been in the lobby client mantis for a while now. Most likely host will never have the ability to force spectators onto a team or playing role though, because simply put, if you're spectating there is no way you can be forced to play and therefore trying to will just cause problems and discord in the comunity.

Automatic team balancer is an interesting option. I'd love to see it implimented at some point perhaps, but belive me when I say that betalord has alot on his plate right now as it is. Don't expect feature requests in spring to be welcomed openly at this point in time. The coders are working HARD and there's alot of stuff they have yet to get done before they have the free time to work on features.
Doxs
Posts: 56
Joined: 10 Sep 2005, 16:07

Post by Doxs »

I understand that, I have a pretty hectic life myself.

If I had the time and energy I would have tried to help some on this project. Once upon a time I actually went to school with the intent of becoming a coder. But since I could not get a job as it I ended up working with other things. The current problem is that I have my hands full both in my personal life and at work. I reckon it would take quite a few hours to get back in the saddle again with C++ as its been some time since I last messed with it even though I know the basics etc.
mongus
Posts: 1463
Joined: 15 Apr 2005, 18:52

Post by mongus »

Dox, all that you have asked here has been proposed before.

For some of your requests, there is already an answer.

Kicking spectators is very easy as some have already told you how.

If you find, hosting games is not much documented at the moment, why dont you give the wiki a shot, it will be appreciated for all starters.

About locking changes on players you (as the host) have set manually, iirc, it was that way, and since some releases of the lobby, its not working as it used to, so, that is prolly a bug.

For setting game speed as min max = 1, try in advanced options>hidden options>lock game speed, when hosting a game.
Post Reply

Return to “General Discussion”