Miniature

You love chess. You love Maemo and its devices. You believe they fit so well... yet you haven't found a convincing implementation of a chess game for Maemo. Miniature to the rescue!

Contents

The concept

(Draft.)

  • The main use case is playing online against other players at freechess.org
  • Now imagine that you can also chat with the other player.
  • Playing against the computer is a given (chat is optional)
  • Learning is important and it would be great to watch games, review stored games and also process offline the lessons given at certain times in freechess.org
  • Connectivity: play against other player with a compatible protocol and/or device via WLAN or Bluetooth.
  • Variants: I guess if we got at this point then implement variants such as suicide chess, random house, etc is peanuts.

Basing this on Qt 4.6 would be useful to assure the Fremantle - Harmattan path, be fully compliant with whatever the Ovi store brings and have ports for Symbian, Windows Mobile and desktop OSs (Linux, Windows, Mac).

Features

None for real users yet. Miniature is just few days old and we are defining the features of the first relase.

Check Miniature/Development to follow the latest status and to get involved.

Screenshots

This is how the real application looks like, while being still under very initial and heavy development. Check the mockups in order to see how things should look like in the future.

http://taschenorakel.de/pictures/screenshots/2009/11/08/miniature_on_n900.jpg

Roadmap

(Draft, sorted by priority.)

Items with "?" are to be decided upon once we focus the discussion on them. These items might be moved to later phases of development, or removed from the roadmap altogether.

Play games online

  1. Chess game basics, demonstrated off-line.
    1. Finger friendly UI.
      1. Mechanism to avoid false moves. First tap to point square, second to confirm?
      2. TODO: extract all move mode proposals from thread so we can evaluate them while comparing working examples.
    2. Portrait mode.
      1. TODO: find out why "setAttribute( Qt::WA_Maemo5ForcePortraitOrientation, true); setAttribute( Qt::WA_Maemo5ForceLandscapeOrientation, false);" is not sufficient (used git master from here, but it now says: "don't use it". Perhaps this just works now?)
    3. Pieces can be moved manually.
    4. Only legal moves are possible.
      1. Option to highlight legal moves?
      2. TODO: draw a sequence diagram or similar to demonstrate the necessary interactions between remote server, our game component, and the board representation. Also indicate how the user is notified.
    5. "Black/White Wins!" banner after a match.
    6. Resign.
    7. Pawn promotion, piece selection.
      1. Queen auto-promotion?
    8. Draw request/accept.
    9. Timer
      1. Time limit warning?
  2. Online chess basics, targeting http://www.freechess.org/ first
    1. Log in & out
    2. Register
    3. Search challengers / by time
    4. Propose a game
    5. Timeseal support.
  3. Online chess advanced
    1. Join tournaments
    2. Full access to FICS console (might make sense only in landscape mode)

Chat with your opponent

  1. Landscape support.

Customization

  1. Download and select different boards and pieces.
  2. Download and select different engines.

Methods of connectivity to play against human

  1. Bluetooth.
  2. WLAN.
  3. GPRS.

Learn chess lessons with moves + text

  1. Positions can be set manually.

Play local tournaments e.g. via Telepathy Tubes

Play against computer

  1. TODO: Which engines???

Chess variants

Recording to log, playing back a log

Display games by you or others, live or stored

Low priority: Chessmonk is concentrating on this for Maemo 5 => not that urgent for Miniature)

  1. History of an opening.
  2. Take a picture of a printed game, process the notations with OCR and display it.
  3. Display several games at a time.
  4. Watch game via webcam stream