Miniature/Development
(→Development Status) |
|||
Line 93: | Line 93: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
== Technology selections == | == Technology selections == |
Revision as of 21:12, 8 November 2009
Contents |
Project status
- 2009-11-08: First running example mimicking the "first realistic mockup".
- 2009-11-07: Piece set committed, the same used by Wikipedia.
- 2009-11-06: Code repository created: http://gitorious.org/miniature - source code exists since the beginning.
- 2009-11-06: First post in the developer mailing list: https://garage.maemo.org/pipermail/chess-developer/
- 2009-11-06: First realistic mockup for playing basic online chess (portrait).
- 2009-11-04: Portrait mode gets priority to maximize board size + chats won't come till later.
- 2009-11-03: Roadmapping started.
- 2009-11-03: Plann for first phases started.
- 2009-11-03: First concept of play + chat (landscape).
- 2009-11-01: First mockup.
- 2009-10-31: This wiki page created.
- 2009-10-31: "Miniature" project name decided.
- 2009-10-31: Garage project created: https://garage.maemo.org/projects/chess/
- 2009-10-31: Talk thread created: Contributors needed: the killer free chess game for Maemo
Mockups
These are the current sketches.
Old ;)
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
- Chess game basics, demonstrated off-line.
- Finger friendly UI.
- Mechanism to avoid false moves. First tap to point square, second to confirm?
- TODO: extract all move mode proposals from thread so we can evaluate them while comparing working examples.
- Portrait mode.
- 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?)
- Pieces can be moved manually.
- Only legal moves are possible.
- Option to highlight legal moves?
- 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.
- "Black/White Wins!" banner after a match.
- Resign.
- Pawn promotion, piece selection.
- Queen auto-promotion?
- Draw request/accept.
- Timer
- Time limit warning?
- Finger friendly UI.
- Online chess basics, targeting http://www.freechess.org/ first
- Log in & out
- Register
- Search challengers / by time
- Propose a game
- 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.
Methods of connectivity to play against human
Learn chess lessons with moves + text
- Positions can be set manually.
Play local tournaments e.g. via Telepathy Tubes
Play against computer
- 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)
- 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
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.
- 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) --mikhas.
- TP connection manager: http://telepathy.freedesktop.org/wiki/Components
- What starting point for game analysis?
- Scid (see dependencies) would be nice by itself and as gateway to Crafty (see dependencies) and other engines.--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
- Crafty is a free, open-source computer chess program.
- EBoard and Crafty for the N810/N800/N770 - OS2007 Downloads page.
- Knights aimed to be the ultimate chess resource for the K Desktop Environment... years ago.
- pacaq is a chess game visualizing and analysis tool done with the Maemo 4.1 Qt4 port - Talk thread.
- From all programs on this list, this is the only one were reading the code is worth your time.
- SCID, a chess database application for Windows, Linux and Mac OS operating systems.
- See also SCID Pocket
- Xboard is a graphical user interface for chess in all its major forms.