Hi there,

I started on a JavaScript engine quite some time ago :) At the time for
a Mozilla competition but didn't quite complete it. It is already
parallelized through web workers (performance + otherwise you get the
busy JS popup etc.).

https://github.com/PragTob/web-go

It is written in CoffeeScript (http://coffeescript.org/) though :)

It does work (MCTS UCT, no RAVE - yet), is still sort of weak though and
has a couple of problems:

- I implemented incremental liberty counting and I believe I introduced
a bug in the process :'(
- the data structures are inefficient/too memory heavy (2d Array and I
often create small objects) and so it sort of blows up memory (every web
worker has its own context and lands at ~400/500 MB) and the Garbage
Collection due to the many objects slows overall performance down
significantly
- random move choice is wayyyy too stupid (like super stupid right now)
and could be sped up considerably
- no heuristics/heavy playouts yet

Currently I'm not working on it, as I work on my Ruby(*) Go-Engine for a
presentation at rubyconf ( https://github.com/PragTob/Rubykon ). Getting
back into the Go game and reading the code of michi
(https://github.com/pasky/michi) and implementing the ruby one I also
realized some of the things I did wrong in the CoffeeScript one and how
to correct it.

I want to get back to it eventually, but I might also want to do a
Crystal (http://crystal-lang.org/) port of my Ruby engine before.

If someone wants to work on it I'm happy to write some good issues -
right now it's still not really "released" - it's more my playground.

Cheers,
Tobi

PS: Sorry for the long post :)

(*) - if you wonder about someone implementing Go engines in way too
slow languages like Ruby/JavaScript - it's fun, a hobby and I want to
see how far I can push boundaries and how fast they can get :) Also I
think it's nice benchmark for language implementations or inbetween
languages (if same algorithms/heuristics are used)

On 10/16/2015 01:41 PM, Ben Ellis wrote:
> I made a start on this but I decided to start over as I didn't like
> the data structures I was using and my unit test coverage wasn't good
> enough for me to debug problems effectively.
>
> My goal was to make an program that was suitable for beginners (beat a
> double digit (ideally 12k) player) and that could play using different
> rule sets (Ing, AGA, Japanese, Chinese, etc)
>
> I would be interested in starting again or contributing to an
> open-source javascript implementation should you have one started already.
>
>
> On 27 August 2015 at 02:28, Daily Pro Go <[email protected]
> <mailto:[email protected]>> wrote:
>
>     Short version: Is anyone aware of any attempts at writing a
>     program to play go in javascript?
>
>     Long version: I am a longtime (4-5dan) go player and hobbiest
>     programmer and wanted to try exploring some of the challenges
>     around writing a go playing program. However, javascript is by far
>     my strongest coding language and I didn't think it would be wise
>     to dive into a less familiar language at the same time I'm
>     learning about lots of other new things like MCTS. I know there's
>     a performance penalty for a language like js, but since my first
>     attempts will probably be quite crude anyway, this seems like
>     something I can defer until later. With all that said, do you know
>     of any other js go playing programs that could provide some good
>     initial stubs/ideas as I try to dive in? I'd be particularly
>     interested if anyone has already made a link between gogui and a
>     javascript program.
>
>     Thanks!
>
>     _______________________________________________
>     Computer-go mailing list
>     [email protected] <mailto:[email protected]>
>     http://computer-go.org/mailman/listinfo/computer-go
>
>
>
>
> _______________________________________________
> Computer-go mailing list
> [email protected]
> http://computer-go.org/mailman/listinfo/computer-go

_______________________________________________
Computer-go mailing list
[email protected]
http://computer-go.org/mailman/listinfo/computer-go

Reply via email to