Miniature/Development

The concept
Miniature is a chess board that is always with you, ready to let you play and learn wherever you go.


 * The main use case is playing online against other players at http://www.freechess.org/ (FICS)
 * Now imagine that you can also chat with the other player.
 * Play P2P games against other players next to you or remotely with your Contacts.
 * Learning is important: watch games live, review stored games and also process offline the lessons offered at FICS.
 * And not only regular chess. Think also on Suicide, Crazyhouse...

Miniature is a Qt application with a C/C++ backend and a QML UI. The architecture is modular, thinking on the addition of different servers and types of interaction.

We are targeting our development on MeeGo Harmattan and the Nokia N9 but we welcome maintainers for other ports e.g. MeeGo upstream, Symbian, Android-Necessitas, Qt powered desktops...

Project status

 * 2011-08-15: New Miniature UX concepts integrated to the master branch - the new engine gets a UI (screenshot).
 * 2011-08-13: Miniature can be developed using Qt Creator (instructions).
 * 2011-08-01: Miniature 0.2.1 released! The new Encore engine and the new QML UI, together for the first time. The game can do real seeks but still no real games.
 * 2011-07-27: New UI targetting MeeGo Harmattan developed in parallel - source & packages for Nokia N9/N950.
 * 2011-07-18: engine refactored around Encore, a GNUChess wrapper. This is the beginning of a rewrite.
 * 2011-07-06: request to port to Meego : http://forum.meego.com/showthread.php?p=25031

The Miniature project was born as a proposal sent to the Maemo community on 2009-10-31. Check the archive if you want to dig in the past.

Get started
Currently you can build Miniature with the latest Qt SDK (including the Harmattan target) or the Harmattan Platform SDK. The Miniature sources and commit logs are available at https://gitorious.org/miniature/. Both SDKs come with an emulator for deploying your app. All the better if you have a Nokia N950 or N9 to test on device.


 * Instructions to build Miniature with Qt Creator

Development channels

 * The developer discussion happens in the project mailing list.
 * We also follow the more user-oriented Talk discussion thread: Contributors needed: the killer free chess game for Maemo.
 * With some luck you will find us online at #miniature in irc.freenode.net.
 * Code repository at http://gitorious.org/miniature
 * No bugzilla at this point.

Architecture
See the Miniature architecture wiki page. (outdated)

Strings & localization
We don't have stable strings implemented and therefore the localization task hasn't started yet. See Miniature/Development/Strings.

Get involved
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.

See the instructions to setup your Miniature development environment. Also, do not forget to install the more hildonized Qt4 for Maemo5 package from extras-devel!

There are some policies that we follow in the project.

Send us patches!
Found a bug? Spotted code smell? We glady accept patches! There are three ways to send patches to us:
 * By reporting the bug, and hopefully attaching a patch that solves the stated problem (but just reporting bugs is also appreciated).
 * By using the chess-devel mailing list: A ML-friendly patch can be created with "git format-patch HEAD~n", where n specifices how many commits (starting from HEAD) should be converted to patches;
 * By issuing a merge request: Send us a link to your public git repo (including branch/revision), or use the merge request feature from http://gitorious.org.

Contributors

 * Michael Hasselmann: lead developer.
 * Dennis Stötzel: chess logics.
 * Mathias Hasselmann: veteran programmer.
 * Dariusz Mikulski: P2P telepathy integration.
 * Quim Gil: documentation.
 * Ekaterina Gerasimova: Game icon.

Special thanks to Colin M.L. Burnett for his free piece set used by Wikipedia.