TAS Server protocol changes - Page 2

TAS Server protocol changes

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

YOU are actually the one who started mudling it up, first by complaining about bitfields and QUIT commands and stuff when I just asked your opinion about the new protocol stuff, and then by asking an offtopic question here about why the protocol is 28 pages long.
AF wrote: pah we need a proper description of all of this with basic examples.

Aa lobby protocol shouldn't take up 28 pages [...]
For example in this post it is totally unclear whether you refer (in the first sentence) to the entire protocol or just to the new commands (note that the posts before it are about the 28 pages subject), yet at the same time you accuse me of mumbling it up...

I didn't mention the daily SVN builds at all in this thread and there is no reason you need them to implement this protocol change. My comment with looking at debug mode was an answer to your post that suggested that more examples were needed in the entire protocol description.
AF wrote:download 40MB+,
8 MB, we got updating installers you know. Pages of traffic log is bullshit too because you are usually alone on the test server and can filter out PING/PONG.

Also, the lobby protocol shouldn't even describe how the different start position types are used, because that is documented already in Spring start.txt AND in the link I gave in an earlier post.

So now please ASK QUESTIONS about the change and what you don't understand about it, because you still did not made that clear.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

AF, the other lobby devs are not antagonistic towards people and hence get plenty of help. Shocking that once again you want help from someone and don't know how to ask for it the right way.
Last edited by LordMatt on 09 Nov 2007, 14:44, edited 1 time in total.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Tobi, I did not mean examples of usage for the entire protocol, however now that you mention it that isnt such a bad idea, especially since a lot of existing well established commands such as the login commands already give examples of their usage thanks to betalord.

That and an 8MB updating installer is still an issue because not all people use windows. How would I run the updating installer on a mac? Or at university? What if I live in student accomodation and the network has ports blocked preventing me from connecting to the test server? What if installing it will cause an angry parent to start punishing me for breaking rules restricting internet access or time on the computer? Nothing is ever as simple as just download install and test.


The protocol itself doesnt specify wether the SETSCRIPTTAGS and REMOVESCRIPTTAGS commands are sendable by just the host or all players, but since it only mentions the word 'client' it can be assumed so, which leads to a nice method of doing the positions.


It also throws up a huge problem of abuse in the protocol with users manipulating each other in $local removing or adding tags that the lobby needs anyway, such as adding a second map tag, making everyone have the same name, things that really only the host should be able to do.

There are also several other pieces of information in other commands that could be sent using this command such as the hosts IP and the map and mod, which would cut down on the protocols size and complexity, while making the entire battle protocol a lot easier to implement, and at the same time allowing several new features, not to mention the ability to do totally random battles.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

AF wrote:That and an 8MB updating installer is still an issue because not all people use windows. How would I run the updating installer on a mac? Or at university? What if I live in student accomodation and the network has ports blocked preventing me from connecting to the test server? What if installing it will cause an angry parent to start punishing me for breaking rules restricting internet access or time on the computer? Nothing is ever as simple as just download install and test.
These are the exceptional cases, it is impossible to always make everyone happy. Usually checking out the java files and compiling them manually should work too anyway, and TASClient can also be found in a 7z archive somewhere (see TASClient thread).
The protocol itself doesnt specify wether the SETSCRIPTTAGS and REMOVESCRIPTTAGS commands are sendable by just the host or all players, but since it only mentions the word 'client' it can be assumed so, which leads to a nice method of doing the positions.
Hm, for me it does show that:
Sent by client (battle host)
(in Betalord's link)
It also throws up a huge problem of abuse in the protocol with users manipulating each other in $local removing or adding tags that the lobby needs anyway, such as adding a second map tag, making everyone have the same name, things that really only the host should be able to do.
Only the host can do this.
There are also several other pieces of information in other commands that could be sent using this command such as the hosts IP and the map and mod, which would cut down on the protocols size and complexity, while making the entire battle protocol a lot easier to implement, and at the same time allowing several new features, not to mention the ability to do totally random battles.
There are some left yeah, particularly starting rectangles. I think I forgot suggesting removal of those last time I spoke to Betalord.

Host IP has the problem that it may differ per client in complex NAT cases (host on LAN, multiple clients on LAN and some other clients on WAN), so IMHO it is better to handle it specially.

Map and mod are currently bound to checksum, being in/out sync, and it are public battle parameters (as opposed to UPDATEBATTLEDETAILS and start rectangles, which are private battle parameters) which makes it harder to bind them to SETSCRIPTTAG. It may be doable sometime, but I think it's unrealistic to change that now already.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Fair do
Only the host can do this.
However my now nice and elegant image of how the positions work is shattered. According to this mental model only the host would be able to set the positions, which begs the question, is this intended? Or are players supposed to be able to set their positions at all? If so how?

A clarification on what the mode actually does is needed. Initial observation would make one conclude that its choose start pos in game, only in lobby not in game, it conjures up images of people clicking markers on the battle window mini map.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Hmm, good point.

I think for now just letting host pick start positions in StartPos=3 mode is OK for two reasons:

1) If players want to pick start positions themselves, it means it's a multiplayer game, so they can as well use StartPos=2 (Choose in game).

2) The goal of StartPos=3 was mostly to allow playing singleplayer against carefully placed AI opponents.

I can imagine the only game type in which it's really impractical is a FFA with AI teams included (e.g. 1v1v1v1 with 2 human and 2 AI players). In MP compstomp (e.g. 2 humans vs 2 AI) it is a little extra work, but workable.

We could add something like REQUESTSCRIPTTAGS for it (send from client (not host) to server, and relayed from server to battle host). The battle host then stays authorative over what get's really set, but clients could suggest changes.

However, I think it is not worth adding this now yet given the limited use case (and relative easy of cheating, ie. enable debug mode to find out where opponent chooses his start position).
Betalord
Former Engine Dev
Posts: 543
Joined: 29 Jun 2005, 09:31

Post by Betalord »

Satirik has had direct discussions with betalord and some of the changes are at satiriks request, so satirik does not have this issue because he ahd a direct chance to ask how.
You have "a direct chance to ask" too. I'm always hanging out in #sy on quakenet (as well is Tobi), you have an option of PMing me here on the forum, or even mailing me (click the "email" icon bellow my post). You never asked me anything or contacted me about any of the matters you mentioned here.
However it seems everybody else has to go to the lengths of figuring it all out themselves,
No, only you seem to have this problem
which is stupid as it shouldnt take more than a single sentence to explain it
exactly, so why didn't you ask me about it first (and rattle later)?
My suggestion that the 28 page protocol should be streamlined to get rid of redundancies, is not the same as my inquiry as to examples of the new protocol in practice.
I still don't understand this part about redundancy. The protocol is written in a xml document who's output format (what you see when you open it) is defined by a XSL file (see ProtocolDescription.xsl in svn).
XSL is used exactly for that - to customize the looks of the xml document. Also, you can make the fonts smaller and print 2 pages on one A4 sheet etc., check your printer dialog (I can show you how to do that too).
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

You have "a direct chance to ask" too. I'm always hanging out in #sy on quakenet (as well is Tobi), you have an option of PMing me here on the forum, or even mailing me (click the "email" icon bellow my post). You never asked me anything or contacted me about any of the matters you mentioned here.
I tried this route numerous times in the past. Using this experience I concluded that further attempts would not give me anything useful and would make further attempts even less likely to get me anywhere. In fact I was quite insulted by some of the stuff you said from back then so rather than mindlessly persist, or rant at you, I just gave up and looked elsewhere for solutions.
No, only you seem to have this problem
Then it appears that there's a post explaining it all perfectly near to the beginning of the thread leaving no doubt of any kind and answers all the issues discussed or raised after it that I'm not able to view. Sadly such a post containing the missing answers that summarize mine and tobis last posts and a few other things does not exist yet. All that is left is a feeble attack by someone who usually only posts to strategically lock threads every leap year.
exactly, so why didn't you ask me about it first (and rattle later)?
See first quote and its reply.
I still don't understand this part about redundancy. The protocol is written in a xml document who's output format (what you see when you open it) is defined by a XSL file (see ProtocolDescription.xsl in svn).
XSL is used exactly for that - to customize the looks of the xml document. Also, you can make the fonts smaller and print 2 pages on one A4 sheet etc., check your printer dialog (I can show you how to do that too).
Please do not insult my intelligence. Your position as server code maintainer does not afford you an unlimited overdraft on kudos with which to insult people.

Decreased to 50% its original size, including the removal of headers footers and page numbers, and the resizing of top and bottom margins to their smallest size, the protocol still takes up 15 pages. The text is almost unreadably small, yet it would still take up to 8 double sided pages.

While something like this may be ok in some circumstances, for the level of functionality the end user is actually receiving, does this not seem like a lot of commands?

There are hundreds of possible paths to go down for simplifying and improving the protocol without loosing functionality or making silly choices.
Betalord
Former Engine Dev
Posts: 543
Joined: 29 Jun 2005, 09:31

Post by Betalord »

very well, suit yourself.
User avatar
clericvash
Posts: 1394
Joined: 05 Oct 2004, 01:05

Post by clericvash »

For all of our sakes can you both just get along for once.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

I think the devs have more important things to do than argue about that kind of garbage. If he wants to be a good citizen and get along with others, then they will help him, if he wants to be confrontational and unpleasant, then the devs don't need to waste their time with him.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Lordmatt, ahem, I sent a pm to you, it seems you've totally ignored it.

Clericvash, numerous times I have attempted to talk to betalord about things, ask for fixes, made suggestions, asked questions. However betalord wasn't very co-operative, infact he was even told to co-operate after I complained to the other developers.

He either made up excuses or ignored me full stop. Eventually he started intervening in discussions posting things that made me look bad and had a number of untruths in them then locking the thread after him so nobody could reply or correct his post.

In the end I just got sick and tired of it all and gave up. A sarcastic betalord who makes up ridiculous excuses to insult you for simple things rather than taking you seriously is not a co-operative server maintainer. If betalord had been nice from the beginning then things would be fine. Instead he was offensive and used dirty tactics. Remember the IRC logs I posted up that he deleted, following up with quotes from his own logs that had been selectively picked to make me look bad? And you wonder why I dont trust him to make a sane decision without turning it into slander?
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

When will these changes be on the public server? Next Spring release? I heard that will be in one or two weeks. Is this correct?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

It appears so, they're already in action over at the test server, and they'd have to be or TASClient in 0.76b1 would be broken.

As for when 0.76 is out, you'll have to watch the thread on engine development.
User avatar
LordMatt
Posts: 3393
Joined: 15 May 2005, 04:26

Post by LordMatt »

You know, I've always found Betalord to be a very nice guy, and I think that has been other people's experience as well. It must have taken a lot of crap from you, AF, to make him do things like that (unless, of course, you are making gross distortions/exaggerations :wink: ). In any case, you can't expect everyone to be as patient with you as tobi is.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Lordmatt, I don't know what is up with you or why you've been acting the last few months as if I end each post with some heinous insult directed at you, but if your going to be an ass at least tell the truth.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

May I suggest that we try to keep this thread somewhat more on topic now.
User avatar
tc-
Lobby Developer
Posts: 152
Joined: 19 Apr 2007, 20:15

Post by tc- »

Where can I donwload a TASClient binary that works with the new changes?

Edit: Found it :-)
http://buildbot.no-ip.org/~buildbot/spring/
Post Reply

Return to “Engine”