Skip to content

dango.lua is a cross platform lightweight Go board ⚪ ⚫

License

Notifications You must be signed in to change notification settings

gsobell/dango.lua

Repository files navigation

dango.lua 🍡

dango.lua is a cross-platform, lightweight Go board

dan•go [だんご]
noun

  1. A Japanese dumpling made from mochiko (rice flour)
  2. A Japanese go term, meaning "dumpling shape"; a solid mass of stones without eyes, and with few liberties

Motivation

To make a no-frills Go client that supports GTP engines out of the box.

A lightweight, cross-platform alternative to Sabaki, especially for embedded systems that don't have the resources for an Electron-based program.

Build

Still a work in progress, basic game is implemented:

git clone https://github.com/gsobell/dango.lua.git && cd dango.lua
make
love ./

Requires: LÖVE 2D

Installation

Work in progress, for now see build above.

Planned:

Platform specific binaries to be available under Releases in the future.

There are three default profiles, automatically detected at runtime:

  1. Desktop - cross-platform, mouse and keyboard
  2. Touchscreen - Phones, tablets, and eInk Tablets
  3. Embedded - RetroArch or Ludo

Lutro compatibility mode

For the third category, care was taken only to use the API implemented by Lutro, a subset of LÖVE 2D. This will allow dango to run on any embedded device that supports Libretto's RetroArch. (i.e. handheld console, TV, smart toaster, etc.)

Controls

Navigate with arrow keys, vim keys, or mouse. Click, enter or space places a stone.

Keyboard shortcuts:

  • n : new game
  • u : undo
  • p : pass
  • esc : exit

Features

Current

  • Any size board
  • Stone and group capture
  • Legal move detection
  • Adjustable scaling for board, grid and stones
  • GTP protocol
  • Ko
  • Undo

In Progress

  • SGF Import/export
  • Zero configuration GTP engines

Future

  • Menu
  • Profile auto-detection
  • Branching game tree
  • Themes
    • eInk theme
    • Low-res theme

See TODO for the project roadmap.

Supported GTP Engines

While any and all GTP engines should work, some require additional setup:

Engine Linux Windows Android macOS Embedded Notes
gnugo
pachi
michi requires python2
lichi in development
ray
katago eigen cpu, openCL on AMD GPU tested
leela zero

✅ = just works

⬜ = untested

❌ = not available on this platform

See also:

dango - a nCurses Go board for the terminal


Made with LÖVE

About

dango.lua is a cross platform lightweight Go board ⚪ ⚫

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published