Note: Still in the very early stage, don't expect to be stable.
The README is in both English and 简体中文. The repo is on both Github and Gitee. And it's about the game of Go/Baduk/Weiqi, GoTextProtocol(GTP), SmartGameFormat(.sgf), KataGo, Leela-Zero, GNU Go, Julia, PlotlyJS.jl, Dash.jl, Markdown, ScalableVectorGraphics(.svg), Regular Expression, etc.
VastGo is
- A multi-platform Go GUI that can run on Windows, Linux, Android and perhaps FreeBSD, MacOS, IOS, HarmonyOS.
- Based on Dash.jl, PlotlyJS.jl, JSON3.jl and modern or classic GTP engines.
- Written in pure julia and under the MIT license.
Design:
DATA
Players <<<======>>> components
|| /\
c||b ||
a||a c||b
l||c a||a
l||k l||c
||s l||k
|| ||s
\/ ||
functions <<<======>>> Bots
DATA
Ideas:
- funny: nonstandard Go, BEAT AI RIGHT NOW
- green: uses playtime data to first review, LESS EXCESSIVE COMPUTING LESS CO₂
- simple: doesn't know Go, uses GTP command
showboard
, LESS CODE LESS GOTCHA - useful: game tree - score curve, 3D ownership, spline style, f'(x), f"(x), RICH AND POWERFUL PLOT
- compatible: SBKV for winrate and OGSC for score, THE SAME SGF AS Sabaki AND Ogatak
Be careful: avoid repetition to existing site/software, i.e. boardspace/kahv/littlegolem, and can be played/analyzed by corresponding bot/AI
Status
software | computer | phone |
---|---|---|
julia | >= 1.6.7 | 1.6.7 - 1.7.2 or 1.9.x |
KataGo | PASS | PASS |
Leela-Zero | fail | fail |
GNU Go | fail | fail |
mode | boardsize | stateinfo |
---|---|---|
Blind Go | 2² - 19² | PASS |
One Color Go | 2² - 19² | PASS |
Phantom Go | 2² - 19² | PASS |
Magnet Go | 19² | captures, move history |
Hard/Software requirements
Hardware:
- Free HardDisk >= 5GB
- Total Memory >= 8GB
Julia, packages and this repo:
- download and add julia into path
- run julia in cmd/shell/terminal and you will enter julia REPL-mode
shell> julia
- enter julia Pkg REPL-mode
julia> ]
- install packages
(@v1.9) pkg> add Dash PlotlyJS JSON3 PackageCompiler PlotlyBase
- download this repo
KataGo, Leela-Zero, GNU Go: (If you don't have them yet...)
in terminal——run src/terminal.jl
- edit
data/config.toml
to indicate the command of running a bot, the directory where to run the command and a name to call it, e.g.
["ko"]
cmd = "./katago gtp -model elo9000.txt.gz"
dir = "../KataGoOpenCL/"
Note: DO NOT use -q
in Leela-Zero's command, since showboard
will GONE.
- run
src/terminal.jl
with a bot's name, e.g.
shell> julia src/terminal.jl ko
- wait until
[ Info: GTP ready
- type following strings to play a Go game
1 play B k10 # (id) command arguments
2 genmove W # see GoTextProtocol for details
3 showboard
genmove B
5 play W c3
10 showboard
...
3 final_score
quit
in browser——run app.jl
- run
app.jl
shell> julia app.jl
- wait until
[ Info: Listening on: 0.0.0.0:8050
- open one(only one) browser and type
localhost:8050
in the address bar to play - type
exit
in terminal to exit the program
on Android
Because Android phones are arm and not x86-64, you need more steps:
- download and install Termux
- install ubuntu in termux
- download julia for Generic Linux on ARM, Note: instead of x86-64, use aarch64 or armv7l
- download and compile KataGo engine via 9 commands
Now the same as on x86-64.
uninstall
uninstall julia, packages and this repo:
- Julia does not install anything outside the directory it was cloned into. Julia can be completely uninstalled by deleting this directory.
- Julia packages are installed in
~/.julia
by default, and can be uninstalled by deleting~/.julia
. - Delete this repo.
uninstall KataGo, Leela-Zero, GNU Go: (If you don't use them anymore...)
sudo apt remove leela-zero gnugo
sudo apt autoremove
- delete KataGo's engine
- delete KataGo's and Leela-Zero's networks
- Why create this?
- Why so slow?
- Julia's compiler sort of optimises code, and it takes time.
- Reuse the compiled work via sysimage.
- Why Julia?
- Why Plotly(JS) Dash?
- More interactive features than the others.
if sourceCode in contribution
@goto Issues
else
@goto Discussions
end
@label Issues
browser("https://github.com/HackYardo/VastGo/issues")
@label Discussions
browser("https://github.com/HackYardo/VastGo/discussions")
- my Markdown Cheat Sheet
- GTP Check list
- Structures of Go, Go APP, VastGo
- static Go board state matrix
- Julia Style Cheat Sheet