[Welcome to Sensei's Library!]

StartingPoints
ReferenceSection
About


Referenced by
KGSBugs
KGSStatus
KGSUsersGuide
KGSWishlist
KGSWishlistOld

Homepages
WilliamShubert

 

KGS Plans
    Keywords: 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 dialogs for viewing/editing your whole list of buddies and censors.
  • 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) (Hu and BigDoug are working on this right now)
  • Maintain more of room state (ie, order of tabs, and which rooms are stacked which are not)
  • Dockable editing window so you can do one-window editing if you want.
  • Fix chat areas so that they don't bounce back to bottom if you are trying to scroll backwards.
  • 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.
  • Fully automated tournaments. That is, an admin tells the server the tournament rules etc., and people can just use the clients to sign up and play in the tournament.
  • Take out main time warning for byo-yomi. So byo yomi warns during byo-yomi time, canadian warns during canadian byo-yomi, and absolute warns during main time. Probably use same warning level for absolute and canadian, and the "short level" for byo-yomi.
  • 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.
  • Add some sort of web+email system for resetting your password automatically. (And the admins rejoice when this is done).
  • 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.
  • Make the challenge/new game dialogue remember the game type (ranked/free/etc.)
  • 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.
  • A moderation system for big teaching/lectures.
  • 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.
  • Add an option to sort games with gray games at the bottom.
  • When you are reading messages, there should be a "reply" button next to each message.
  • 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.
  • Let users easily see who owns a room.
  • Multi-owner rooms.
  • Allow room owners to make room-only announcements (that is, bold chats other than changing room description).
  • 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.
  • The "tool help" blurb in the editing tool really should be a tooltip, not something that takes up screen space.
  • Next time I rearrange the game GUI, find a way to fit editing tools (and maybe SGF map) inside the main window, so you can do 1 window editing.
  • Add support for arrow & line SGF markups.

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.
  • Add visual cues on the game window that there is live audio playing, and that you are currently recording live audio successfully. Perhaps a level meter?
  • 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.

Plans waiting until protocol change

  • Get rid of encodedRankType (ok this is an internal change probably meaniningless to anybody but me)
  • 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.