Editing Miniature/Development

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
-
{{Miniature}}
+
[[Miniature]] is based on the official [http://qt.nokia.com/developer/qt-for-maemo-developers Qt 4.6 for Maemo] and its [http://doc.trolltech.com/4.6-snapshot/graphicsview.html Graphics View framework]. Most of our work focuses on developing a UI layer optimized for mobile touch devices. When it comes to the backend we want to recycle as much as possible from existing chess engines.
-
Most content of this page has moved to http://miniature-chess.org/
+
The development is guided by the roadmap and is organized by phases bringing new features to our users. The organization of the roadmap is based on a pragmatical implementation of  [[Miniature#The_concept|the Miniature concept]] taking into account features missing in Maemo, existing chess projects and the requests from current and potential users.
-
We are waiting to get the BugzillaReports extension running to move the rest.
+
 
 +
New contributors are welcome! You can help testing and bugfixing new releases focusing on the current phase or you can pick one item more distant in the roadmap and go ahead with it. No matter what you do we recommend you to stay on focus.
== Project status ==
== Project status ==
 +
* The Miniature project was born as a proposal sent to the Maemo community on 2009-10-31.
 +
* [[Miniature/Development/Phase 0: Project setup|Phase 0: Project setup]] - ONGOING
 +
* Currently working on the roadmap item [[#Play_games_online|Play Games Online]], divided in 3 phases:
 +
** [[Miniature/Development/Phase 1.0: Offline chess basics|Phase 1.0: Offline chess basics]] - STARTED
 +
** [[Miniature/Development/Phase 1.1: Online chess basics|Phase 1.1: Online chess basics]] - NOT STARTED
 +
** [[Miniature/Development/Phase 1.2: Online chess advanced|Phase 1.2: Online chess advanced]] - NOT STARTED
 +
 +
* 2009-11-03: [http://wiki.maemo.org/images/archive/d/de/20091103171812!Miniature_normal_mode.jpg First concept of play + chat] (landscape).
 +
* 2009-11-01: [http://wiki.maemo.org/images/1/17/Miniatura-playgameh.png First mockup].
 +
 +
== Mockups ==
 +
 +
These are the current sketches.
 +
 +
[[Image:Miniature_normal_mode.jpg|frameless|main-l: main window in landscape mode (needs update)]] [[Image:Miniature_normal_options.jpg|frameless|menu layout]]
 +
 +
 +
=== Old ;) ===
 +
 +
[[Image:Miniatura-playgameh.png|frameless|deprecated]] [[Image:Miniatura_alternative.png|frameless|deprecated]]
 +
 +
== 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'''
 +
## [[Miniature/Development/Phase 1.0: Offline chess basics|Chess game basics]], demonstrated off-line.
 +
## [[Miniature/Development/Phase_1.1:_Online_chess_basics|Online chess basics]], targeting http://www.freechess.org/ first
 +
## Online chess advanced
 +
### Join tournaments
 +
### Full access to FICS console (might make sense only in landscape mode)
 +
# '''Chat with your opponent'''
 +
## [[Miniature/Development/Phase x.x: Landscape support|Landscape support]].
 +
## [[Miniature/Development/Phase x.x: Chatting|Chatting]].
 +
# '''Customization'''
 +
## Download and select different boards and pieces.
 +
## Download and select different engines.
 +
# '''Methods of connectivity to play against human'''
 +
## [[Bluetooth]].
 +
## [[WLAN]].
 +
## [[GPRS]].
 +
# '''Learn chess lessons with moves + text'''
 +
## Positions can be set manually.
 +
# '''Play local tournaments e.g. via Telepathy Tubes'''
 +
# '''Play against computer'''
 +
## Basic need covered by pre-installed Chess app.
 +
## TODO: Which engines???
 +
# '''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'''
 +
## 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.
 +
## 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
 +
 +
=== Roadmap proposals ===
 +
Add your proposals here. Remember to sign them so we know where do they come from. Just explain the brief concept. If you have further explanations post them somewhere and link from here. Thank you!
-
Tasks for the next release get a HIGH priority. All the rest falls in the Backlog.
+
# Chess clock only function: It would be great to use the N900 as a chess clock only if there is a real board and a "real" opponent is available. The functionality will be in the apllication so a nice UI for this function is all what is needed.--[[User:jukey|jukey]] 21:57, 9 November 2009 (UTC)
 +
# Possibility to play a game human vs. human offline. In this case the board should flip 180° between two moves.--[[User:jukey|jukey]] 21:57, 9 November 2009 (UTC)
-
=== Miniature 0.5 release ===
+
== Technology selections ==
 +
How to make the most from existing free projects avoiding forking and duplicated work as much as possible.
-
Tasks COMMITTED for Miniature 0.5.
+
* 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)
-
{{#bugzilla:id=7867,12345,12351,12359,12390,12394,12419,12420,12426,12435,12455,12456,12464
+
== Architecture ==
-
  |columns=id,severity,status,resolution,summary
+
-
  |sort=resolution,status,severity,id
+
-
}}
+
-
=== Backlog ===
+
GUI:
 +
* Board
 +
* Chat
 +
* Player Cards
 +
* Online Play
-
{{#bugzilla:
+
Logic:
-
  |columns=id,severity,priority,assignee,status,resolution,summary
+
* 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)
-
  |product=Miniature
+
** The current game controller can update the board, using FEN strings (we might want to wrap the QStrings in a simple Position container, if we add parsing API to it) and knows about the UI.
-
  |priority=Medium,Low,Unspecified
+
* Pre-Game - How to find players, select a server or engine
-
  |status=unconfirmed,new,assigned,needinfo,reopened
+
-
  |sort=status,id
+
-
}}
+
-
=== Easyfix (suited for newcomers) ===
+
Domain:
 +
* Board - Represents the data structure of the board (duh)
 +
** Can draw a position based on a valid FEN string, say "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" encodes the start position.
 +
** How it works: Each figure is a QGraphicsSvgItem. This is useful since it allows fingertouchability. The board draws its position, meaning it removes all its figures children (by deletion) and then re-reads the SVG files into new QGraphicsSvgItem. Needless to say, this is inefficient. A better way would be to let the board load all figures during its construction time, put them in a vector (using enums for the indices lookup, maybe) and instead of clearing the board by deletion, just unparent the figures from the board, then reparent them into the correct position. Or just move them around, and hide those that were removed by game moves. Both should be easy and bring a good speed-up (SVG loading is quite expensive I hear). It is bascially about killing unneeded new/delete sequences.
 +
* Player - information about the other player, like online status, skill level
 +
** Player "cards" would be part of this. Currently, they only exist as some HTML-formatted text in the scene view.
-
{{#bugzilla:
+
Communication:
-
  |columns=id,severity,priority,assignee,status,resolution,summary
+
* ICS
-
  |product=Miniature
+
* Bluetooth
-
  |keywords=easyfix
+
* Telepathy
-
  |status=unconfirmed,new,assigned,reopened
+
* 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
-
  |sort=priority,severity,priority,status,id
+
-
}}
+
-
Looking for more? There is more at the [http://miniature-chess.org/wiki/Wishlist Wishlist].
+
== 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].
 +
** From all programs on this list, this is the only one were reading the code is worth your time.
 +
* [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.
 +
* [http://www.freechess.org/ freechess.org] Website of the Free Intrnet Chess Server (FICS)
 +
** [http://www.freechess.org/Help/AllFiles.html commands reference]

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)

Templates used on this page: