KGS protocol opened
-
hyperpape
- Tengen
- Posts: 4382
- Joined: Thu May 06, 2010 3:24 pm
- Rank: AGA 3k
- GD Posts: 65
- OGS: Hyperpape 4k
- Location: Caldas da Rainha, Portugal
- Has thanked: 499 times
- Been thanked: 727 times
Re: KGS protocol opened
I haven't played with web sockets, but I wonder you couldn't use them as transport for the binary stream protocol that KGS uses.
-
DrStraw
- Oza
- Posts: 2180
- Joined: Tue Apr 27, 2010 4:09 am
- Rank: AGA 5d
- GD Posts: 4312
- Online playing schedule: Every tenth February 29th from 20:00-20:01 (if time permits)
- Location: ʍoquıɐɹ ǝɥʇ ɹǝʌo 'ǝɹǝɥʍǝɯos
- Has thanked: 237 times
- Been thanked: 662 times
- Contact:
Re: KGS protocol opened
Pippen wrote:Goodbye KGS, Hello OGS, Goodbye IGS, Hello Tygem. Don't work on deadwood.
IGS I agree with. But OGS & Tygem? They must have improved drastically since the last time I tried them. They were terrible interfaces. I must admit that it has been a while. Please explain what they have to offer that KGS does not.
Still officially AGA 5d but I play so irregularly these days that I am probably only 3d or 4d over the board (but hopefully still 5d in terms of knowledge, theory and the ability to contribute).
-
Pippen
- Lives in gote
- Posts: 677
- Joined: Thu Sep 16, 2010 3:34 pm
- GD Posts: 0
- KGS: 2d
- Has thanked: 6 times
- Been thanked: 31 times
Re: KGS protocol opened
DrStraw wrote: But OGS & Tygem?
Tygem has a bad (english) client, but thousands of players (you get almost instantly games) including a lot of very strong players and professionals. It seems like the go-to Go-Server right now. OGS is what KGS was 10 years ago: an up and coming server where people put a lot of work in it. KGS is still fine but WMS has obviously abandon this project, so it will die out within the next 10 years, if not he does transfer all the power to some other people (but then who knows...remember Kaya?).
I'd rather see people putting effort into forcing Tygem to improve its english client or OGS.
-
TegaiS
- Lives with ko
- Posts: 153
- Joined: Wed Jan 26, 2011 2:02 am
- GD Posts: 0
- Universal go server handle: tegais
- Location: Russia, Krasnoyarsk, (GMT+07:00)
- Has thanked: 1 time
- Been thanked: 18 times
Re: KGS protocol opened
DrStraw wrote:IGS I agree with. But OGS & Tygem? They must have improved drastically since the last time I tried them. They were terrible interfaces. I must admit that it has been a while. Please explain what they have to offer that KGS does not.
OGS offers simplicity. Just go there and play. No Java, no clients, no technical difficulties. Also it has better position in Google search. And I heard that it already has more low kyu players than KGS.
KGS has better interface, better rating system and review tools, more strong players and less bugs but all this doesn't matter much for novices.
-
Hrabanus
- Dies in gote
- Posts: 34
- Joined: Sat Feb 20, 2016 9:18 am
- Rank: ddk
- GD Posts: 0
- Has thanked: 26 times
- Been thanked: 6 times
Re: KGS protocol opened
TegaiS wrote:
OGS offers simplicity. Just go there and play. No Java, no clients, no technical difficulties. Also it has better position in Google search. And I heard that it already has more low kyu players than KGS.
KGS has better interface, better rating system and review tools, more strong players and less bugs but all this doesn't matter much for novices.
Java and the client work well and fast on a Debian OS. No Problems here
(Though that might be different with Windows, but using that one practically asks for trouble
Pages on ogs take up to 10s to load, i find that nowadays very slow, and for me there is too much distracting stuff on the page when i’m playing.
But the mods are really nice people there and there are potentially more players available for my rank (20k on both).
On the other hand i get to play stronger players more on kgs and that’s helping me to improve much more than games with players around my strength, just because they play better Go and i can learn from that.
BTT: Do i understand that right, is it only the protocol used for connecting a browser client to the server that is “kind of open source” now?
Or is it possible to use it with every kind of client?
A good looking, well working native Linux client would be really great, but i think the intersection of Baduk players and Linux users is to small for that.
-
hyperpape
- Tengen
- Posts: 4382
- Joined: Thu May 06, 2010 3:24 pm
- Rank: AGA 3k
- GD Posts: 65
- OGS: Hyperpape 4k
- Location: Caldas da Rainha, Portugal
- Has thanked: 499 times
- Been thanked: 727 times
Re: KGS protocol opened
On the server, no one knows you're a browserHrabanus wrote:BTT: Do i understand that right, is it only the protocol used for connecting a browser client to the server that is “kind of open source” now?
Or is it possible to use it with every kind of client?
A good looking, well working native Linux client would be really great, but i think the intersection of Baduk players and Linux users is to small for that.
The questions are 1) what WMS intends to allow/encourage 2) how full featured the API is.
-
macelee
- Lives in sente
- Posts: 928
- Joined: Mon Dec 31, 2012 1:46 pm
- Rank: 5 dan
- GD Posts: 0
- KGS: macelee
- Location: UK
- Has thanked: 72 times
- Been thanked: 480 times
- Contact:
Re: KGS protocol opened
It looks like one needs to run a Java application server on his/her own server and deploy the web application supplied. Then create whatever client to communicate with your own server. So the KGS server won't be able to tell what client is being used.
-
lodestone
- Beginner
- Posts: 19
- Joined: Sat Oct 10, 2015 2:01 pm
- Rank: KGS 1k
- GD Posts: 0
- KGS: lodestone
- OGS: lodestone
- Has thanked: 3 times
- Been thanked: 7 times
Re: KGS protocol opened
KGS remains my favorite server. It is sociable and a good place to get help and advice for beginners and SDK players. It is also the best server if you are interested in a game with a time control faster than 10min+BYO. It's true that it doesn't have nearly as many very strong players, though, so I can see why it's much less appealing to mid-level or high-level dans.
IGS and Tygem are good places if all you care about is getting matched in a game quickly and aren't looking to chat or to review games. I don't care for the Tygem rating system, though. It seems like there is a much wider spread of actual abilities at a given rank than on KGS or IGS.
I play on OGS also, but I think it has the least to recommend it. It's not very sociable. Despite the fact that there are always many people logged on, it can be difficult to find a game, and the time controls are all over the place. The split rating system (separate blitz, standard, correspondence, and overall) is also awkward. In part because of that, the ability vs. rank discrepancies seem almost as bad as on Tygem. That said, it does seem like the fastest growing and most actively managed server, so maybe it will improve more quickly than the others.
IGS and Tygem are good places if all you care about is getting matched in a game quickly and aren't looking to chat or to review games. I don't care for the Tygem rating system, though. It seems like there is a much wider spread of actual abilities at a given rank than on KGS or IGS.
I play on OGS also, but I think it has the least to recommend it. It's not very sociable. Despite the fact that there are always many people logged on, it can be difficult to find a game, and the time controls are all over the place. The split rating system (separate blitz, standard, correspondence, and overall) is also awkward. In part because of that, the ability vs. rank discrepancies seem almost as bad as on Tygem. That said, it does seem like the fastest growing and most actively managed server, so maybe it will improve more quickly than the others.
- Charlie
- Lives in gote
- Posts: 310
- Joined: Mon Feb 06, 2012 2:19 am
- Rank: EGF 4 kyu
- GD Posts: 0
- Location: Deutschland
- Has thanked: 272 times
- Been thanked: 126 times
Re: KGS protocol opened
If I understand, correctly, one may not use this source-code to create a proper, third-party desktop client for KGS. Am I correct?
I am not employed at the moment and writing a professional-quality Windows client is something that I certainly could do - it was my first thought when I read the headline. I'd do it in C# so it would only need the .NET framework which most Windows PCs have, anyway. It would be open source and modifiable and configurable. The code would be 100% professional quality, drawing from my career experience as a developer. I would look to glGo, OGS, Tygem, the KGS official client and the notorious cgobanh for inspiration.
It is such a pity that this dream will never come to pass. (There's a flicker of hope, now.)
With reference to the other topic being discussed in this thread, I don't like OGS because there is still no Auto-match button. It's a great server for correspondence play because the site ladders are nice but the "Play" screen with its pretty but useless graph of games is complete unusable to me. Half the games are not available for me (why are they even shown?) and the others are normally gone by the time I've finished checking that they're ranked and with proper-handicap and with sensible time settings. (Honestly, 1 minute + 20 seconds three times is not something I normally want to play, online.) KGS has a fantastic Auto-match queue with simple options: Medium/Fast/Blitz and Ranked/Unranked. IGS, likewise, is very good in this regard. Tygem is alright, although I often sit for a long time watching red refusal messages in the text box.
I am not employed at the moment and writing a professional-quality Windows client is something that I certainly could do - it was my first thought when I read the headline. I'd do it in C# so it would only need the .NET framework which most Windows PCs have, anyway. It would be open source and modifiable and configurable. The code would be 100% professional quality, drawing from my career experience as a developer. I would look to glGo, OGS, Tygem, the KGS official client and the notorious cgobanh for inspiration.
With reference to the other topic being discussed in this thread, I don't like OGS because there is still no Auto-match button. It's a great server for correspondence play because the site ladders are nice but the "Play" screen with its pretty but useless graph of games is complete unusable to me. Half the games are not available for me (why are they even shown?) and the others are normally gone by the time I've finished checking that they're ranked and with proper-handicap and with sensible time settings. (Honestly, 1 minute + 20 seconds three times is not something I normally want to play, online.) KGS has a fantastic Auto-match queue with simple options: Medium/Fast/Blitz and Ranked/Unranked. IGS, likewise, is very good in this regard. Tygem is alright, although I often sit for a long time watching red refusal messages in the text box.
Last edited by Charlie on Wed Mar 23, 2016 8:14 am, edited 1 time in total.
- quantumf
- Lives in sente
- Posts: 844
- Joined: Tue Apr 20, 2010 11:36 pm
- Rank: 3d
- GD Posts: 422
- KGS: komi
- Has thanked: 180 times
- Been thanked: 151 times
Re: KGS protocol opened
Charlie wrote:If I understand, correctly, one may not use this source-code to create a proper, third-party desktop client for KGS. Am I correct?
That's not my impression. The protocol has been opened for anyone to write clients. All the calls are (sort of) documented, so you could choose which features to include in your client. I think wms is hoping that someone will write a fully featured html client, for possible inclusion on the KGS website, but that does not prevent anyone from writing clients in any technology. The only weirdness at the moment is that you have to run a local webserver to serve a JSON-binary translator. It works OK, although it is a bit buggy. wms is responding quickly to bug reports.
Presumably you've read his G+ post and subsequent comments - what makes you think you can't write a windows client?
- Charlie
- Lives in gote
- Posts: 310
- Joined: Mon Feb 06, 2012 2:19 am
- Rank: EGF 4 kyu
- GD Posts: 0
- Location: Deutschland
- Has thanked: 272 times
- Been thanked: 126 times
Re: KGS protocol opened
I did some more investigation, looking at the WAR that WMS posted and reading further down the comment thread - thanks quantumf - and my thinking has changed a lot.
Firstly, I stand corrected. It seems that WMS has no problem with us using his JSON API to create any type of client - even a desktop one. This is good.
Unfortunately, I also realised that he hasn't really open sourced anything. What he called "Open Source" simply isn't. He has created an entirely new JSON API and published an open-source example and documentation for it. He has not published the source code that converts from the JSON API to the Binary API and he has not published the Binary API.
All is not lost, however. There's no reason why I couldn't create my "dream client" using his JSON API. In fact, it might be even better, that way, because it could work through firewalls and proxies.
I'll keep watching and see if WMS responds to the questions on the comment thread asking whether he will be hosting the JSON server anywhere. This, I think, would be required for any serious use of the JSON API - particularly from Windows, where the installation of Apache Tomcat or Jetty is not trivial.
Meanwhile, I have been pondering exactly how cool a rich desktop client for KGS and IGS could be. I reverse engineered the IGS protocol a few years ago, sniffing glGo's traffic. There's no reason why a rich desktop client couldn't be written to connect to either server or even feature an entirely pluggable communication layer.
Firstly, I stand corrected. It seems that WMS has no problem with us using his JSON API to create any type of client - even a desktop one. This is good.
Unfortunately, I also realised that he hasn't really open sourced anything. What he called "Open Source" simply isn't. He has created an entirely new JSON API and published an open-source example and documentation for it. He has not published the source code that converts from the JSON API to the Binary API and he has not published the Binary API.
All is not lost, however. There's no reason why I couldn't create my "dream client" using his JSON API. In fact, it might be even better, that way, because it could work through firewalls and proxies.
I'll keep watching and see if WMS responds to the questions on the comment thread asking whether he will be hosting the JSON server anywhere. This, I think, would be required for any serious use of the JSON API - particularly from Windows, where the installation of Apache Tomcat or Jetty is not trivial.
Meanwhile, I have been pondering exactly how cool a rich desktop client for KGS and IGS could be. I reverse engineered the IGS protocol a few years ago, sniffing glGo's traffic. There's no reason why a rich desktop client couldn't be written to connect to either server or even feature an entirely pluggable communication layer.
- quantumf
- Lives in sente
- Posts: 844
- Joined: Tue Apr 20, 2010 11:36 pm
- Rank: 3d
- GD Posts: 422
- KGS: komi
- Has thanked: 180 times
- Been thanked: 151 times
Re: KGS protocol opened
Charlie wrote:Unfortunately, I also realised that he hasn't really open sourced anything. What he called "Open Source" simply isn't.
Yes, as you probably saw, he corrected his terminology. He's opened the API and documented the protocol.
Charlie wrote:All is not lost, however. There's no reason why I couldn't create my "dream client" using his JSON API. In fact, it might be even better, that way, because it could work through firewalls and proxies.
Indeed. I too briefly considered writing a .net client, as it will be way easier and look much nicer than an html client. However, I mostly use my mac these days, so I'm less inclined to write a platform-specific solution.
Charlie wrote:I'll keep watching and see if WMS responds to the questions on the comment thread asking whether he will be hosting the JSON server anywhere. This, I think, would be required for any serious use of the JSON API - particularly from Windows, where the installation of Apache Tomcat or Jetty is not trivial.
My impression is that wms answers a subset of the questions on the comment thread. I'm not holding my breath about answers to the others at this point. However, you need not fear Tomcat. It's extremely easy to install. Assuming you have java 8 installed, it shouldn't take more than 1 minute. If you have any issues, you're welcome to PM me. Or if others are interested, I can explain here how to install tomcat and deploy the war file.
The JSON API is a little peculiar, I have to say. RESTful it is not. I guess it's a pretty thin layer over the existing binary protocol. It's incredibly busy, although I suppose that's not surprising given how active the server is - all users joining and leaving the system, all game offers and starts, all public messages etc. are sent down to the client. So every update you receive from the server is quite substantial.
- quantumf
- Lives in sente
- Posts: 844
- Joined: Tue Apr 20, 2010 11:36 pm
- Rank: 3d
- GD Posts: 422
- KGS: komi
- Has thanked: 180 times
- Been thanked: 151 times
Re: KGS protocol opened
wms' latest comments suggest that perhaps building a Windows client is not that well-advised, except perhaps as a fun personal project. While he is not opposed to it, he has no interest in specifically supporting or enabling it by hosting the JSON wrapper on the KGS website. It seems you'd have to wait for a compelling HTML app to be written first before the wrapper is hosted, which may or may not ever happen.
- Charlie
- Lives in gote
- Posts: 310
- Joined: Mon Feb 06, 2012 2:19 am
- Rank: EGF 4 kyu
- GD Posts: 0
- Location: Deutschland
- Has thanked: 272 times
- Been thanked: 126 times
Re: KGS protocol opened
I have hosted things on Tomcat in the past - notably Apache Solr, a product of which I am a huge fan - and done so in production environments (yay! production Windows Servers for non-Microsoft platforms ... not my personal choice...) so I know it's easy. If I do run into trouble, I'll certainly PM you and be grateful for the assistance.
Realistically, any client that required people to first install Java and Tomcat would never be used by any but the adventurous and I'm not about to host the JSON API layer for public consumption - that would imply that I was prepared the maintain such a server and deal with any and all issues. Since it's closed-source, that just isn't going to happen.
I briefly considered some sort of co-deployment so that a .NET client could fire up the server as a surrogate process. That would be possible but complicated and the deployment footprint would be untenable.
Reading WMS' latest replies on the Google+ page makes me doubtful about the possibilities.
Also: ... JSONP ... mutter ... cross domain requests ... mutter ... mutter ...
Realistically, any client that required people to first install Java and Tomcat would never be used by any but the adventurous and I'm not about to host the JSON API layer for public consumption - that would imply that I was prepared the maintain such a server and deal with any and all issues. Since it's closed-source, that just isn't going to happen.
I briefly considered some sort of co-deployment so that a .NET client could fire up the server as a surrogate process. That would be possible but complicated and the deployment footprint would be untenable.
Reading WMS' latest replies on the Google+ page makes me doubtful about the possibilities.
Also: ... JSONP ... mutter ... cross domain requests ... mutter ... mutter ...