Click here to Skip to main content
Click here to Skip to main content

Tagged as

Chinese Checkers for AIO

, 3 Sep 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
Multi-player Chinese Checkers game, designed to show off the table mode of the AIO device.

Please note

This article is an entry in our AppInnovation Contest. Articles in this sub-section are not required to be full articles so care should be taken when voting.

Platform & Category

Lenovo Horizon All-in-One - Games.


Chinese Checkers is a traditional game for 1-6 players -  The intention is to implement this game on the AIO with a user interface that makes good use of the AIO's unique features.


The tabletop mode is perhaps the most unusual feature of the AIO device.  As has been noted, this lends itself to the playing of board games.  Multi-player games in particular benefit from this format, as it promotes the strong analogy of a group of people sitting around the device, much as they would be sitting around an actual board.


Rather than start from scratch, one or more existing, open source implementations will be used as a starting point.  After some preliminary investigation, the following version - - is a strong candidate for this role.

Cheech is a portable implementation, written in C++, which relies on GTK+ for its user interface (including on MS Windows).  In porting it to the AIO, the most likely approach will be to factor out all of the UI code from the game logic, so that GTK and non-GTK versions can be built from the same source. (Although, it may prove appropriate to keep some elements of the GTK code, even on the AIO.)

Cheech allows network play against human opponents and also features robot players.  The intention is to maintain these features, and indeed to allow the AIO version to be used in networked mode in combination with other versions (which could be remote opponents, but could equally be people in the same room, preferring to use their tablets, smartphones or other devices, rather than cluster around the AIO). 

Cheech does not, however, currently allow more than one human player on the same device.  This feature ought to be straightforward to add, and would belong in the main branch, rather than in the AIO-specific development. 

Points of Interest

In table mode, with a group of people using the AIO simultaneously, the familiar desktop metaphor is no longer applicable.  None of the users should be considered as having primary control of the system, and there is no logical top, bottom, left or right of the screen. Ideally, the user interface should work equally well whatever angle you approach the screen from.  

So the desktop metaphor must give way to something new - a coffee table metaphor!  This concept comes across in the Lenovo promotional material showing the 'Aura' interface, but seems to be limited in its scope to the accessing of image galleries, etc.

A possible approach for the translation of any traditional menu or toolbar to this multi-user format is to implement it in a circular fashion, similar to the Aura interface.  As well as making whatever selections they wish, a user could orient such a circular menu towards themselves with a rotational gesture, removing the 'which way is up?' problem.

In some cases it might be appropriate to have a single menu at a particular location on the screen, which all users must share.  In other cases each user could be given the ability to invoke a menu at any screen location by means of a gesture (such as expanding finger and thumb, indicating the desire to expand a menu instance).  

In the case of Chinese Checkers, the star shape of the board also presents some interesting design opportunities, allowing the circular theme to be further developed -  

A circular representation of a physical board can be rendered in the center of the screen, with the star-shaped playing area upon it.  Rather than require that the players position themselves so that they are aligned with the layout of the board, or require that they physically shift the AIO device in order to line up with where they are sitting, they can rotate the virtual board with a gesture (just as they can rotate the circular menus described above). 

The circular menu/toolbar to control the game could also be integrated into the board itself, so that a gesture would cause it to appear around the board's circumference.  Testing this and other configurations with real users would be the best way to determine what is the most desirable menu interface.   

Development Plan

A rough breakdown of the development steps is as follows -

  1. Set up a build environment for the existing Cheech source code.
  2. Investigate some of the other open-source Chinese Checkers implementations to see if any elements can be combined.
  3. Add the missing support for multiplayer on a single device to Cheech (keeping the GTK interface)
  4. Carry out the necessary separation between game logic and user interface.
  5. Implement the AIO-specific user interface using native Windows APIs.


  • First version.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Colin McConnell
Software Developer
United Kingdom United Kingdom
Experienced software developer, with a varied history, dating back to a computer science degree in 1987.
Have worked on in-house projects in the energy, PC networking, and banking industries. My work has involved analysis/design and occasional team leading, as well as a great deal of coding.
Technical background mainly comprises C/C++ under both Unix and MS Windows, but also a number of other technologies and languages.

Comments and Discussions

GeneralMy vote of 5 PinmemberVolynsky Alex4-Sep-13 2:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.141022.2 | Last Updated 3 Sep 2013
Article Copyright 2013 by Colin McConnell
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid