KGo status updates

Having had no status update of KGo since quite some time, I’m going to fix that now. So what actually is KGo? As the name implies it is an implementation of the traditional Go (or Weiqi) game widely played in Japan an China. We are in luck that we already have a good free Go engine, GnuGo. And even better is the fact that there exists some sort of de-facto standard on how to communicate with Go engines, the GTP protocol. Having all the necessary building blocks at hand I decided to start getting something done and here it is:

kgo-screen-1

This screen shows the setup phase of an recorded masters game where you can setup to start at a certain move and wether you want to replay it versus a go engine or versus another human. Ahh… the version currently in SVN trunk has playing versus an engine disabled (but it is implemented and works) because im refactoring the responsable code at the moment. Loading from and saving to SGF files works nice and I have plans to add support for playing online either via GGZ or the more traditional Go servers but this definitely won’t happen too soon…

Here we have one of the configuration screens and what can be seen is that it is themable (like all the other kdegames) and that you can choose your preferred Go engine backend and get instand feedback if that engine is supported or not (that little green light):

kgo-screen-3

As you can see, the current theme is rather functional and I do have to admit that I used and modified some artwork from KReversi. This shot shows some recommended moves generated by the Go engine backend. In fact nearly all game calculations are done in the backend but this is not as clean as it may sound. The GTP protocol is in state of transition since … years .. and it is missing a lot of necessary things.

So i ended up writing a complete GTP protocol wrapper which implements all the needed tidbits like player management, nice status querying and game board manipulation.

kgo-screen-4

Altough one can use it to play Go at the moment there are still a lot of areas which need improvement. So if you want to help out feel free to grab it from SVN and start testing:

svn co svn://anonsvn.kde.org/home/kde/trunk/playground/games/kigo kigo

Stay tuned …

Update: I just decided rename it to Kigo, took quite a bit of time but it was just commit back into SVN.

25 thoughts on “KGo status updates

  1. That is so great !!

    I currently use the old qgo to play Go on the internet (IGS server). Your program looks really great, I can’t wait to see it with internet game capacity.

  2. Great, by the way is there some coordination with the tagua-project (if that still exists)?

    Keep up your good work!

  3. Didn’t know that this exists.. Nope, not currently and doesn’t look very active at the moment, the last changes there date back to april ..

  4. Hello. I’m extremely concerned about this program’s name, as I’m brazilian, and in brazilian portuguese (our language) the common way we pronounce this program’s name sounds just like a very rude expression (it means “one relieved him/herself” or “one pooped” in a very derrogatory way). Please, if possible, change this programs name to something else, like KdeGo, Kigo (Igo is an alternative name to Go in japanese), baduK (korean), weiKi (chinese), Kigo has in portuguese a way better conotation (it means “what a good/wonderful Go!”).

  5. Uh hard, thank you for all those naming recommendations and I am beginning more and more to favor Kigo, it sounds much more fluent than KGo. The latter kind of overstresses the ‘K’ a bit 🙂

    Will have to think a bit about it …

  6. Fantastic work! Please make this a truly kick-ass Go client that can compete with the Kiseido go client’s user experience. I’m a long time Go player and really want to use a native client for my playing.

  7. I’m in favor of a change name too. KGo doesn’t sound well. For the rest, keep up the great work 🙂

  8. Congratz, nice layout =) I love to play go. I play in kgs my nickname is xikkuh, see you there.

  9. Great work Sascha, much appreciated! Kigo sounds more interersting than KGo. Tagua is the same engine I wrote you about in a private email in July – too bad it’s dead as it would likely reduce some code duplication between KGo/KReversi/KChess(?). Please rock on!

  10. I have attempted to learn how to play Go quite a few times but due to its complexity I failed every time. Is there any easy way to learn how to play? Maybe a tutorial mode or something?

  11. WOW! That looks fantastic. One thing though, can you have a more wooden looking background?

  12. Yeah, a wooden background and a more realistic board would be great. Unfortunatly I’m no great artist but it is really easy to create a custom theme. You just need to grab the SVG image in the KGo/Kigo source folder and edit it with Inkscape or Krita and if it turns out to look great I would be glad to include it 🙂

  13. Awesome! Just this morning I found myself bemoaning the lack of a Go client that made use of qt4. I’m looking forward to following this project.

    Oh and Zarin, you might try ‘the way to go’ by Karl Baker. But there are many good intros to Go; a Google search would be beneficial. And best of luck.

  14. Yeah, it looks great in svn. My only pain point with it is the gnugo / GTP integration. Having to enter command line options for a third party app in a GUI app seems … a little odd =) In fact, as someone not familiar with gnugo at all I found it very awkward and difficult to get going.

    Is there any way of improving that part of the experience?

  15. Awesome work sashpe! Great name too by the way (my name is Sacha :P).
    Great idea with the name change. A lot of people get annoyed with KDE programs just starting with ‘K’ making it look ugly/harder to pronounce. Actually making it a word like ‘Kigo’ sounds awesome.

  16. I would have preferred a non K-name. I use Krunner to launch apps, and if all apps start with an K, it means I have to type more to launch apps.

    Same thing with Kickoff and the like. the user can’t really scan the list of apps by the first letter only, they have to keep reading to second and third latter, since all (well, not ALL, but many of them) apps start with the same letter.

  17. For the ‘Go Backend’ dialog, could you change it to be a dropdown to let you select different backends along with a (closed by default) expansion thing that has the advanced options.

  18. Thanks for all the positive feedback. The ‘Go Backend’ area will definitly have to be streamlined a bit, I think John Tapsell’s idea is great, will adopt it as soon as there is time.

    Ah and the ‘K’ thing, there’s maybe a bit of ‘K’ overuse in the KDE world, same goes here, but I somehow have to give attribution to that beautiful desktop environment and the application platform, what can be better than using a part of the parent’s name for naming children 😀

  19. “but I somehow have to give attribution to that beautiful desktop environment and the application platform”

    Well no, you don’t HAVE to give them attribution ;). But if you want to, you could do it using other means. People know that Evolution (for example) is a GNOME-app, even though it’s not called Gevolution.

    If you do want to use the letter “K”, how about not using it as the first letter, but somewhere else in the name? Like what Amarok has done.

  20. I think the K-branding in its self is a good thing. I can understand having less of it in the big KDE apps (Dolphin etc) but for the various KDE games it is good it says simply “this is the KDE games version of Go”.

    No, I’ve changed my mind, if all of the KDE games dropped the “K” that would probably be nicer. The main thing though is consistency. Perhaps the KDE-games folks could make a joint decision about this.

    On reusing graphics, I’d say the more KDE games share graphics resources (where appropriate) the better. Why shouldn’t a black stone (or a die or a playing card) look the same in different games.

    Finally. Currently you have a menu for “human” or “computer” and then select a single back-end. Would it be possible to register multiple back-ends then just select which one you wanted to play against from the drop-down menu, or even play two different engines against each other. With a menu like “human”/”gnuGo”/”evil_go”/”register new engine…”

  21. Oh and also, great work, this looks nice and is something I was really hoping would turn up in KDE games. Thanks

  22. you first have to build it (aka create a binary executable for your system) before you can start Kigo. If you know how to accomplish this, no probs here, otherwise you should wait for ready-made packages to appear for your system. I personally plan to have a release in about the KDE-4.2 release time.

    Stay tuned 🙂

  23. Thank you Sascha,

    I’ve puzzled out most of the build fun& game. Gonna wait for the package. Looking forward to playing. Thanks for your work on this.
    Carl

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.