![]() |
Miniature development: Play chess games online
The Miniature project aims to deliver a chess board that goes always with you, ready to let you play and learn wherever you go.
We have just concluded the Phase 0: Project setup that started with the thread Contributors needed: the killer free chess game for Maemo. Here we focus on the first big item of the roadmap: Play games online. Easier said than done. :) We have planned three phases to get there and we will try to focus as much as possible in each of them, one at a time:
Any kind of feedback and help is welcome. Feel free commenting here also other features in the roadmap or new proposals. Note that the pure developer discussion happens in the project mailing list. DISCLAIMER: I'm contributing to Miniature in my free time without any link to my job at Nokia. |
Re: Miniature development: Play chess games online
I'll add in a comment to this. :)
If your project is ever going to be ported to other handhelds/platforms with different display dimensions, then the entire presentation layout needs to be flexible as to how it appears on the screen. I was thinking of two dynamic layout options and settings, one for landscape and the other for portrait mode. Within these menus, every setting would be configured by the end user. The board, size of board, where it's positioned, coloring, board coordinates being on/off, chess pieces, size of pieces, coloring, etc. Also where the chat window is located, the size of it, font, font size, font coloring, etc. Short cut keys, where on the screen, font, font size, font coloring.... stuff like this. Basically every piece and part of the screen layout could be movable and arranged differently according to a person's preference. Maybe even have a "preview" mode before the user saves his configuration to make sure that's what he or she wants. It might be overwhelming at first for a newbie to configure all of this, but if it's packaged with default settings and the ability to restore the them, this definitely might be the best direction for your project. |
Re: Miniature development: Play chess games online
Actually, going back over my previous post, this even confused me a little.
Instead of two separate menus for portrait and landscape modes, perhaps it would be more simple to have only one menu. Just have a screen layout save option. This way a user could either load or save something like a portrait.ini or landscape.ini file or anything in between. Not sure what the easy ground would be to implement this though. For a user to drag and drop all of the possible windows on the screen would be terrible to program. To enter in X,Y coordinates including height and width numbers for each window would be difficult for the user to understand. @qgil What are your thoughts on this? This seems like the right progression but I'm not seeing a way to make it easy on everyone involved. Cheers! |
Re: Miniature development: Play chess games online
Configurable screen layout. Those are good thoughts, we should put it on the roadmap somewhere after the 0.1 release. There is already a landscape mode item on the list, perhaps we should extend that item to include "configurabe screen layout to support portrait/landscape mode on multiple devices" (then a list of devices, with links to their screen/display spec, because if it is only 4 or 5, we might still want to hard-code it and avoid a potentially fragile API).
|
Re: Miniature development: Play chess games online
Quote:
What if a user decides to place some window bigger than what would be allowed on the device? Pure hell I would imagine. :) The point of all of this was is to have the entire screen display more open to the end users instead of the people who might port it. Hope that makes some sense. :) |
Re: Miniature development: Play chess games online
I think that to much customization possibilities are not good. If you let the end user decide about every single UI element that will become a big mess in two ways IMHO. (1) the user will get confused. I mean designing the UI is the (difficult) job of UI designers and you cannot expect every user to have the skills to do that. (2) In my experience such customizations are a huge source of problems and bugs and a real pain in the *** thinking from a developers point of view.
So in my opinion a well designed layout (or two that is) is superior to a badly designed customizable layout. And speaking about porting the application to other devices I think mikhas is absolutely right when he says hard-coding the layout for a few devices is still better than designing it open enough to fit for every possible device. |
Re: Miniature development: Play chess games online
I wonder what do you want to customize in the UI? I can see a point of having the board on the left side instead of the right side if you are left handed but apart from that... what?
Is it so critical to have the names and avatars of the players above or below the board in portrait mode? There is a reason to have them on top: separate the board from the status area so you don't click accidentally on e.g. the clock or other system UI buttons. Even if the pixel sizes might differ across touchscreen devices, the rough screen proportions will be overall similar. See for instance N900 vs N97 Mini. A fluid UI design should be usable and elegant in different devices without specific optimization. And this has nothing to do with user costumization. |
Re: Miniature development: Play chess games online
Quote:
|
Re: Miniature development: Play chess games online
Good idea. Let's find a UX specialist with some interest in chess. I will ask tomorrow in the office. :D
|
Re: Miniature development: Play chess games online
Please have a look at the checklist of the Phase 1. Now is the perfect time to tell whether you are missing something important for the goal "get the Chess game basics in place and demonstrated off-line". Thanks!
|
Re: Miniature development: Play chess games online
Guys, seems like you have a nice thing going here. Too bad I am not that into Chess, but I noticed a mention that this could be extended to cover other games as well. That got me interested. I would be up for contributing to making a Backgammon version and even working on a Go version. There really needs to be a version of these as well for N900 and this project could help to jump start the development for those as well.
So, I just wanted to let you know it would be great to have the general stuff done so that it can be used for other similar projects. |
Re: Miniature development: Play chess games online
To those willing to help on the common parts for other games, you could help by starting to work on such common parts at http://wiki.maemo.org/Miniature/Deve...e_chess_basics
Or whatever common part you find in the roadmap http://wiki.maemo.org/Miniature/Development#Roadmap |
Re: Miniature development: Play chess games online
I'll help in "Methods of connectivity to play against human - Bluetooth", since I'm starting something similar for other game, but will take a while, because I don't have much spare time atm :(
|
Re: Miniature development: Play chess games online
It will be an honor to get BT related patches from the BlueMaemo lead developer!
|
Re: Miniature development: Play chess games online
I don't see much in common between different board games, other than some basic application infrastructure, which would probably be more effectively shared via copy and paste.
I for one am very interested in working on a Go application, so I am keeping an eye on this project to learn from it. But I would rather share code than attempt to work on a board game abstraction layer. |
Re: Miniature development: Play chess games online
Question: with pacaq and Chessmonk having good looking vectorial boards... do we really need joshua to put his time in another board. I would rather put his creativity in the logo/icon, improving the look&feel of the mockups.
If the square highlighting (or the arrows, whatever we do now) can be also borrowed from these apps I would do just that. Or the movement animations. Let's concentrate the work in whatever doesn't exist and needs to be done. |
Re: Miniature development: Play chess games online
I went through my current task of defining possible game endings. I was amazed about the amount of possibilities!
Please check whether you still miss a potential game ending at http://wiki.maemo.org/Miniature/Deve..._after_a_match An opportunity of contribution for native English speakers (or equivalent) with a clue of chess: proposals for text strings accepted. The shorter the better. The more chess standard vocabulary used the better. Let's make life easy for translators. |
Re: Miniature development: Play chess games online
First approximation to a Miniature first boot UI:
http://wiki.maemo.org/images/c/cf/Mi...rait-start.png It is provisional for the offline situation that we have now in the Phase 1. No matter how happy we are with it now it will chance once we are able to connect to FICS. PS: note the glossy keyboard we got from Matthias. Nice! |
Re: Miniature development: Play chess games online
If pacaq's arrows are easy to recycle and you are happy with them then we could recycle that code.
|
Re: Miniature development: Play chess games online
Hi, the Miniature project keeps running at an impressive path!
- We have a binary! Thanks Matthias. http://maemo.org/packages/view/miniature/ It's in Fremantle extras-devel and plays chess as good as my very little son (puts pieces in the board, moves them randomly). But it is already useful to see that the board at max size (480 px wide) is usable and quite reliable. I tested with a storm of fast moves to random positions and the right pieces always landed in the squares my subconscious had chosen. - We have an application icon! Thanks Ekaterina. Without it the packages doesn't show up in the Application Manager (or something) and you need to install via apt-get. - We have architecture and good technical discussion in the developer list! So good that it escapes my knowledge. But the guys are even providing diagrams so I guess we are in a good path. ;) http://wiki.maemo.org/Miniature/Deve...t/Architecture We continue with http://wiki.maemo.org/Miniature/Deve...e_chess_basics and there are some shortcuts we will take in order to cover the basic functionality faster: - There is basic move highlighting now and it's fine. We will leave the arrows for later. - No double tap to select-confirm the landing of pieces. We might not need it at all if the usability of the portrait board is good enough. - Draws will be assigned whenever there is a reglamentary chance to assign one. - Pawns will be promoted automatically to Queen. With these shortcuts we will be able to start earlier with online chess at FICS, which is the immediate real deal. This is a commitocracy: if you disagree your patches are welcome. ;) |
Re: Miniature development: Play chess games online
Thank you for your work, I am very excited about this!
|
Re: Miniature development: Play chess games online
I'm not sure what
"- Draws will be assigned whenever there is a reglamentary chance to assign one." means, but draws on FICS don't take place until one side or the other claims the draw in the case of a threefold repetition of position, there is nothing automatic about it. Draws do occur automatically in the case of stalemate or time running out when the side with a win on time doesn't have any material. |
Re: Miniature development: Play chess games online
This case about the automatic draws is for the current phase, which is all about playing offline. By making these assumption we will probably save some extra dialogs.
Dealing properly with draw requests belongs to online games in the next phase. We will see then what is the reasonable approach saving us wok without making us loosing 1/2 points just because Miniature puts you in a draw when you don't want it. :) |
Re: Miniature development: Play chess games online
http://wiki.maemo.org/Miniature updated with list of features of v0.1-1, current screenshots and mockup.
|
Re: Miniature development: Play chess games online
Great to see this project progressing so quickly!
i just stumbled upon something in the german wikipedia (the english article doesn't have a similar entry) concernnig chess etiquette. i haven't read anything about it here so i thought i'd mention it: it would make sense to limit the amounts of draw offers a player can make during a game (or during a certain timespan, say 3 times every 5 minutes?), to avoid people "spamming" their opponents with draw requests when they are about to loose. |
Re: Miniature development: Play chess games online
Tomorrow I have a presentation at http://maemo.org/news/events/copenhagen_qt_training/ and Miniature will have its 5 minutes of fame as test case of Qt 4.6 and maemo.org development infrastructure (including this humble thread).
|
Re: Miniature development: Play chess games online
Quote:
|
Re: Miniature development: Play chess games online
Miniature had its 5 minutes of glory in the Maemo Developers @ Copenhagen.
I used the latst vesion in extras-devel and it didn't crash. But didn't play proper chess either... Ah, well. :) |
Re: Miniature development: Play chess games online
By the way, are you aware that Miniature is available for Ubuntu now?
https://launchpad.net/~michael-hasse...hive/miniature mikhas is unstoppable! |
Re: Miniature development: Play chess games online
Hey, are you still looking for designers? PM me with information I might be interested.
Also, good luck with this project. |
Re: Miniature development: Play chess games online
At this very point of time we need more work on interface / interaction design than pure graphics design. Although if someone provides better graphics than the ones currently in use we won't reject them. :) But the app looks ok already.
For instance, how does the Settings page look like? How are we going to organize the Menu options? Nobody knows for sure today and it would be good to have someone able to play with Qt Designer or at least faster than me producing purely visual mockups for discussion. There are Miniature builds that run on the Maemo 5 SDK, the N900 and the Ubuntu desktop. Give them a try, any proposals for improvement are welcome in any form! Another example: hopefully one of these days Miniature will learn the legal moves, and therefore will be able to identify the illegal. How should they be reflected in the UI? My current assumption is: 1 - User selects a piece with one tap. Piece shows highlighted. 2 - User selects destination square with a second tap. 3 - Destination square turns red with some transparency for 0.2 seconds. 4 - Original peace is still selected and highlighted. 5 - Repeat 3 if user selects a wrong square again. However, discussing UI without mockups is slow and prone to fail due to different people drawing differently in their minds even if reading the same text. I can play with GIMP / Inkscape but I'm damn slow. I have the ideas and some skills to express them in text fast, but beyond that... |
Re: Miniature development: Play chess games online
Quote:
mikhas and I were also discussing a reversed mode of entering moves earlier. First you tap on the target square, then all pieces which can move to this square (if any) are highlighted. Tapping closest to any of the highlighted pieces would move it to that square. The idea is that it's harder to make a mistake with the second tap, and you don't necessarily need a third tap for confirmation (also it can still be tricky if many pieces are close to each other and can move to the same square). |
Re: Miniature development: Play chess games online
Quote:
* White/Black Wins - Checkmate - Resignation - Time - Lost connection (if noescape flag is set) * Draw - Draw agreed (does it matter who requested it?) - Threefold repetition (don't forget three times the same position) - X moves without captures - Stalemate - Insufficient material * Aborted - Abortion agreed (does it matter who requested it?) - Insufficient moves (quitting or disconnecting the game before X moves are played, freechess will abort the game instead of resigning/adjourning) * Adjourned - Adjournment agreed (does it matter who requested it?) - Connection lost There is also the possibility of a game being decided by a referee (adjudication), but I don't think that the interface has to be aware of this. Also a quick note regarding accept/deny confirmations. Whatever you do, do NOT show a modal dialog, or otherwise interrupt the player's move or even concentration. Agreeing or denying must be possible at the player's leisure. It's much better to miss a draw request by making a move before answering it, than to be disrupted in your move and possibly losing on time (let alone opening the door to abuses). |
Re: Miniature development: Play chess games online
Quote:
How is the engine progressing? Is Miniature starting to learn some proper chess? What about teaching only about the first move of the pawns? The logic can't be simpler, and once implemented we can start experimenting with the UI around the move of pieces, legal/wrong squares and so on. |
Re: Miniature development: Play chess games online
I've been away for a bit due to some personal issues, but I'm back! What artwork can I help out with?
|
Re: Miniature development: Play chess games online
kore is teaching Miniature to play some chess:
http://gitorious.org/miniature/minia...13536f62e2e187 Now the pieces are supposed to know how to behave alone. The next step is to make them interact with each other correctly. kore explains more at https://garage.maemo.org/pipermail/c...er/000072.html |
Re: Miniature development: Play chess games online
Quote:
See my post above: http://talk.maemo.org/showpost.php?p...8&postcount=31 Artwork in the sense of icons etc is not a big need anymore. Can you also design animations? What about defining a nice effect for the selection of pieces and squares, and for the movement of pieces? I guess it's ok to discuss proposals over Flash or SVG, but the programmers might have better tips for you. Check the wiki page for current screenshots and binaries you can install in the SDK, the N900 or Ubuntu, with all the current graphics available. Ask here if you need more information to get the source graphics. |
Re: Miniature development: Play chess games online
What format would the animations have to be in? I can animate in Flash np, but I what should I output as?
|
Re: Miniature development: Play chess games online
Quote:
How is proper scaling for different resolutions approached in the Flash world? |
Re: Miniature development: Play chess games online
Quote:
The way it's done in Fremantle is that designers produce flash mockups and instructions, which the programmers then manually turn into Clutter effects. I don't know if Qt GraphicsView has any ready-made format for defining animations? |
All times are GMT. The time now is 08:09. |
vBulletin® Version 3.8.8