EidoGo

    Keywords: Joseki, Online Go, Software

EidoGo is a web-based SGF replayer and joseki tutor. Its homepage is [ext] http://tin.nu/eidogo/. It is open source under the [ext] BSD license (GPL option available if you ask) and has a Google Code project page at [ext] http://code.google.com/p/eidogo/. It is written and maintained by Justin Kramer.

EidoGo is pure HTML and JavaScript--no Java applets. It can be plugged easily into any page and can read raw SGF data. It takes advantage of modern web development techniques such as semantic HTML, DOM scripting, and Ajax. It works in Firefox, Internet Explorer 6 and 7, Safari, and Opera.

By default, EidoGo loads Kogo's Joseki Dictionary. It can also replay regular games. For example, [ext] http://tin.nu/eidogo/blood_vomit.

Current features:

  • Small footprint, speedy load time and interface
  • Easy variation selection with the keyboard. Variations can be selected using 1-9 or, if the variation move has a label, using the label's first alphanumeric character (A, B, C, etc).
  • Ability to play out your own variations (of an existing game or on a [ext] blank board)
  • Markers and labels
  • Direct hyperlinking to board positions; e.g., [ext] http://tin.nu/eidogo/kjd#0,1,0,7,4,0 and [ext] http://tin.nu/eidogo/blood_vomit#0,71
  • Supports 9x9, 13x13, and 19x19 board sizes
  • Keyboard shortcuts: right and left arrows for forward and back. Hold shift to skip 10 moves. Down arrow to jump to the end. Up arrow to jump to the beginning. Backtick (`) for pass.
  • Skinnable -- its visual presentation is controlled entirely by CSS.
  • Slider navigation (only for regular games -- i.e., not with KJD)
  • Internationalization (i18n) -- currently only English and Portuguese (translations welcome)

Planned features include uploading, editing, and full FF[4] SGF support, among others.

The name comes from the word [ext] eidetic and the Greek root eidos.


Latest Updates

version 0.6

This release made some important strides towards making EidoGo a full-featured web-based SGF editor and game player. You can now actually play moves on the board as opposed to just replaying existing moves and variations. I'm attempting to keep the code clean, organized, and modular even as more complex features get added.

Internationalization support (i18n) also got added thanks to Halan Pinheiro's efforts.

I've begun experimenting with adding a Gnu Go-based computer opponent that you can play against through EidoGo. The biggest challenge is interacting with the gnugo executable in a way that works within the stateless HTTP paradigm. My current strategy is:

  1. serialize the current game state (right now I'm just converting the game tree to SGF) and pass it to to a server-side script (PHP)
  2. invoke the gnugo process
  3. provide the process with the game state (via command-line argument? standard input?)
  4. get an appropriate (hopefully non-error) response
  5. show the response on the board

I have a semi-working prototype that covers steps 1-4 but I'm not really happy with the setup yet. It's surprisingly difficult to interact with (read/write to) a process through PHP when it doesn't give you instant feedback.

There's an existing Gnu Go-based CGI here: [ext] http://jeudego.org/cgi-bin/gnugo -- but there's no source available, so it's not really any help.

Meanwhile, several basic features like player time and compressed point lists got put off since they're less interesting. I may also need to rewrite the way game state and history get handled so that captures are a part of the Player class instead of the Board class. Since this is a pet project I can obsess over design details like this.

Update: I uploaded a "first draft" working version of GNU Go integrated with EidoGo: [ext] http://tin.nu/eidogo/gnugo (9x9 and 13x13 also available in the top menu)


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