|
|
(96 intermediate revisions not shown) |
Line 1: |
Line 1: |
- | 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!
| + | {{Miniature}} |
| | | |
- | == The concept ==
| + | '''We are moving to http://miniature-chess.org/''' |
- | | + | |
- | More or less:
| + | |
- | | + | |
- | * 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
| + | |
- | * A variant would be to play against othe player with a compatible device via local network or bluetooth.
| + | |
- | * 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).
| + | |
- | | + | |
- | == Project status ==
| + | |
- | | + | |
- | Kicking off. Nothing exists. Just a [http://talk.maemo.org/showthread.php?t=33764 Talk thread], a [https://garage.maemo.org/projects/chess/ Garage project] and this wiki page.
| + | |
- | | + | |
- | == Mockups ==
| + | |
- | | + | |
- | These are the current sketches.
| + | |
- | | + | |
- | [[Image:Miniature-playgame-portrait.png|frameless|caption]] [[Image:Miniature_normal_mode.jpg|frameless|caption]] [[Image:Miniature_normal_options.jpg|frameless|caption]]
| + | |
- | | + | |
- | | + | |
- | === Old ;) ===
| + | |
- | | + | |
- | [[Image:Miniatura-playgameh.png|frameless|caption]] [[Image:Miniatura_alternative.png|frameless|caption]]
| + | |
- | | + | |
- | == Current features ==
| + | |
- | None. Minuature is currently vaporware. :(
| + | |
- | | + | |
- | == Roadmap ==
| + | |
- | Draft. Sorted by priority.
| + | |
- | | + | |
- | Items with "?" are optional/dubious and might be moved for later phases of development or removed from the roadmap once we focus the discussion on them.
| + | |
- | | + | |
- | === Play games online ===
| + | |
- | # Chess game basics, demonstrated off-line.
| + | |
- | ## Finger friendly UI.
| + | |
- | ### Mechanism to avoid false moves. First tap to point square, second to confirm?
| + | |
- | ## Portrait mode.
| + | |
- | ## Pieces can be moved manually.
| + | |
- | ## Only legal moves are possible.
| + | |
- | ### Option to highlight legal moves?
| + | |
- | ## "Black/White Wins!" banner after a mat.
| + | |
- | ## Resign.
| + | |
- | ## Pawn promotion, piece selection.
| + | |
- | ### Queen autopromotion?
| + | |
- | ## Draw request/accept.
| + | |
- | ## Timer
| + | |
- | ### Time limit warning?
| + | |
- | # Online chess basics, targeting http://www.freechess.org/ first
| + | |
- | ## Log in & out
| + | |
- | ## Register
| + | |
- | ## Search challengers / by time
| + | |
- | ## Propose a game
| + | |
- | ## [http://www.freechess.org/Help/HelpFiles/timeseal.html Timeseal] support.
| + | |
- | # Online chess advanced
| + | |
- | ## Join tournaments
| + | |
- | ## Full access to FICS console (might make sense only in landscape mode)
| + | |
- | | + | |
- | === Chat with your opponent ===
| + | |
- | # Landscape support.
| + | |
- | | + | |
- | === Customization ===
| + | |
- | # Download and select different boards and pieces.
| + | |
- | # Download and select different engines.
| + | |
- | | + | |
- | === Play with other opponents P2P e.g. via Bluetooth ===
| + | |
- | | + | |
- | === Learn chess lessons with moves + text ===
| + | |
- | # Positions can be set manually.
| + | |
- | | + | |
- | === Play local tournaments e.g. via Telepathy Tubes ===
| + | |
- | | + | |
- | === Play against computer ===
| + | |
- | | + | |
- | === Chess variants ===
| + | |
- | * [http://en.wikipedia.org/wiki/Antichess Antichess]
| + | |
- | * [http://en.wikipedia.org/wiki/Chess960 Chess960]
| + | |
- | | + | |
- | === Display games by you or others, live or stored ===
| + | |
- | (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)
| + | |
- | # History of an opening.
| + | |
- | # Take a picture of a printed game, process the notations with OCR and display it.
| + | |
- | # Display several games at a time.
| + | |
- | # Watch game via webcam stream
| + | |
- | | + | |
- | == Development Status ==
| + | |
- | | + | |
- | === Phase 1 ===
| + | |
- | # Setup development environment
| + | |
- | # Implementing the Board. The Board represents the current state of the game and is equivalent to a real physical chess board. It has no knowledge of legal or illegal moves. For now it will only accept chess pieces. The board does not know about the future or the past, any logic will be in the Game.
| + | |
- | # Creating a basic GUI to display the Board and the pieces. A piece can be moved by tapping on it and then tapping on the destination.
| + | |
- | | + | |
- | About setting up the environment
| + | |
- | * Preview of [http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide Qt for Maemo Developers Guide]
| + | |
- | * [http://qt.nokia.com/maemo Official Qt 4.6 port for Maemo 5], including mailing list for developer feedback.
| + | |
- | * The Qt 4.6 packages are about to land in extras-devel
| + | |
- | | + | |
- | === Phase 2 ===
| + | |
- | # Implement a basic chess Game adapter. The basic Game adapter knows the starting position of every piece and can determine if a move was legal. The concept of alternating player moves is also implemented here. It also recognizes checkmate, stalemate and threefold repetition thus ending the game.
| + | |
- | | + | |
- | === Ideas for future phases ===
| + | |
- | Proposals and plans for future phases.
| + | |
- | | + | |
- | ==== Automatic login & logoff====
| + | |
- | In the first boot of the app we can offer a dialog offering to store the login & password, create a new account or "later" (which will will go to play offline). Once the app has login & password booting will imply logging in and the way to log out will be to simply close down the app.
| + | |
- | | + | |
- | ==== Menu while not playing ====
| + | |
- | (Seek player will be in the main screen, below the board - a mockup will come soon)
| + | |
- | * Settings
| + | |
- | ** Highlight last move - default SQUARES. Also NO - ARROWS?
| + | |
- | ** Show legal moves? - default NO.
| + | |
- | ** Show coordinates - default NO.
| + | |
- | ** Sounds - default NO.
| + | |
- | ** Vibra on moves - default NO.
| + | |
- | ** Board position - default RIGHT (to be implemented when landscape mode comes).
| + | |
- | * Customization (to be implemented when customization comes).
| + | |
- | ** Piece sets selector.
| + | |
- | ** Boards selector.
| + | |
- | | + | |
- | ==== Menu while playing ====
| + | |
- | Items in the application menu while playing a game:
| + | |
- | * Resign
| + | |
- | * Request draw
| + | |
- | * Abort
| + | |
- | * Adjourn
| + | |
- | * Promotion piece
| + | |
- | ** When clicking the window shows all the figures with the Queen selected by default.
| + | |
- | * Settings
| + | |
- | ** Same as while not playing
| + | |
- | | + | |
- | == Technology selections ==
| + | |
- | How to make the most from existing free projects avoiding forking and duplicated work as much as possible.
| + | |
- | | + | |
- | * Qt 4.6 for UI layer. The goal is to have Maemo as primary development platform, aiming for straight ports to Symbian and other Qt compatible platforms.
| + | |
- | ** Can we save work by looking at [http://pacaq.sourceforge.net/ pacaq] and [http://knights.sourceforge.net/ Knights]? Others? --[[User:qgil|qgil]] 06:22, 3 November 2009 (UTC)
| + | |
- | * What starting point to get the online chess features?
| + | |
- | * What starting point for chatting?
| + | |
- | ** TP connection manager: http://telepathy.freedesktop.org/wiki/Components
| + | |
- | *** Qt 4.6 wrapper (http://telepathy.freedesktop.org/wiki/TapiocaQt) might be a good idea to look at.
| + | |
- | ** Rationale: I would like to see a "I play chess!" tag next to each contact I have. This information would of course have to come from a central server or such. Also, it would be great if we could just re-use the chat functionality that is already there with maemo5 (of course it needs a modified view to fit into our UI) --[[User:mikhas|mikhas]].
| + | |
- | * What starting point for game analysis?
| + | |
- | ** [http://scid.sourceforge.net/ Scid] ([http://packages.debian.org/lenny/scid see dependencies]) would be nice by itself and as gateway to [http://www.craftychess.com/ Crafty] ([http://packages.debian.org/lenny/crafty see dependencies]) and other engines.--[[User:qgil|qgil]] 06:22, 3 November 2009 (UTC)
| + | |
- | | + | |
- | == Architecture ==
| + | |
- | | + | |
- | GUI:
| + | |
- | * Board
| + | |
- | * Chat
| + | |
- | * Player Cards
| + | |
- | * Online Play
| + | |
- | | + | |
- | Logic:
| + | |
- | * Game - the logic for a particular game, right now that would be just chess, but other board games could be possible too. (Chess based or other)
| + | |
- | * Pre-Game - How to find players, select a server or engine
| + | |
- | | + | |
- | Domain:
| + | |
- | * Board - Represents the data structure of the board (duh)
| + | |
- | * Player - information about the other player, like online status, skill level
| + | |
- | | + | |
- | Communication:
| + | |
- | * ICS
| + | |
- | * Bluetooth
| + | |
- | * Telepathy
| + | |
- | * Computer Chess Engine - an offline engine should be accessed the same way any online game is, the engine does not have to be in the same task
| + | |
- | | + | |
- | == References ==
| + | |
- | * [http://www.craftychess.com/ Crafty] is a free, open-source computer chess program.
| + | |
- | * [http://www.v7f.eu/public/n800/chess/ EBoard and Crafty] for the N810/N800/N770 - [http://maemo.org/downloads/product/OS2007/chess OS2007 Downloads page].
| + | |
- | * [http://knights.sourceforge.net/ Knights] aimed to be the ultimate chess resource for the K Desktop Environment... years ago.
| + | |
- | * [http://pacaq.sourceforge.net/ pacaq] is a chess game visualizing and analysis tool done with the Maemo 4.1 Qt4 port - [http://talk.maemo.org/showthread.php?t=21793 Talk thread].
| + | |
- | * [http://scid.sourceforge.net/ SCID], a chess database application for Windows, Linux and Mac OS operating systems.
| + | |
- | ** See also [http://scid.sourceforge.net/scidpocket.html SCID Pocket]
| + | |
- | * [http://www.gnu.org/software/xboard/ Xboard] is a graphical user interface for chess in all its major forms.
| + | |