UGSWishlist

    Keywords: Online Go

Table of contents

Wishlist

What do you think of adapting the current kgs wish-list structure here? It seems general enough and because it's a wiki page here, I'm sure no-one'll mind... Reuven

Benjamin: I'm not so familiar with that structure - but anyways, as it includes the word "structure", I guess it's far better than our current listing ;-) So if anyone has spare time, just go ahead with restructuring.

General Wishlist

  • Kirk: It must be possible to use the server through a firewall that only allows http (port 80) traffic through.
  • The server should expose its API to clients through webservices. Advantages are: a) the protocol will be public b) clients can be implemented easily against the wsdl, stub implementations can be created automatically c) load balancing through server federation can be added with little effort d) standard authentication and security mechanism can be applied through SSL e), f)...
  • SSL support (port 443 in addition to port 80)
  • Standard IM support
  • Clients should autodetect proxies
  • Clients and server should work with most frequently used reveresed proxies
  • there should be many many players available at all strenghs -> good marketing needed
  • Should be highly regional. For example, regional tournaments (i.e. German "Bundesliga") and local rooms should be possible (why not have a "paris club room" as sub-room of french room) and be connected to local wiki-pages.
  • Should be highly international. Make it easy to play and communicate with Asian players. Try to be better than Pandanet and Korean servers to get many strong players for this server.
  • The standard client should have a beautiful GUI like board and stones in KGS
  • The client should be easy to use.
  • Hide advanced settings from beginners. Maybe the should be a "Advanced Settings" button to display them on request.
  • Use plugins to add new functionality to the client
  • (Benjamin) To organize account identities, I suggest that each person (identified by email) should just have one personality, i.e. register once with their mail.
    • With one personality, you may easily create and delete different accounts you like, some where your personality is shown, some where it's hidden
    • When creating a new account, it can already be given a ?-rank depending on your other accounts, so once UGS knows your strengh, you don't need to wait so long to get a rating
    • When a user really behaves very badly, not just his account, but his complete personality is kicked from a room / or even the complete server

In my opinion this only makes the client a bit more complicated. Just support for multiple accounts by remembering several usernames/passwords should be enough.

Also a user could still create several personalities by registering with different email adresses to avoid being banned

A GoVoiceReplayer function.

Client User Interface

  • no accessibility issues: any font size for all fonts (clock, chat, etc.), any stone/mark size, etc.
  • possible to do everything via mouse ONLY. and everything via kb only.
  • standard meanings for marks (triangle good, square bad, etc.)
  • Big avatars! Smaller buttons to make room! Maybe menus instead of buttons, even less room! Big avatars!
    • An option (for every game window) to display big, small, or no avatar
    • This setting should be saved in user preferences
  • Every user has the option to share personal information: such as location. This would be displayed in profile.
    • Personal info could also be displayed in game window.
  • A massive persistent virtual word with 3d avatars. Temples and teahouses ...
  • I don't know about 3-d, but some visual settings would be nice. Maybe someone willing to spend a little time could make an avatar that animated when certain things happened(i.e. you can assign a gif to play when conditions are met; when you play a stone, your avatar shows Hikaru playing a stone. Maybe emote avatars that can animate when you right click them and select an animation.) I know that this is probably not possible if many of the other suggestions are used; Use the suggestions that would make the server first. I would rather have a very good teaching or room/regional system(or other useful things), than have animated avitars. It would be nice if it is possible after the big stuff.
    • There should also be options to turn animation off, globally or just a specific annoying case.
  • several avatars to choose from.
  • Configurable stone and board textures.
  • 3d goban - the one in PANDA-glGo is nice!
  • NaturalStonePlacement with random rotation of white stones!
  • __Hotkeys please!

Analysis

Benjamin: I think having a nice way to analyze is one of the most important things a server should have. KGS wouldn't have become so popular without its editing tool. But still I think very much can be done...

  • Not just one player at the time should be able to add new variations. Instead everyone should be able to propose moves/vars everywhere in the var-tree all of the time. The reviewer will get to know what was proposed and will quickly be able go to this place. After the reviewer visited a node, it will change from a single proposal to an analyzed variation. UI must be very good to avoid chaos.
  • Coordinates should be replaced by clicking and thereby marking the stones/point you're talking about.
  • There should be a browser-like "back"-button to jump faster between nodes of the variation tree.

Tderz Is both, hence a choice of options possible? Users are not alike, accept that they don't want to be patronized too much.

Benjamin: Well, of course it should not be forbidden to use coordinates. But the other way should be so comfortable that noone is going to use coordinates. It is just a bad style, like using "goto" in programming, so it should be avoided.

  • Comments should not always be just saved in the current node. Instead it must be possible to specify to which move/variation they belong.
    • I think it would be easier to just allow users to jump to different nodes in the client.
    • (anonymous) specifying the move-variation could be done by right-click on the move in the variation tree (context menu) However, how should it be displayed at the opposite side?

Benjamin: Yeah, that's the question of questions for me right now. Maybe after writing, just display it like chat text lead by the move-nr. Say the active node is move 50 right now and someone adds a comment on move 35 again, "35: (userXY) Still I don't like this move". With a mouseclick on "35", you will automatically get to that node.

  • Anyone watching the game/lesson should be able to add variants and comments anywhere (sometimes this feature can be disabled). The system and GUI must be very intelligent here to avoid chaos, on the other hand.
  • Filter functions like "don't show comments/variations from xy" or "just show vars/comments by players stronger than n-dan"
  • It might be possible to develop a standard format for go-comments that is accessible through the interface. For example, instead of typing "good move, as it both makes territory and attacks group G14", you can just click on "good", then "makes territory" and then "attacks ..." after which you click on the group that will be attacked by the move. This group will be marked automatically and a text using the mark will be created. Having this feature is the most important step for inter-language-analysis, thus creating immense possibility for us to learn from eastern players easily.
    • (annymous) interesting idea. This could work pretty well, if the number of different "idioms" frequently used is reasonable small. How many such idioms do you think there are? (like: good move, bad move, questionable move, urgent move, joseki move, endgame move, simplifies position, complicates position, attacks, defends group, defends cut, make territory, builds moyo, ...)
    • Benjamin: The number of idioms has to be researched (everyone is invited to contribute). I estimate there are maybe around 50 useful idioms with about 15 that are used very frequently. So it's a challenge for the GUI to make accessible all of them while keeping a good overview
    • SGF already has a tag to mark good or bad moves. Maybe we should just expand this system and make it easier to use.
  • revo: While I'm watching a game, I'd like to be able to try some variations locally (only in my client, not disturbing the other observers). And maybe it would be cool if a high dan commenting the game could show variations to everybody (who wants to see them -> filter) while the game is running. This again would require a lot of UI intelligence.

Benjamin: I think the best might be having anyone besides the "reviewer" enter variations locally at first and then have a function that sends the proposed new variation to others.

  • Davou:I would love to be able to block people so I dont see their kibitz... And filter out workds like Resign.

Database

UGS should include a big "Go Knowledge Base" supporting good pattern search like kombilo or MasterGo

Malweth: I was doing a bit of thinking about this... it's something I was looking into on my own a while back (good for user comments, etc). I think it would be very good to have a fuseki game database that records all played moves from games on the server (and a corresponding move's highest rank player) until it reaches a single SGF. At this point, instead of continuing, there's a link to the SGF and the client has the option to request the SGF in question to continue the flow. (Some sort of caching may be necessary). Since 99% of the database would be automatically created it might work well. More advanced pattern searches might be tough with this type of system... may want a different kind of database for this.

Benjamin: That's funny - a few days ago I had some idea how a good local pattern matching could look like. I want to call it TopologicalPatternMatching.

Another thought is that limiting the rating level of comments in any given SGF should be possible - which means that each comment needs a kyu rating (since the rank of the user leaving the comment can change fairly easily). This also means it might be best if users were required to have a ranking (no unranked players) and that the highest solid rank as well as the current rating be saved for each user (does IGS do something similar? I haven't been playing there for long).


GrandYan: Is it possible to make a 'GoBot' like the one on NNGS? Have the GoBot automatically replay pro games when you tell it to..For example, tell the GoBot in a private message to replay game number 234, and it opens a demonstration game showing game number 234.

Isn't it enough to just open the game yourself like on KGS?

Pattern Searching

Jared: Pattern searching places a huge CPU load on the server. Unless this project anticipates the financial backing to purchase the CPU muscle ... I suggest eliminating the pattern search feature.

Goproblems

How should the server/tool deal with Go-Problems?

Creating Problems

  • make it easy to post new problems - variation tree must not be complete or even exist yet.
  • all users may easily add variations to the problem.
  • after the last move of each variation, there should be a statement declaration (e.g. "black is dead" after move 7)
  • from the status declaration, ugs should automatically calculate which moves are wrong and which are correct
  • after people think all important variations are added, the problem will be published as complete
  • sometimes people will find new variations to a problem that already was marked complete. If it doesn't affect so much of the problem, the new var will just be added. But if it makes a huge change to the solution (e.g. changes which first move is correct), the problem should maybe be marked "incomplete" again to be discussed again.

Solving Problems

  • Problems should get ratings depending on how strong players are that can(not) solve it
  • Problems with the right difficulty will be proposed for you in study-mode
  • When trying to solve the problem, it can be done like goproblems.com, or through another interface that hides solutions (you can set this in your user prefs)
  • It would be really great to put problems into categories (like damezumari or placement tesuji). When e.g the database realizes you are weak at seeing damezumari, more problems of this type will be proposed for you.

Pro Games

  • include a free database of professional and high-dan games. If everybody could add pro games to the database, the number could get quite high quickly

Lessons

  • store all public held lessons in the database as well
  • FREE!!!
  • ^ store public lessons in a special place (or make a button or menu option to show the lesson list). The lesson area should allow you to organize the lessons(by who gave them, by date, or maybe by whether the lessons are for beginner, intermidiate, or strong players). It should also allow a lesson search (i.e. look for lessons given by a certain person or given on a certain date)

Joseki

  • there should also be a nice open Joseki dictionary, where comments and variants may be added quickly

Webinterface

Besides the Client, there should be a nice web-interface to access everything in the database and work with it like in a wiki.

Playing

  • Expand the KGS Room System to a hierachical one with sub-rooms. This way local clubs with their own website, news & announcements, schedules, tournaments and optional membership could be realized by making them a sub-room to a national room.
    • Hierachical rooms could also be used to realize go variants like rengo, one-color go, blind go, keima go, 1000 volt go, ...
  • There should be diffrent ways to start a game:
    • Direct challenges like in IGS, can be turned off or filtered (just accept direct challenges from buddies e.g.)
    • Open a game like in KGS. But additionally to your preferred setting ("best would be 4 dan with 10min & 5 times 20sec"), you can specify a range that you're still likely to accept ("players from 1-dan to 7-dan, time 5 to 15 min...")
    • Between people with open games, there will be some "automated match brokering" like some chess servers offer. So if two players' chosen ranges intersect, UGS will have them challenge each other automatically using the average of their "optimum" settings, for example: "A wants to play between 5 and 15 minutes, optimum would be 10 for him. B wants to play 10 to 30 minutes, optimum would be 16. As there's an intersection, A and B are paired and will be proposed 13 minutes (middle of 10 and 16), which they can still change of course.
  • Offer standard settings for games (e.g. slow, standard, fast) so the UI does not get to clumsy. Make more customization possible in an advanced dialog.
  • Starting the game ought to be easy
  • Divide talk chatter and comments about the game. Latter will be stored, former not.

How precisely would you implement this wish programatically?

Benjamin: I'm not a UI-expert, but I could imagine some ways of implementation, e.g. keyboard-shortcuts and/or choosing mode via click or something. Anyways, as this is just a wishlist for brainstorming, we should start thinking of the detail implementation far later

  • Like on korean servers, there should be play money that can be used to bet on game results like sport bets.
    • Also make it possible to bet on the next move like on IGS.
  • Implement go variants like One-Color-Go, Round-Go etc.
    • There ought to be a good Rengo Interface
  • Allow many different rules and timing settings, though perhaps a sensible presetting should be offered to new players ("Advanced settings"?):
    • New Zealand rules
    • Japanese rules
    • Chinese rules
    • AGA rules
    • Ing rules
    • Fischer time
    • Japanese byoyomi
    • Canadian byoyomi
    • Ing time
  • It would be neat to have a filter option so that only games that fit your filter settings will be shown. Have settings something like this: FILTER OPTIONS: Only show open games by players from _kyu/dan to _kyu/dan. and Show games by unranked players(or guests). With these type of settings, only games that the player was interested in would be shown. That way, for instance, a weak kyu-level player could filter out games by far stronger players and only see games opened by closely ranked players, or a stronger player who wants to teach could only be shown requests for teaching games(teaching game requests could be a special type of challenge or new game).
    • also, like KGS, It should be possible to be in multiple rooms(shown as tabs like on KGS).

Ranking

Benjamin: Right now, at the German Go-web, you can't have a talk without discussing about whether EGF-Rating or just the old system or anything inbetween is the best - and this actually screws me off a bit. On the other hand, when designing UGS, of course we have to decide which kind of ranking system we'd like to use...

  • One simple global system (maybe a mix of IGS and KGS)
    • After install, it should be asked if you're a beginner, and beginners should autmatically get a 30k?-rank
    • Exact ranking (1.458 dan) should be available and its calculation transparent for those who care - the other can (as with all of the features) hide this stuff
    • Maybe there should be "?", "??" and "???"-Ranks
      • "3k???" means you never played yet but set your guessed rank to 3k (like IGS)
      • "3k??" means you already played one or two games, and in one game you defeated a 4k? at least (4k?? might be not exact enough)
      • "3k?" means you played around 5 games, from which your rank can be guessed quite well (say +/- one rank)
      • Benjamin: Now when I think about this again, why not ask some mathematician or rating-freak to calculate an exact "uncertainty" out of your played games (like stddev in statistics). "?" could than mean "at most +/- one rank", "3k" means "3k +/- at most 0.5 ranks" or something like this. I don't know how complicated this is, but maybe one could try.
        • nachtrabe: This is basically what it boils down to with a KGS-style or (IIRC) an AGA-style system (I'm not familiar with the EGF system, so can't really offer comment). It isn't terribly complicated and shouldn't be any more computationally expensive than calculating the rank in the first place.
  • Support some rooms or tournaments to use their own system, e.g. EGF-Rating, pure self-ranking or whatever
    • Harleqin: I think one could then even discard the global ranking system. The supported systems for rank-issuing rooms could also be peer promotion, continuous tournament, series of tournaments etc.
    • Encourage rank-issuing rooms to restrict rated games to certain time boundaries, e.g. a room might want to allow rated games only with Fischer time, basic time 20-40 min, addtime 10-30 sec/move; or they can even say that a specific setting has to be used.
  • Support different rankings for other board sizes / funny go variants, while hiding this stuff most of the time for not confusing anybody.
    • On this note, it is well documented that being able to pick and choose your opponents causes major rank inconsistencies. I recommend two or three divisions such as "blitz", "timed", and "untimed" which support automatic pairing so that you can get ranks that really mean something. So support the funny variants, and support different rulesets, and have disjoint rankings for all. Free games of course could be played with anyone.
    • For players under 20 kyu, the normal rank should be influenced by 9X9-games
    • Do we even need different ratings for different time categories (blitz, normal, slow) or is it too much?
      • starline: I'm definitely in support of different ratings for some smaller board sizes (especially 9x9 and 13x13), as I feel that they represent go and are as valid a form of the game as the 19x19 game. Sure, on the player lists (in the game rooms) the 19x19 rating should be the one on display; but in the players user-info I don't think it would hurt to have the rating for smaller boards on display. The idea that small board games (for players under 20 kyu) will influence the 19x19 rating is interesting, but overall I feel would not be helpful.
        • Benjamin: Agree, for stronger players it's useless to have 9X9 influence global ranking, but for players under 20th kyu I think it's important as on KGS, beginners are pushed to play on big boards too early from my point of view.

nachtrabe: Just to add my 2¢, I kind of like the way KGS does it with Maximum-Likelihood-Estimate based on the current ranks of your past opponents. The pdf KGS assumes also seems reasonable. If I get some time in the next few weeks I'll look at different ways of implementing a few different rating systems and see how they might work out.

  • nachtrabe: Alright, I've produced a quick-and-dirty proof-of-concept algorithm that seems to give reasonable results using the secant method to solve the maximum-likelihood estimate. I'll test it on a larger scale this weekend and see how things turn out. If it is stable I'll post the source code for ya'll to rip holes in. I also have some UML Use-Case diagrams for the server, but need to patch them up a bit before posting them.
  • It should be possible to play in real time through an authenticating proxy server: this means that a) the server should be able to communicate as a webserver on port 80, and b) the client should be able to connect to this server through an authenticating proxy.

Benjamin: What does this mean exactly? What would be the difference/advantage to KGS?

uxs: It means that I would be able to play at work, where internet access is restricted to web servers and where we have to use a proxy server.

Benjamin: Ok, but it means that you still can download and use a Java Client there - or do you wish to make a html-interface that uses just Javascript (or even less)?

uxs: the problem is not the client, it's the port that the client and server are communicating through.

  • Pajaro Seeing what happens in other servers with sandbaggers/escapers, I think it would be very important to start thinking about this now. How will the server deal with and escaper? How to know whether it was intentional or not? How much time before the server decided a result?

nachtrabe: If we do a server calculated rank, then the idea of a delay-to-forfeit for detecting escapers is ineffective because older games are not weighted as heavily as newer games and therefore escaping works as a valid strategy.

Some kind of server-detection-to-immediate-forfeit is okay, but we need to think very carefully about implementation. Maybe something like Dashn?

Another alternative is to treat it as a social problem and simply give an indicator that people can see when they challenge you to a game (similar to the KGS-~). If you stay clean the indicator hangs around for some length of time (or some number of games), and then goes away.

We don't (and shouldn't) decide on any strategy yet, but you are right that it is good to start thinking about ways to handle such common problems earlier rather than later.

I support nachtrabe's "simply give an indicator" concept. Maybe we should call this a "disconnection ratio" or something? We should definitely have an "innocent until proven guilty" mindset, and I always feel bad for people who just have lame connections.

If we simply calculate and store a disconnection ratio (or whatever we end up calling it), we could even offer a dialog to users where they can decide what makes an escaper. You could set, for instance, "Escaper: 0.01", "Disconnector: 0.005". Then anyone who leaves 0.5% of their games under questionable circumstances could get a yellow icon and anyone who leaves 1% of their games could get a red icon. Someone else might be more tolerant or less tolerant, and set their figures accordingly.

Hikaru79: To differentiate between escapers and people with bad connections, we could rely on the honor system. When a person drops a game-in-progress, the opponent is given a choice of marking the game as "escaped" or "disconnected". This will simply be up to the better judgement of the player-- if your opponent mysteriously "disconnects" right after losing a huge group, and typing a few innapropriate words, then perhaps it's safe to assume that s/he is escaping. If it's a fun, interesting game that's still wide open, or if it's against an opponent you know and trust, you mark the game as simply "disconnected." Of course, the flag the opponent puts on the game will have no effect on how the game's result is decided, but it will influence whether or not the player recieves the stigma of the "escaper" icon. There's really not much of an opportunity for abuse with this system. The worst-case scenario would be that a player who is thoroughly disliked by everyone on the server marks all his games as 'escaped' even if it's obvious he's just having connection problems. I suppose that sort of thing could be reported to moderators. Hey, we have to trust our members at least a little, right? ;)

This could be a valuable -- or at least interesting -- social experiment. I'd be curious to see what kind of figures people use for the categories; we could publish averages on the website, maybe broken down by country, gender, age, OS. Maybe there could be another dialog box that lets you mark people for being too strict. "If this guy sets escapers at 0.000000001, I don't want to play him, he's too obsessed!" :-)

starline: This is just a few pennies worth based on my observations of the set-up on KGS. I've noticed that on KGS it is possible to see the opponents game list, and that unfinished games are emphasised in italic. But the system as it stands does not differentiate the person who got disconnected. So here is something that can be corrected immediately. If a person has disconnected from a game (for whatever reason - purposefully or not). Then that game should be given a symbol to make it easily identifiable (or in a different colour or whatever).

Here's my other observation - often it is really easy to tell an escaper based on their game list. There are normally an unusual amount of games unfinished. But normally people will not check this game list because (especially on a slower pc) this is simply too time consuming. But if when a person offers you a game and you can immediately see their game list in a simple and fast way then it will be possible to make a judgement. In addition it could be made possible to write a short explanation (which will also appear in your game list) expaining the reason why you got disconnected from games - e.g. there was a black out or my cat chewed through the phone line.


This is a copy of the living page "UGSWishlist" at Sensei's Library.
(OC) 2007 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About