[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gnubg] Web version of GNU Backgammon

From: Joseph Heled
Subject: Re: [Bug-gnubg] Web version of GNU Backgammon
Date: Thu, 26 Sep 2019 22:23:01 +1200

A nice 2d Board will be more that useful...

On Thu, 26 Sep 2019 at 22:03, Jon Kinsey <address@hidden> wrote:
The OpenGL 3d board is theoretically portable to WebGL. In practice this is likely to be difficult... I’ll take a look, but I have little free time so will be a while before I report back on my initial findings.


On 25 Sep 2019, at 16:44, Guido Flohr <address@hidden> wrote:

On 24 Sep 2019, at 23:07, Philippe Michel <address@hidden> wrote:

The current GUI is probably inadequate for a phone or a tablet, but it
would be nice if gnubg would be usable this way (even with some
limitations) on chromebooks or on platforms where building it is
getting complicated (like Macs...)

At the risk of being off-topic I would like to share some experiences I have made with a somewhat similar project for chess: https://github.com/gflohr/lisco

Lisco is a chess UI completely written in _javascript_. The UI is using Electron (like Microsoft Visual Studio Code) and is therefore truly cross-platform. With truly I mean that it not only works everywhere but also looks nice everywhere, for example on my Mac but you can also run it in a web browser. At its current state, lisco is only a proof-of-concept but you can already play a game of chess against the open-source engine Lozza. If you look in the source code, you see how you can change the settings to play against other engines embedded into lisco like Stockfish or Tomitank or even let them play against each other.

Doing this for chess is trivial compared to backgammon. You mostly have to wire together chess engines transpiled into _javascript_ with your view via protocol adapters. On the engine side you have the Universal Chess Interface UCI and the Xboard protocol aka CECP. Both protocols are pretty bogus imho but they are universally supported and implementations (protocol adapters) exist for a wide range of programming languages including _javascript_. In other words, you don’t have to write the ugly telnet stuff yourself.

On the UI side, almost all chess analysis programs just use UCI, CECP or both and this is a well-established technique. Lisco is just one example for this.

Back to backgammon: I know that it would be very hard to cleanly separate the UI and the engine part of GNU backgammon. Most of the code was written at a time, when MVC or MVVM patterns were still unknown.

But it should be feasible to add preprocessor directives and change the build so the so that you can conditionally compile and build a headless version of the engine. I know, there is already a telnet interface to gnubg. Only from my experience with another project https://github.com/gflohr/BaldLies I remember that the telnet interface is not exactly nice to use. It probably needs some polishing and formalization in order to turn it into a protocol that is easy to use.

I would even go as far as saying that throwing the gnubg UI away altogether is also a viable option. Yes, it is nice and there is a lot of work in it. On the other hand it suffers from bit rot and it is an obstacle to porting gnubg to other platforms, where the UI may not even be needed. To boot, it only works on the desktop and will probably never work on mobile devices (unless somebody does a major rewrite).

Look at chess where you have the choice between hundreds if not thousands of different engines that you can use to analyze your play or let different engines compete. I am sure a lot of people would happily trade the 3D board for such options, especially when it is easy for UI developers to code a new user interface. And what about a11y, by the way?

Remember the now discontinued iOS version of gnubg? It was a great success although it replaced the UI completely and lacked a lot of features compared to the desktop version. But it had made gnubg available to zillions of iOS users. The author seemed to be unable to maintain the project so that now there are tons of other apps that look fancy but play lousy backgammon. And that situation could really be improved, also for Android, as the strength of the gnubg project is imho on the AI side, not on the UI side.


Bug-gnubg mailing list
Bug-gnubg mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]