Miniature

Line 3: Line 3:
== The concept ==
== The concept ==
-
''Draft.''
+
''(Draft.)''
* The main use case is playing online against other players at freechess.org
* The main use case is playing online against other players at freechess.org
Line 25: Line 25:
== Roadmap ==
== Roadmap ==
-
''Draft, sorted by priority.''
+
''(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.
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.
Line 64: Line 64:
# Download and select different engines.
# Download and select different engines.
-
=== Play with other opponents P2P e.g. via Bluetooth ===
+
=== Methods of connectivity to play against human ===
 +
# [[Bluetooth]].
 +
# [[WLAN]].
 +
# [[GPRS]].
=== Learn chess lessons with moves + text ===
=== Learn chess lessons with moves + text ===
Line 72: Line 75:
=== Play against computer ===
=== Play against computer ===
 +
# TODO: Which engines???
=== Chess variants ===
=== Chess variants ===
Line 77: Line 81:
* [http://en.wikipedia.org/wiki/Chess960 Chess960]
* [http://en.wikipedia.org/wiki/Chess960 Chess960]
-
=== Display games by you or others, live or stored ===
+
=== Recording to log, playing back a log ===
-
(moved to back since [http://talk.maemo.org/showpost.php?p=364101&postcount=58 Chessmonk] is concentrating on this for Maemo 5 => not that urgent for Miniature)
+
Display games by you or others, live or stored
 +
 
 +
Low priority: [http://talk.maemo.org/showpost.php?p=364101&postcount=58 Chessmonk] is concentrating on this for Maemo 5 => not that urgent for Miniature)
# History of an opening.
# History of an opening.
# Take a picture of a printed game, process the notations with OCR and display it.
# Take a picture of a printed game, process the notations with OCR and display it.
# Display several games at a time.
# Display several games at a time.
# Watch game via webcam stream
# Watch game via webcam stream

Revision as of 20:27, 8 November 2009

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