Miniature/Development

Miniature - Play chess everywhere you go!
.: Home : Releases : Wish list : Development : Coding style :.
The Berlin Defence, as seen in Miniature

Contents

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 news

  • 2011-08-29: first patch from Uwe Kaminski aka jukey committed to the Miniature project. Thank you!
  • 2011-08-28: "New seek" feature implemented, mikhas and jukey play the first Miniature vs Miniature game from their devices.
  • 2011-08-26: First real & unstable FICS games played. First it was mikhas against himhelf, then mikhas-qgil.  :)
  • 2011-08-25: How quick I got started with Qt Quick - blog post from Quim Gil featuring Miniature.
  • 2011-08-25: Miniature 0.3 runs in MeeGo 1.2 CE on a Nokia N900 (with some bugs).
  • 2011-08-23: Miniature 0.3 Berlin Defence released.
  • 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.

Project status

Tasks for the next release get a HIGH priority. All the rest falls in the Backlog.

Miniature 0.4 release

See Miniature/0.4_De_Lucena

IDSeverityPassigneeStatusResolutionSummary (28 tasks)
12341enhancementHighNEWFilter buttons for FICS seeks could be simpler
12356enhancementHighNEWMiniature should remeber the value used the last time
12376enhancementHighNEWMiniature should be able to resume adjourned FICS games
12411enhancementHighNEWOnlineBoard: Implement game end dialog for abort during move 1
12421enhancementHighNEWVibration or sound notification if opponent moves
12367majorHighNEWSeek search filters don't work
12424majorHighNEW[Discussion] OnlineBoard: Implement a better game's end dialog
12434majorHighNEWSeekGame doesn't filter Atomic games
12525minorHighNEWClock keeps running after finishing a game
12380normalHighNEWMiniature doesn't handle "unseek"
12414normalHighNEWOnlineBoard: Implement dialog for abort requests
12433normalHighNEWEnd game confirmation dialogs should lead to gameoverDialog
12524normalHighNEWChat is cut when a game is finished
12456enhancementHighRESOLVEDFIXEDMiniature official support for Maemo
12420normalHighRESOLVEDFIXEDMiniature crashes on closing the application from recents view
12345criticalHighVERIFIEDFIXEDMiniature's i18n is missing
12426criticalHighVERIFIEDFIXEDMiniature doesn't handle draw requests
12351enhancementHighVERIFIEDFIXEDMake move confirmation an option or remove it
12359enhancementHighVERIFIEDFIXEDMiniature FICS user must fill id & password every time
12390enhancementHighVERIFIEDFIXEDMake last turn visible
12455enhancementHighVERIFIEDFIXEDMiniature chat area use is not obvious
12394majorHighVERIFIEDFIXEDMiniature should set autoflag 1 automatically
12408majorHighVERIFIEDFIXEDSome registered users can't play Miniature as white
12419minorHighVERIFIEDFIXEDAbout Miniature dialog: "i" button is hiding a part of a link
7867normalHighVERIFIEDFIXEDDisplay shouldn't dim while playing a game
12435normalHighVERIFIEDFIXEDMiniature should recognize games forfeited on time
12464normalHighVERIFIEDFIXEDPlayers with rating of less 1000 points cannot reliably use Miniature
12470normalHighVERIFIEDFIXEDCheck mate needs to be parsed and processed in Miniature

Backlog

IDSeverityPassigneeStatusResolutionSummary (20 tasks)
8142enhancementLowNEWChess games logs need to be stored somewhere
12346normalMediumNEWMiniature needs a proper repository
12348majorMediumNEWMiniature for MeeGo CE doesn't show TextField
12354normalMediumNEWList of games: Show available game offers only
12360normalMediumNEWList of games: Function of the Back-Arrow unclear. Confirmation Dialogue needed?
12392enhancementLowNEWShow how much material is left for each player
12396enhancementMediumNEWImplement dialog for challanges
12410enhancementMediumNEWOnlineBoard: Implement item "abort" in back menu
12413normalMediumNEWThe chat log doesn't show the last line when the local user posts
12422minorLowNEWShow application close button in the upper right corner
12423enhancementMediumNEWExtend chat feature
12427normalMediumNEWMiniature doesn't handle adjourn requests
12431enhancementMediumNEWSeekGames: Do not show more than 50 games in the list at once (was: Implement "clear list" function)
12439enhancementMediumNEWEnable breadcrumbs in the wiki (miniature-chess.org)
12443enhancementMediumNEWFICS Setting: Implement an option to send game notation after a game ends
12469minorLowNEWInitial value of localSide.rating == 0 for Miniature registered users
12504enhancementMediumNEWafter failed login, VKB pops up even if in info screen
12539criticalUnspecifiedNEWInstallation on the N900 fails
12583majorUnspecifiedNEWNo hint that starting new games is impossible (number of adjourned games to high)
12592normalUnspecifiedNEWqtquickcompat is needed, but not listed as Depends

Easyfix (suited for newcomers)

IDSeverityPassigneeStatusResolutionSummary
12392*
easyfix12392
enhancementLowNEWShow how much material is left for each player

Looking for more? There is more at the Wishlist.

Get involved

Contributions are welcome! This is how you can get started:

  • Download or build Miniature, and tell us what you think
  • Spread the Miniature love among your Chess friendly contacts
  • Test the game and check/file bugs
    • Follow all of the project's bug by entering general@miniature.garage.bugs into the Add users to my watch list (comma separated list) input field
  • Fix an open bug in the Backlog, for instance an easyfix.
  • Help planning and implementing new features
  • Help porting Miniature to more platforms

Localization

The localization work hasn't started yet and as a matter of fact our strings are still not L10n ready. It's in our ToDo list, do you want to help?

SDK instructions

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 set you Miniature development environment:

  • Qt SDK
  • Harmattan Platform SDK instructions are currently missing. fwiw the Maemo Platform SDK might help since both are based on Scratchbox...

Set up a personal clone repository of Minature

If you plan to get involved deeper into development it's a good idea to create a personal clone of the Minature git source repository. This allows you to do merge requests for patches you created in your clone repository. The cloned repository should be connected to Minature as upstream to make it easy to fetch changes from there. Step-by-step description:

  • Create an gitorious account or log in and make sure to have an SSH-Key in place
  • Clone repository
  • To allow pushing to your clone repository Follow the instructions you will get if you click onto the little green question mark next to the clone URL.
  • enable upstream: Open a terminal and switch into the local folder of your clone project and enter:
git remote add upstream git://gitorious.org/miniature/miniature.git
  • fetch upstream data:
git fetch upstream master
  • Create merge requests: You can use the "Request merge" button in your gitorious clone project website.

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.

Architecture

See the Miniature architecture wiki page. (outdated)

Contributors

Maintainers:

Gave a big hand:

Special thanks: