Things have gotten a bit busy, so here’s a blog post from an old blog that I’m pretty sure very few of you have read, from 2010:
“Don’t let your users select invalid options”
So, in my quest to uncover the roots of all things farming, I went from Zombie Farm, to FarmVille, to the one (as far as I can tell) that started it all (at least in the Facebook era): Farm Town.
There are a few things I’ve learned along the way.
First, mouse motion from a selected and placed object to the square next to it is broken. If you have a 4*4 object that you’re likely to be placing multiples of, once you place one, you should not be able to cursor over the one you just placed. You should immediately have the cursor move next to it, in a legal position.
None of the farming games handles this correctly. It would be interesting to see if SimCity Zoning (if they even still do that) does this correctly between Godzilla attacks.
The closest solution that works is the Farmville tractor plowing option. For some reason, the 2*2 (8*8) plowing square feels much more stable than the 1*1 (4*4). (Each plowed square is 4*4 mini squares.)
Second, the games have been getting better and better with each iteration.
Farmtown, which I just started today forces you to exactly center your cursor on a 4*4 plot (by center, I mean on the correct corner) in order to plant, plow, or do anything with it. Farmville at least gives you a wider hoverable area.
The messages are getting less and less annoying: Farmtown has incessant messages that seem unimportant, Farmville’s messages are even more incessant, but seem more important. On second thought, maybe this is just a graphics upgrade.
The most annoying part of both, though is the “You have…been disconnected from the mainframe” and “…no longer in sync with the server”, which cause very different , but almost equally as annoying bugs. In Farm Town, you have to reconnect every so often, but this seems to have no discernable effect, as your crops look exactly the way that they did when you disconnected… In Farmville, you’ll be halfway through a large harvesting/plowing/replanting, and the ‘server will get out of sync’, and you’ll have to start all over again. I have never figured out why this is not saved correctly on the server, probably they don’t think it’s important enough. It’s gotten to the point that whenever I’m about to do something, I refresh the page, which *certainly* doesn’t save them bandwidth.
Anyways, this has gotten into a lot of minutiae, but the real point here is that when you’re designing a UI, you should not let your users select invalid options. Channel them into what most people do, and is most likely to be what they want to do (make common things easier without making uncommon things harder, as much as possible). The Microsoft endlessly changing menus bother me for reasons like this, because the user experience is not predictable, and doesn’t really channel you towards where you want to go, because the way the menu is portrayed is fragile and could change at any moment.
(Joel on Sofware had a much better description here: http://www.joelonsoftware.com/uibook/fog0000000249.html)