Cool title goes here

Anthony's new blog.

Nov 24

“Cheating” and game design

Like a lot of people on Facebook, I tend to play silly web games. Unlike most people though, I have a very low tolerance for the mind numbing tedium involved, and tend to overanalyse things. Plus, I can program.

I’ll use Farmville as an example, but any other popular competitive web-based game can stand in it’s place.

If you take a look at the Zynga terms of service, you’ll notice the usual restrictions on doing idiot things; spamming and abusing people, sending viruses and generally being an asshat. One term bears closer examination though:

xiv) except as may be the result of standard search engine or Internet browser usage, use or launch, develop or distribute any automated system, including, without limitation, any spider, robot (or “bot”), cheat utility, scraper or offline reader that accesses the Service, or use or launch any unauthorized script or other software; …

xix) engage in cheating or any other activity deemed by Zynga to be in conflict with the spirit or intent of the Service.

In other words, no bots! At first glance rules like this are fair enough. You don’t want people scripting your game, getting lots of goodies, and having an unfair advantage. But once you look a bit closer at the game and the business models involved, things start to look a bit murkier.

Playing Farmville

For those of you who don’t know, Farmville is played by plowing plots of land, planting crops in them and then harvesting them once they’re grown. A typical starter farm in Farmville looks something like the image below. Notice how it’s filled completely with crops - this is the optimal layout for your plots: 12 by 12. If you put trees at the front, then they’ll obscure the fields and you won’t be able to harvest them.

Each time you harvest a field, you get some experience and cash. As time progresses and you level up, you get access to more profitable crops and can make more. Depending on the crop, you’ll get 1 or 2 XP to start, plus 1 for plowing the field. You can find a spreadsheet with all the data that you need here.

For day long crops, we’ll get 3 XP per plot per day, times 144 plots, for 432 XP. Each plot will need three clicks - one to harvest, one to plow and another to replant. Checking that against the list of experience levels will give you an idea of how much grinding you need to do. Your first week might get you to level 10 which is only 1800XP, but to unlock peas is 61000 XP, and 61000 mouse clicks - around 141 days worth of clicking.

As if that’s not enough, Zynga provide tools to automate some of the grinding, with items like Tractors. They can plow four fields at a time but Zynga only provide a limited amount of fuel, not enough to harvest or plant as well. If you want more fuel, you’ll need to pay real money, and keep paying. Hence the desire for scripts, and the terms of service to try and prevent people from scripting - Zynga are protecting their cash cow.

The problem

The deeper problem as I see it, is this:

If I can script your game, your game design is broken.

Seriously. If a script can play a game better than I can, your game is boring and tedious. There’s no fun, except in figuring out the optimal route to riches; the rest is just mere execution. If you don’t want people to “cheat” at your game, make it fun, with no boring bits. Zynga know this, but it’s an easy way to make money, so they’re not going to bother changing their game.

Go read some game design articles, or a book or something if you want the details, but one of the critical parts if you want your game to have lasting appeal is that players need to make real, difficult choices. In the context of Farmville, which crop to plant is not difficult at all - just look it up in the spreadsheet and pick the best one to maximise your income given your level and available free time. Ditto for the placement of your fields, decorations and buildings - it either doesn’t matter, or there is one obvious optimal placement.

Solutions?

So what would I do if I were Zynga? What real choices could you make in the context of a farm game? I think a good first step would be to make the basic game world more complex. More complexity generally means that there are more factors to take into account when making choices; the difficult part is in deciding how much to add.

Weather, for example, could make the choice of which crop to plant a lot more interesting. With no rain forecast for the next few days, perhaps those eggplants can’t grow so well and won’t be quite so profitable. Different plants could have different tolerances for rain, wind, sun and frost, making the choice a bit more interesting than just “What gets me the most money?” The weather report might not be 100% accurate either, but with rain tomorrow followed by good sun, it could be worth the risk of planting a more fragile, but more profitable crop vs. something hardy but cheap.

“What gets me the most money?” could also be open to negotiation. Supply and demand have always been factors for real farmers, so why not introduce it in game? Prices of crops could depend on how many people are growing the same crop. If everyone in your group of friends is planting strawberries, then there’ll be a glut, and the price will go down. Rarer crops, or those which are harder to grow will fetch more of a premium, without having to hard code prices into your game.

Demand from farmers could have a similar effect on the price of seeds, and allowing farmers to collect seeds from their crops, then stockpile and sell them later could add several extra dimensions to the game. Chances for spoilage based on weather and storage conditions would remove surpluses from the game and encourage players to spend in-game money.

No doubt there are other factors which could be brought into play - you just need to read your local agricultural news for inspiration. Labour strikes, local supermarket monopolies and commodity price crashes could all provide excuses for fluctuations in the prices of crops and seeds. More complexity, more choices, more fun.

Coming full circle

In the long term, I see scripting as a good thing, not an evil to be wiped out. You save your precious time upon this earth, plus you avoid the crappy design, even if the developer doesn’t eventually change their game.

If even one of the changes above were made, Farmville would be at least an order of magnitude harder to script, and more fun to boot. The scriptability of a game (short of technical challenges such as getting game state out of Flash) could be seen as a litmus test for it’s quality. If it’s easy to script, it’s a crappy game, but if you need to write an expert system in order to do well, then maybe there’s hope.


Comments
blog comments powered by Disqus
Page 1 of 1