Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> Site Discussion >> New Arimaa Client
(Message started by: Pimm on Dec 10th, 2008, 5:47pm)

Title: New Arimaa Client
Post by Pimm on Dec 10th, 2008, 5:47pm
Hi all, allow me to introduce myself.

My name is Pimm and I am a Flash/Flex (more specifically, ActionScript 3.0) programmer. I used to play Arimaa back when I was in school, and I plan to play online some more.

I offered Omar to develop a new Arimaa client, and he was positive about my idea. In the first months of 2009 I will have the time to actually work on it, however I want you (the players) to think with me before even starting.

There are two major problems I have with the current client as well as the "Development Flash Client V2". These are: I dislike the look, and I think the UX is too retro.

The first problem is really simple: I just think the grey "Windows 9x" buttons are so 2007. I'm not a designer (and we probably need one to build this client), but I'd use gradients and bright colors instead. I understand we should keep the current look intact: a preference screen where you can select your skin would take care of this.

The thing I mentioned, the retroness of the UX, might be a more flamable (not the same as flammable) issue. The current User Experience is basically: the interface has a lot of buttons and textfields, hovering over buttons places their description while the textfields are somewhat self-explanatory.
If it were up to me I'd remove all the elements that are not directly needed to play the game, and devide then into logical submenus. This way I'd make the interface a lot more basic with all the options intact, only inside submenus or sidebars or some sort. Simplicity would be an important word. This would not only make the client look better, but also easier to understand to new players.

Please tell me what you think about the two points above, as well as anything you'd like to see in our new potential client!

Title: Re: New Arimaa Client
Post by omar on Dec 10th, 2008, 7:40pm
Hi Pimm,

Since the changes are mostly for the look of the client, you might want to prototype just the look of the new client without adding any real functionality. That way it would be easy for everyone to look at the prototype and provide constructive feedback.

Title: Re: New Arimaa Client
Post by Pimm on Dec 11th, 2008, 4:45am
Thanks Omar,

That sounds like a good idea. But please note that I am not a graphic designer, nor am I a User Experience designer. This is why I'd love to hear what the rest thinks, too.

Also, obviously, changes for real functionality are also welcome!

Title: Re: New Arimaa Client
Post by Tachyon on Dec 11th, 2008, 5:50am
Hi Pimm

I have some significant experience in usability design so maybe I can help. I would suggest that we follow these  steps.

1) Use the forum to elicit any complaints about the current client user experience and compile a list.
2) Use the list of complaints to generate a list of desired features for the new client.
3) Develop an visual prototype for early feedback.
4) Modify the visual prototype to adress negative feedback.
5) Use the visual design to develop an interactive prototype for stage 2 feedback.


I will be glad to help with the design of the visual prototype and the graphics for the inteactive prototype.

Title: Re: New Arimaa Client
Post by IdahoEv on Dec 11th, 2008, 7:35am
Pimm,

I agree with Omar that doing a mockup of what you're talking about before you begin is a good idea - get feedback from the veteran players on what would make their lives easier before you dive in.   Photoshop what the interface would look like in a couple different states, and maybe do a flowchart of the behavior.

Title: Re: New Arimaa Client
Post by camelback on Dec 11th, 2008, 12:59pm

on 12/10/08 at 17:47:41, Pimm wrote:
The current User Experience is basically: the interface has a lot of buttons and textfields, hovering over buttons places their description while the textfields are somewhat self-explanatory.


Pimm, appreciate your initiative on this.

The description text that appears when hovering some buttons covers the active board. In my experience this is sometimes annoying.

Title: Re: New Arimaa Client
Post by Fritzlein on Dec 11th, 2008, 5:03pm
Thanks for offering your time on this, Pimm.  I think there is definitely room for improvement on the appearance of the user interface.  My biggest complaint about appearance is that scaling makes the nice piece images look blurry.  I don't know what causes it, but I can't believe that my pieces would have to be slightly smudged.

One minor complaint I have with the V2 interface is the assumption that I will set up pieces in order EMHDCHDC.  The natural order of setup is EMHHDDCC, making the most important decisions first and least important last.  The order (HDC) and (HDC) makes an assumption about those pieces being split, which is annoying to me these days when I don't split my horses.

I expect it to be tricky for you to balance the needs of new users with the needs of experienced users.  There is all kinds of functionality that must be available if I am going to be happy, but, as you say, a large bank of buttons can be off-putting to a new user.  The text tips are annoying to me (and camelback), but they are nice for a new user.  There are so many can't-be-bothered-to-read-instructions people out there, that it would be very nice if the client were idiot-simple and held beginners' hands as much as possible.  I think we would have better retention if we had instant gratification for impatient people.

Good luck, and thanks again for your interest in this endeavor.

Title: Re: New Arimaa Client
Post by Pimm on Dec 12th, 2008, 9:29am

on 12/11/08 at 05:50:55, Tachyon wrote:
I will be glad to help with the design of the visual prototype and the graphics for the inteactive prototype.
I agree with you on the steps. You offer your help and tell you have experience in usability design, so I ask you to help me out with anything UX related. I am a programmer, and I'd like to focus on the programming as much as possible.

camelback and Fritzlein, thanks for the ideas.

I was just thinking, how many of you have preferred setups that you use significantly more than others? If this tends to happen a template-style setup menu might be good, where you can quickly load a setup.

Title: Re: New Arimaa Client
Post by IdahoEv on Dec 12th, 2008, 2:38pm

on 12/12/08 at 09:29:01, Pimm wrote:
I was just thinking, how many of you have preferred setups that you use significantly more than others? If this tends to happen a template-style setup menu might be good, where you can quickly load a setup.


That's funny, I was just coming into this thread to request this feature.   A couple of buttons to auto-apply the standard 99 layout and the standard fritz layout, for example, would make things a lot easier.  Or a drop-down list of known layouts that appears on the first turn.

Particularly in blitz games, I often burn some of my reserve on the very first turn just because it's hard to set up in 15 seconds!



Title: Re: New Arimaa Client
Post by Tachyon on Dec 12th, 2008, 3:36pm
What about starting the clocks only after both gold and silver has completed their setup ?  

It does not seem fair that one side or the other pay a time penalty just because their preferred setup takes longer to complete ?

Title: Re: New Arimaa Client
Post by Janzert on Dec 12th, 2008, 9:01pm
Maybe the current clients don't correctly display this, but it's in the rules and the I'm pretty positive the server correctly implements it that no matter what the time control each side is given a minimum of 1 minute for the setup. I actually ran into this since it was initially messing up opfor's detection of the time control because it would just take the time settings for the first move as the ones for the whole game. I almost reported it as a bug before finding the section on it. It's mentioned in the last paragraph on time controls in the match rules before the examples.

Janzert

Title: Re: New Arimaa Client
Post by omar on Dec 14th, 2008, 6:03pm
I would suggest not allowing templates with predefined setups; as this could become a disadvantage for the player who wants a setup that is not in the list. In the V2 client I tried to make the setup as easy as possible while trying to keep it neutral for different setups. The piece to place appears at the center of the board and you click on the square you want to place it on. But this also is not completely neutral because the order in which the pieces appear could be better for some setups than others. Currently the order is EMHDCHDC; Karl has suggested changing the order to EMHHDDCC. Perhaps we should try to do it as closely as possible to what happens in an over-the-board situation. Maybe place all the stronger pieces on the players side of the board but off the board and let the player drag and drop them into place on the board. But even this might not be setup neutral since some setups might require less dragging than others. Maybe the stronger pieces should be places in a random order off the board; as they would be if you dumped them out of the box.

Yes, Janzert you are right if the time per move is less than one minute than a minimum of one minute is given for the setup. Here is what the "Match Rules" page says:

For games which use a time per move of less than 1 minute, both players are always given 1 minute of time to setup the initial position in the first move of the game.  If the setup is not completed in 1 minute then the reserve time (R) is also used. The unused time from the setup move is not added to the reserve time unless the player completes the setup in less time than the time per move (M) set for the game.  If so then a percentage (P) of the unused time after deducting the time used from the time per move set for the game is add to the reserve time.


Title: Re: New Arimaa Client
Post by woh on Dec 15th, 2008, 4:15am

on 12/14/08 at 18:03:14, omar wrote:
The unused time from the setup move is not added to the reserve time unless the player completes the setup in less time than the time per move (M) set for the game.


This is not how it seems to be working with the old client. In my latest game (91291 (http://arimaa.com/arimaa/games/jsShowGame.cgi?gid=91291&s=w)) against Loc2007Blitz (15s/move) I used 13s for my setup and 47s was added to my reserve. Loc used 0s for his setup and his reserve grew with the full minute.

Title: Re: New Arimaa Client
Post by arimaa_master on Dec 15th, 2008, 7:45am

on 12/15/08 at 04:15:29, woh wrote:
This is not how it seems to be working with the old client. In my latest game (91291 (http://arimaa.com/arimaa/games/jsShowGame.cgi?gid=91291&s=w)) against Loc2007Blitz (15s/move) I used 13s for my setup and 47s was added to my reserve. Loc used 0s for his setup and his reserve grew with the full minute.


This works good I guess coz you made your setup in 13 sec, thus the reserve time WAS added because you DID your opening setup in LESS then 15 sec (that was 15 sec/per move game).

Title: Re: New Arimaa Client
Post by woh on Dec 15th, 2008, 9:12am

on 12/15/08 at 07:45:45, arimaa_master wrote:
This works good I guess coz you made your setup in 13 sec, thus the reserve time WAS added because you DID your opening setup in LESS then 15 sec (that was 15 sec/per move game).


Even when I use more than 15sec for the setup, the remaing seconds of the initial minute are added to my reserve, see this game (http://arimaa.com/arimaa/games/jsShowGame.cgi?gid=91489&s=w).

Title: Re: New Arimaa Client
Post by IdahoEv on Dec 15th, 2008, 4:15pm

on 12/14/08 at 18:03:14, omar wrote:
I would suggest not allowing templates with predefined setups; as this could become a disadvantage for the player who wants a setup that is not in the list.


Just always give your 60 seconds for the setup, but never add what's let of it to the reserve regardless of the game controls.  Then it's not really part of the game time; how much or little of it you use has very little effect on the rest of the game, so and having a fast way of doing setup isn't an "unfair advantage".

Given that it would be a particularly convenient feature, it seems silly to eliminate it for that reason.  Especially since bots will always have that advantage, and someone who wants to use the default setup can get that advantage now by using the V1 client.


Title: Re: New Arimaa Client
Post by Fritzlein on Dec 15th, 2008, 5:03pm
I agree with IdahoEv.  If the rule is that you don't get the leftover seconds from the setup minute added into your reserve in any case, then using a pre-defined setup is no advantage, it's just a convenience.

Title: Re: New Arimaa Client
Post by omar on Dec 15th, 2008, 10:34pm
Great idea IdahoEv. I am just wondering how to handle this in cases where you are already given more than 60 seconds per move. I guess what you are proposing is that even if the time control is 2 minutes per move the setup move should still be given 1 minute? But what about in a postal game of 1 day per move; we definitely have to give 1 day for the setup.

Maybe what you mean is to add 1 minute of "placement" time to whatever the time per move is as a convince and any unused time from that minute is not eligible to be added to the reserve.

So if the time per move was 2 minutes then on the setup move you would get 3 minutes (2 minutes for thinking and 1 minute for actual placement). If you used 30 seconds then you would have 2 minutes that could be applied to the reserve; just as a bot that used only 1 second for the setup. If you used say 2 minutes for the setup then you would have only 1 minute that could be applied to the reserve. In the above postal game example you would get 1 day plus 1 minute for the setup move.

Title: Re: New Arimaa Client
Post by woh on Dec 16th, 2008, 4:21am
I agree with IdahoEv about the reserve. Never add any leftovers from the setup to the reserve.
For games with a timecontrol of 60s/move or less one gets 60sec for setup, for other games one gets the same amount of time for the setup as for a normal move.

Title: Re: New Arimaa Client
Post by IdahoEv on Dec 16th, 2008, 10:46am

on 12/15/08 at 22:34:41, omar wrote:
But what about in a postal game of 1 day per move; we definitely have to give 1 day for the setup.


Ah, I hadn't thought of postals.   Of course they have a legitimate reason for a long time available for setup, particularly for silver.

Then my instict would just be time available for turn 1 is = min(1m, normal_turn_time), with none of the leftover added to reserve. Nice and simple.  :-)


Title: Re: New Arimaa Client
Post by 99of9 on Dec 16th, 2008, 2:09pm

on 12/16/08 at 10:46:39, IdahoEv wrote:
Then my instict would just be time available for turn 1 is = min(1m, normal_turn_time), with none of the leftover added to reserve. Nice and simple.  :-)

Sounds good to me.

Title: Re: New Arimaa Client
Post by woh on Dec 16th, 2008, 2:19pm

on 12/16/08 at 10:46:39, IdahoEv wrote:
Then my instict would just be time available for turn 1 is = min(1m, normal_turn_time), with none of the leftover added to reserve.


I think you mean max(1m, normal_turn_time)?

Title: Re: New Arimaa Client
Post by omar on Dec 17th, 2008, 4:13pm

on 12/15/08 at 09:12:58, woh wrote:
Even when I use more than 15sec for the setup, the remaing seconds of the initial minute are added to my reserve.


You are right. I just looked at the code and I have a comment there that I decided to add the extra unused time from the setup to the reserve because otherwise it looked confusing. So I think I must have just forgot to update the Match Rules page after deciding this.

But I am starting to like IdahoEv's idea of not adding any time from the setup move to the reserve and providing at least one minute of time. I am considering going with this, but I want to get more peoples input on it.

I was talking to Naveed about it and he is opposed to not adding any time from the setup move to reserve. He says that a lot of blitz and lightning games will time out it and suggests increasing the initial reserve in such games by a minute if we decide to do this. Also he is opposed to having the client provide setup templates because he thinks this will tend to "push" these setup and they will get used more often just because they are in the list. I was able to persuade him on this point by saying that after picking a setup from the list the user will still be able to modify it by shuffling pieces around before sending it. That way you can pick a setup that is close to what you want and modify it a bit. Also we thought it would be good if the client swapped the position of two pieces if you dropped one on top of the other.

Title: Re: New Arimaa Client
Post by Fritzlein on Dec 17th, 2008, 8:54pm
I like the idea of being able to swap two pieces in the setup by dropping one onto the other.  I have tried to do this in the past and been disappointed that it doesn't work.

I agree that there is some disadvantage to favoring standard setups in the interface, because it could reduce experimentation.  But there is an offsetting advantage in giving a helping hand to newcomers who have no idea how to get started.  Do we want to force everyone to learn everything the hard way?  I think that as long as there is no time disadvantage to using a non-standard setup, there will be enough inherent inducement to experimentation.  If we don't add the extra seconds from setup into the reserve, then there is no penalty for doing something outside of the templates, and people will naturally want to try out their own ideas.  Just look at how much variety there was even when everyone had to use the V1 client and everyone was presented with the same default every time!

It is weird for Naveed to complain that he needs more initial reserve for blitz games.  If he feels the time pressure is too great, why does he want to play blitz in the first place?  The danger of timeouts is a feature of blitz games, not a bug.  If fifteen seconds per move is insufficient time for him to make his moves, it isn't the fault of the setup phase, it is his fault for not playing at thirty seconds per move.

I think an initial reserve time equal to about six per-move increments (as I suggested before) is a good compromise, more than enough buffer to get started with, and if people want larger reserves than that, it is inching into the realm of "hybrid" times which are not quite like having a per-move time because they are rather like managing one big block of game time.  But OK, if people want a hybrid time control, then instantiate it with a bigger initial reserve, not with a mandatory setup time that carries over, making every blitz game have this padding whether or not it is written into the blitz time control that people are trying to use.

Title: Re: New Arimaa Client
Post by Oystein on Dec 18th, 2008, 1:48am
I would prefer to not add unused time from the setup.

What about user defined templates? I think that would be great.

Title: Re: New Arimaa Client
Post by tize on Dec 18th, 2008, 4:39am
I like the idea that you wouldn't get the left over time from the setup, especially if you add setup templates.

As for the templates, I don't really care much for them. As the time it takes to place the pieces isn't really that long, but if you guys like it lets go for it.

Title: Re: New Arimaa Client
Post by clauchau on Dec 19th, 2008, 4:05am

on 12/17/08 at 20:54:14, Fritzlein wrote:
there is an offsetting advantage in giving a helping hand to newcomers who have no idea how to get started.  Do we want to force everyone to learn everything the hard way?

I don't like that - we might as well constantly suggest the first moves as we are at it! No, I wouldn't suggest unsollicited hints to newcomers. It is amazingly interesting to discover a game from scratch and feeling lost and prone to discoveries.

Well, of course I didn't learn to play or to do math alone, on the contrary, but I like to have the choice on when I'm ready to hear an advice.

I would better be offered to save and select my most used or prefered setups on a personal basis - something saved in cookies on my computer or in settings for my playing account on Arimaa's server. Something only coming from my experience and hear say.

Or at least, let there be an option somewhere in the player's settings so that the suggestion of initial setups is off for newcomers and needs to be willingly turned on.

Title: Re: New Arimaa Client
Post by omar on Dec 19th, 2008, 5:44pm
I will change the server so that unused setup time is not added to the reserve. I will also about 30 seconds to the initial reserve of fast, blitz and lightning games.

Claude, maybe there could be combination of both. How about if the client provides the stronger pieces off board and lets the user drag and drop them into place, but there is also a list of predefined setups available to chose from. If you choose from the list you can still shuffle the pieces around before sending the move.

Title: Re: New Arimaa Client
Post by clauchau on Dec 22nd, 2008, 5:14am
I've answered too negatively. I would indeed appreciate it now even if it is not hidden from newcomers. If there is enough variety of setups to choose from, including weird and random setups, it could even encourage a greater variety of games played.

Title: Re: New Arimaa Client
Post by omar on Dec 24th, 2008, 1:14pm

on 12/19/08 at 17:44:00, omar wrote:
I will change the server so that unused setup time is not added to the reserve. I will also about 30 seconds to the initial reserve of fast, blitz and lightning games.


Just made this change. Decided not to add 30 seconds more of initial reserve to the *Fast bots since it was already 3 minutes.

Title: Re: New Arimaa Client
Post by Pimm on Dec 25th, 2008, 3:07pm
I thought of the template-like interface for setups for both beginners as well as experienced players. This is why I asked whether people have preferred setups. I think we should supply three or four very variating setups by default, while keeping the opportunity to change the setup before sending it as well as saving(!) the changed setup to your personal templates.

Title: Re: New Arimaa Client
Post by omar on Dec 25th, 2008, 3:47pm
Sounds good. I can setup a web service which the client can use to save and retrieve personal setups.


Title: Re: New Arimaa Client
Post by Pimm on Dec 26th, 2008, 1:48pm

on 12/25/08 at 15:47:28, omar wrote:
Sounds good. I can setup a web service which the client can use to save and retrieve personal setups.
As in storing them with the user's other data (profile info etc), right? Sounds good! We'll do that (I'll be storing everything on a pure binary basis though).

Title: Re: New Arimaa Client
Post by omar on Dec 26th, 2008, 3:46pm

on 12/26/08 at 13:48:03, Pimm wrote:
As in storing them with the user's other data (profile info etc), right? Sounds good! We'll do that (I'll be storing everything on a pure binary basis though).


Yes, I'll store it as a blob type with the users other data. But I would suggest storing it JSON format so that other clients can also use it.

Title: Re: New Arimaa Client
Post by Pimm on Dec 27th, 2008, 2:12pm

on 12/26/08 at 15:46:54, omar wrote:
Yes, I'll store it as a blob type with the users other data. But I would suggest storing it JSON format so that other clients can also use it.
Hmmm... JSON is big. I could store it binary while supplying documentation on how it is formatted...

Title: Re: New Arimaa Client
Post by Janzert on Dec 27th, 2008, 9:15pm

on 12/27/08 at 14:12:43, Pimm wrote:
Hmmm... JSON is big.


Space is cheap (relatively). JSON libraries are already available for most all of the languages that also are generally used for web programming. If you really must, zlib compress it. That is also available in most of those languages. But really several 16 character strings in JSON isn't going to be that huge of a deal.

Janzert

{"99of9": "RRRCCRRRRHDEMDHR", "omar": "RRRRRRRRDHCEMCHD"}

Title: Re: New Arimaa Client
Post by Pimm on Dec 29th, 2008, 3:07pm

on 12/27/08 at 21:15:44, Janzert wrote:
Space is cheap (relatively). JSON libraries are already available for most all of the languages that also are generally used for web programming. If you really must, zlib compress it. That is also available in most of those languages. But really several 16 character strings in JSON isn't going to be that huge of a deal.

Janzert

{"99of9": "RRRCCRRRRHDEMDHR", "omar": "RRRRRRRRDHCEMCHD"}
They always throw the "space is cheap" and "memory is cheap" at me, but I make space and memory efficient applications anyways! Since there are only six different pieces three bits are enough for each piece. Binary:
{"99of9": "000-000-000-001-001-000-000-000-000-011-010-101-100-010-011-000"}
By byte:
{"99of9": "00000000-00010010-00000000-00001101-01011000-10011000"}
In hex:
{"99of9": "0012000D5898"}
Hex uses two characters per byte (so two bytes in 8bit encoding), I could use all the characters in the 8bit encoding to cut the size in half. Six bytes per setup.

Still not that small, huh? I see. We pretty much only have to store where the elephant is, where the camel is, where the horses are, where the dogs are and where the cats are (in order). There are only sixteen positions, so we can do that in four bits for each piece. In Hex:
{"99of9": "BC9EAD34"}
Eight characters in hex, so four bytes if I use all the available 8bit characters per setup.

I know, I focus on these things way too much. I'll get back to useful Arimaa stuff.

Title: Re: New Arimaa Client
Post by clauchau on Dec 30th, 2008, 5:03am
Pimm, efficiency regarding human interactions is to be considered too. Sticking to JSON minimizes human memory and maximizes human speed reading. Humans love to hand-edit immediately-human-readable configuration files.

Title: Re: New Arimaa Client
Post by Pimm on Dec 30th, 2008, 11:37am

on 12/30/08 at 05:03:43, clauchau wrote:
Pimm, efficiency regarding human interactions is to be considered too. Sticking to JSON minimizes human memory and maximizes human speed reading. Humans love to hand-edit immediately-human-readable configuration files.
I know, I work at a web development company so self-documenting and human-readable configuration is very important in my daily work. However, my second proposition doesn't seem less readable than Janzert's one. It just puts the question differently, what was "what piece is on this space?" will be "on which space is this piece?".

Anyways, I don't really care. Any format is fine by me.

Title: Re: New Arimaa Client
Post by Janzert on Dec 30th, 2008, 12:51pm
For me at least it's going to take many more examples and a lot more time to figure out {"99of9": "BC9EAD34"} instead of {"99of9": "RRRCCRRRRHDEMDHR"}.

Also now that I've thought about it a bit more I think it would probably be even better to just use {"99of9": "Ra1 Rb1 Rc1 Cd1 Ce1 Rf1 Rg1 Rh1 Ra2 Hb2 Dc2 Ed2 Me2 Df2 Hg2 Rh2"}. The client has to understand that move format anyway to talk with the server and it can still rotate the setup for the silver side just as easily as if it were given in another format.

Janzert



Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.