[Welcome to Sensei's Library!]

StartingPoints
ReferenceSection
About


Paths
KGSWishlist

Sub-pages
Discussion

Referenced by
KGSUsersGuide
KGSStatus
KGSBugs/Fixed
KGSWishlist/GameH...

Homepages
WilliamShubert

 

KGS Plans
    Keywords: Online Go, Clubs & Places, Software

This page includes things I plan on doing some day for KGS The Kiseido Go Server. It is more long term than KGS Status, and is heavily influenced by the KGS Wishlist.

These are in no particular order. I have not credited the people who suggested these - many were suggested by lots of people, so crediting one person seems unfair.

In the past, when I told people "I like your idea but have so much else to do on KGS that I don't know when I'll be able to get to it," they have come back with answers that indicate that they don't believe that I actually have much to do on KGS. Hopefully this list will show, there are lots of things to do on KGS.


Medium-term plans

(nothing stopping me from doing these but my free time)

  • Add a "event" checkbox to a the user's game lists.
  • Add a GMT clock to the server status.
  • A "sealed move" system would be a nice way to adjourn games.
  • Add a way to created named nodes when doing SGF editing.
  • Clean up the create room/edit room GUIs. They are ugly and hard to use. (eg, typing room name then pressing "OK" --> cancel!!!)
  • Add ctrl-x/v/c cut/paste/copy hotkeys for game map.
  • Add right-click on map with cut/paste/copy options.
  • Teaching games often give you multiple messages when your opponent leaves. IE, "Your opponent is gone!" in one message and "The game owner has left!" in another. Find a way to nicely combine these.
  • Right now, the tools (including "resume play") are disabled when the the teacher has given control to somebody else. The teacher must choose "take control" then the tool they want (unless they want move, which is the default whenever you take control). Would be nice to leave these enabled for the teacher, and do an implied "take control" when one is selected.
  • Currently, in private games, if you give somebody access to view the game, you also give them access to talk when it quiet or moderated mode. Needs fixing.
  • To be correct, polish translation needs pluralization rules added and needs separate words for private games and rooms.
  • Disable "create room" for guests since it doesn't work anyway.
  • Disable "addtime" during reviews since it doesn't work anyway.
  • Map background doesn't change instantly when you turn off textured graphics.
  • Observers going back & forth in a demo game is disabled now because it caused trouble; people would be chatting about one node while the "real" game was somewhere else, and their comments would go to the wrong place. So I disabled fwd/back in demo games. Maybe would be smarter to allow it, but just prevent chatting when you are not in sync with everybody else? +
  • Would be nice if "save" was disabled after you saved, until you changed.
  • Reported bug: Cloning a chinese game with handicap puts down handicap twice, in different places.
  • Add an optional tab with all games that your buddies are in.
  • Give simul teachers the option of having no time limit for themselves.
  • Add icons next to names in name list. What do those icons indicate? Many different ideas, not sure yet what ones will actually be there.
  • Fix the MIDP client (anybody have a Symbian 7s-based phone I can borrow?)
  • Rewrite help files (if anybody wants to help me with this, let me know) (Chris Lawrence is working on this right now)
  • Maintain more of room state (ie, order of tabs, and which rooms are stacked which are not)
  • Easy way to get player info when watching a game. I hope to make the player names above the clocks be buttons, that seems a good way to do it.
  • When a User Info request fails because of "no such account", make a new dialogue so that a new name can be typed in, instead of forcing user to go all the way through the pulldown menu again.
  • An option to have games played by buddies show up at the top of the list.
  • A "View Offline" option for the user window's game list.
  • Adjust rating system so that weaker players have their games "age" faster than strong players. That is, the games will fall in weight faster if the players were weaker.
  • Add a system so you can easily replay with same person if you want. That is, when a game ends, have a "challenge this same person right now" button somewhere. Especially useful for a bunch fo 9x9's in a row.
  • Support for all the root SGF parameters in online editing. In particular, it would be nice if the "GN[]" (game name) appeared in the game list.
  • Finish up the last of the HTML pages to be done in the new part-JSP system.
  • Make it possible for all users to find out who owns a room.
  • Clean up rooms. Split clubs into real/virtual.
  • Have mouse wheel move forward/backward in games.
  • Room breakup. Right now, over 90% of all users are in the english room because that is where all the games are. If KGS grows to be too large, this will not be practical for technical and social reasons. The plan is to make it so that you only have to be in the english room if you want to see the english room chatter, not if you want to find a game. This may be an unpopular change so I'll try to be very careful and back out changes that really bother people - may take several tries to get a combination that works and also makes people happy. Right now the steps I plan to take are:
    • When looking at the list of all rooms, being able to filter the list in various ways (especially to only see rooms that are "busy").
    • Limit the number of people per room. I think 1000 will probably be the limit. (Note that most big servers do this - yahoo limits at only a few hundred, I hear the huge Korean and Chinese servers have limits also, and IGS solves the problem by not really having rooms and simply frowning on too much socializing/shouting.)
    • If this leads to several big rooms all of which are full because many people are members of each, probably will need to limit the # of "big" rooms you can be in at once.
  • Add an JSP-ish tag to the message of the day and room description, probably "<utc>2003-10-31 15:00</utc>" that will automatically localize the time given. That way, in the message of the day or in a room description there can be an announcement of an event, and the users won't have to worry about time zones when they read it.
  • Add a "take ownership" system to demo/review games, so that when the owner leaves, there is a way for somebody to turn the game back on again.
  • Some way to prevent review/demo games from being lost forever if the owner gets disconnected accidentally.
  • Allow people to permanently attach SGF files to rooms so that anybody visiting the room can see the files.
  • Enable the "resume play" feature (now available only in teaching games) in all reviews and demo games. Make it more flexible so you can choose any two players for white & black when you switch to playing mode.
  • Add a "pros list" so users can easily see which pros come to KGS.
  • Rework the challenge window so you can tell what color your opponents want to play when they submit a challenge and you already have a challenge visible.
  • When you are reading messages, there should be a "reply" button next to each message.
    • A per-message "delete" button would be nice too.
  • Sometimes at the end of the game, the player's chat area gets the chats in a peculiar order.
  • Add a "never allow undos" option to the "Your opponent wants to undo. Let it happen?" dialog. Clicking this will mean your opponent can ask for undos all day long, you'll never see any of them, so if you choose this then your opponent will only once be able to pop up an undo request window to you.
  • Improve printing by adding comments below the page and notes indicating where multiple moves are made on the same location.
  • Multi-owner rooms.
  • Add a "buddy's games" pane, like open games, but for games of your buddies that are in progress.
  • Add sound effects when in auto play mode. Usually, changing nodes in SGF doesn't make a noise, but when you are in auto play it would be nice so you know that something happened.
  • Add a popup window when you log in if a game of yours is currently loaded, similar to what you see when an opponent loads up a game of yours.
  • When all observers in a "grey" game are asleep, close the game and boot the observers out.
  • Allow cgoban2 to directly play against GTP engines.
  • Toggling "textured board" doesn't change the stones above the editing tools or the stones in the player widgets behind the player's names.
  • Add support for arrow & line SGF markups.
  • Get rid of "xx?" ranks completely. Instead compute a lower bound on the rank, and show that with a "+", so "5k?" would become something more like "7k+" (ie, this user is almost definitely at least 7k in strength) (note - I'm not saying that I take two stones off the "?" rank and put in a "+", I mean really compute a rank that the user is 95% likely to to be above, and use that). At this point, the user and game sorting can ignore the "+", and just sort according to the actual rank displayed.
  • Have a way for users to see the MOTD for other languages.
  • When you fiddle with the forward/back buttons as you observe a game, the clocks get screwed up. Fix it.
  • Add a way to see who has a "P" (pro) rank on KGS.
  • Fix reported bug: Pro vs. amateur games, the pro isn't always assigned white by default.
  • Change byo-yomi time warning system to count down the seconds in Japanese.
  • Tournament system changes: Add double elimination and mcmahon pairers. Add a scheduler that lets users set when they can play. Add a GUI that calls the "change pairings" api of the tournament director.
  • Make the whole client usable without the mouse at all. Good for RSI among other things.
    • At the very least, let people select board locations without a mouse.
  • Give room more customization control. Like backgrounds for rooms. Probably could add a lot of other things.
  • A bunch of translator changes:
    • A way to automatically make/apply diffs.
    • A way to make comments on translations and send them to somebody else.
    • A way to mark a translation as needing more thought later, then returning to this tranlation.
    • Release source for translator so other people can do things like this.

Live Audio Plans

(There are enough of these that it merits its own subsection)

  • Allow multiple speaking teachers - maybe the ability for the speaker to hand speaking to somebody else.
  • When possible use UDP sockets instead of TCP/IP sockets.
  • Switch packet size from 400ms down to 50ms speex frames. This will add more overhead, since it will be more packets, but between this and using UDP sockets it will make the live audio truly be real time instead of the semi-real time that it is now.
  • Allow direct user-to-user speech. This will have firewall trouble, will only be practical when between two people, and will also require careful thought about how to implement it (to prevent people from swearing at their opponent, etc.)
  • Possibly allow use of a 3rd party VoIP server for live audio to cut down on the load on KGS. This should be reasonable since already the live audio is going through totally separate connections.

Long-term plans

(Things that will take huge amounts of work, or things that I want to hold off on until the first bullet point gets done.)

  • Port server to java. Right now, I can make client changes much more easily and with fewer problems than on the server. This is mostly because C just isn't as maintainable as java. As a result, things that require big server changes often just aren't reasonable. Plus, it's a pain to have big pieces of code copied between java and C. So, eventually, I hope to port the server to java; but I will not begin this until java has something equivalent to core dumps, without core dumps I wouldn't have a hope to keep it debugged. Anything that will require lots of server changes will wait until this is done.
  • Make rengo games a real game type instead of the current rengobot system.
  • Pluggable game types, to greatly simplify adding different types of games such as Rengo and Simul. If I do this right, it would also make it possible to have totally non-go-related games, making this closer to Ludoteka or some such. (I would probably put these non-go-related games on different servers). Do we really need another Ludoteka? Not sure, but basically 90%+ of my code is non-go-related, so pluggable game types shouldn't be all that hard to do.
  • Fix silly bug where right now the clients often lose track of who is/is not playing. Really, I could do this now, maybe I will.
  • Allow user names in non-Latin characters. I think it would be nice to let Japanese, Chinese, and Korean players use their own languages for their names. Probably it would be important to have options here; if you want a Japanese name (for example), you can have both the Japanese name and a Latin version. The Latin would appear in English-language rooms and games, the Kana/Kanji name in Japanese-language rooms and games.
  • Support for cut & paste, delete & reorder nodes when editing online.
  • Let demonstration games have handicaps so you can upload games and have the handicap appear properly in the rules window.
  • Put the move number onto the score estimate page.
  • Report that when you submit a pic, if it had to be cropped, then the "may take a few days" message doesn't appear.
  • Seems demo games never gray out, and thus never sink to the bottom of the game list.
  • Add pseudo-links for player names in chats, so you can click for a private chat (or maybe for their user info).

Plans waiting until protocol change

  • Let demo games have names that appear in the game list.
  • Add time controls into the game list for open games.


This is a copy of the living page "KGS Plans" at Sensei's Library.
(OC) 2004 the Authors, published under the OpenContent License V1.0.