KGS Leben is a client for the KGS Go Server, written for modern, standards-compliant web browsers such as Chrome, Firefox and Microsoft Edge. It connects to the server via the JSON API for KGS and has no other dynamic, server-side dependencies. The source-code for the client is released under the MIT License and a list of contributors and noteable people can be found in the root of the source tree.
The KGS Leben project is only a few months old and not presently suited for general consumption. The following features have been implemented:
- Spectating -- Games played by other people can be joined and the user can watch as play continues. Kibitz messages sent to the chat box will be broadcast to other spectators in the channel but the chat feature is currently non-functional in game channels so the user will see neither these nor the messages typed by others.
- Game Playing -- Once a game has started in which the user is a player, the user can play moves, pass, resign, win and lose on time and mark live and dead groups, should the game proceed to the scoring phase, and agree on the game's result. Sound cues are played for stones and pass moves.
- Joining open Challenges -- The user can join an existing game challenge in a room, negotiate the terms of the game via the usual dialogue and proceed to play.
- Auto-match -- On the Home view, in the sidebar, a selection of controls allows the user to set their preferences for the automatic match-making queue and provides a button to join (and leave) the queue. Preferences are synchronised with the server automatically.
- Chatting in Rooms -- Conversing in rooms is operational in both directions. Upon a successful sign-in, the user will join the rooms that they were in when they last signed out of the server, from the Leben client or the legacy one, Cgoban. Joining new rooms is not implemented simply because no room-list screen has been created - behind the scenes, work to do this is complete.
KGS Leben is currently on hold. That is to say, I simply do not have time to work on the project at present due to a career-related change in priorities. Ilya Kirillov's Go Universe looks like another promising project for Go players to follow.
Development dependencies are limited:
- Node.js and its package manager, NPM
- Sass for convenient and maintainable style-sheets
- Gulp is used as a flexible and scriptable build system
- Mocha provides a framework for testing domain models and algorithms
##Building the Source
Prior to compiling artefacts to be served, one must first install Node.js and clone the source repository. Thereafter, simply follow the instructions below. (Command-line commands should be executed relative to the root of the cloned source tree; paths are also relative.)
Use NPM to fetch the dependencies and development dependencies defined in package.json
Execute the build script defined in package.json. This will run the Gulp task: build
npm run build
A sub-directory named
distwill be produced, containing all artefacts required to host KGS Leben.
##Running the Unit-Tests
The suite of automated tests for various domain models and algorithms within the project, powered by Mocha, can be built and executed with a single NPM script:
##Serving KGS Leben
Any HTTP web-server should be able to serve the KGS Leben web application but the path to the JSON API is currently not configurable so the ability to serve Java Servlets is also required. Apache Tomcat is recommended. The web-server must be configured to serve two routes:
/should route to the static content found in the
distsub-directory produced by the build script
/jsonClient/should route to the KGS JSON Client Servlet (distributed as a .WAR archive)