

How games cheat to help players - DanielRibeiro
http://robotinvader.com/blog/?p=164

======
tobtoh
> The goal of good handling code isn’t to maintain a “correct” simulation,
> it’s to provide a fun game. It sucks to miss a jump by three centimeters.

That statement really resonated with me. I'm currently playing Battlefield 3
on the Xbox and the number of times I've died because I went to duck into a
doorway to avoid enemy fire, only to get halted because the door frame has a
3cm ledge that my battle hardened soldier has difficulty stepping over.

It's amazing how a seemingly trivial issue can really drive up the frustration
with a game and take away from it's enjoyment.

~~~
pantaloons
Reminds me of games with lag compensation. It has been observed that players
missing their shots due to lag get incredibly frustrated.

The best way to deal with this is to use the latency of the shooter to predict
what their bullet would of hit at the time they fired on their screen. This
just cleverly shifts the lag from the shooter to the target, but players
getting hit by lag compensated shots will rarely notice or care; certainly not
as much as a shooter would when their shots miss.

------
JonnieCache
Continuing my theme of posting relevant google tech talks, here is Soren
Johnson, the lead designer and AI programmer on Sid Meier's Civilisation,
discussing this very subject with specific reference to the evolution of civ's
AI over the years. Extremely enlightening, whether you are a gamer or not.

<http://www.youtube.com/watch?v=IJcuQQ1eWWI>

 _"Artificial intelligence is crucial to any strategy game, providing a
compelling opponent for solo play. While many of the challenges of AI
development are technical, significant design challenges exist as well. Can
the AI behave like a human? Should it? Should the game design be adjusted to
accommodate the limitations of the AI? How do we make the AI fun? Should the
AI cheat? If so, how much? Do we even want the AI to win? This session
suggests some possible answers to these questions using the "Civilization"
series as a case study. Ultimately, developers must choose between a "good" AI
and a "fun" one, with an understanding of the trade-offs inherent when
deciding between the two."_

------
shabble
There was a bit I'm reminded of in the write-up on the Crash Bandicoot
series,[1] where they mention 'Dynamic Difficulty Adjustment.[2] Essentially,
fail enough times at a given point, and it gets a little bit easier (sloppier
timings, more power-ups nearby, etc) until you get past it.

 _"Good player, bad player, everyone loved Crash games. They never realized it
is because they were all playing a slightly different game, balanced for their
specific needs."_

Reminds me a lot of what I'm sure was a Mariokart64 behaviour - that the
powerups you received were directly proportional to your race position, giving
everyone behind you much better options to ruin your day.

[1] <http://all-things-andy-gavin.com/video-games-archive/>

[2] [http://all-things-andy-gavin.com/2011/02/07/making-crash-
ban...](http://all-things-andy-gavin.com/2011/02/07/making-crash-bandicoot-
part-6/)

~~~
v21
Yeah, Mario Kart is infamous for it's rubber banding. It's possibly a case
study in going too far - it's prominent to the point that almost all players
notice it. And it's frustrating to get spammed with blue shells when you're in
the lead and not be able to do anything about it. Ideally, as the article
says, you'd never notice.

~~~
icebraining
_And it's frustrating to get spammed with blue shells when you're in the lead
and not be able to do anything about it._

I wouldn't say _anything_ ; a decent strategy for when you see someone else
with a shell is to slow down to 2nd place and let the new 1st get hit (which
will then put you on 1st again). Timing is essential, though.

~~~
gumbo72
This.

------
wmf
In a related vein, Canabalt looks like the simplest game ever but it has
similar fudges to play better. <http://blog.semisecretsoftware.com/tuning-
canabalt>

------
exolab
I bought the game to see how you implemented that. The game is 99 cents.
Before the second(!) level, I am asked to buy a blade. Turns out

a) I have to buy money to buy a blade (WTF?! Either you charge for the game or
the in-app purchases) b) I cannot close the buying menu without buying
anything c) It is completely unclear to me how the practice blade is different
from a "real" blade

You talk about how you detect players' intentions. My intention was to buy a
game for 99 cents. Not for 10 bucks.

Seriously...

~~~
exolab
And then I get the vanilla sword for free after lv.2? Dude, you are confusing
me. What would have happened if I had bought that sword after lv. 1?

~~~
exolab
And now, after lv. 3, I think I understand your approach. IMHO you should
explain that buying for cash is an alternative for the lazy. Still I think
that if you go down the IAP road, you should only ever charge for additional
content (e.g. the next 50 levels), and not for power ups for the game.

Just my 2 cents (sorry, couldn't help it).

------
AndyNemmity
I run a simulation football game called <http://deeproute.com>

So far the biggest mistake I believe I've made is not cheating to help players
win. I made a brutally difficult simulation game.

We have tons of players quit simply because the game is too hard. Because you
are 1 person versus 31 other people, there is only 1 winner, and 31 losers.

People don't like this.

Compare this to our competitors, and they make losses not exist, and otherwise
"cheat" the experience so everyone is above average.

The worst player in the games, looks like he is the best.

There has to be a happy medium somewhere, and I am the ruthless simulation
side of it for now. (Trying to figure out how to change...)

~~~
mey
Think rubber banding, part of the fun for the player is thinking they have a
chance. Either by splitting up the players into leagues based skill levels
(star craft 2), or fudge the game slightly (or significantly in mario kart's
case)

~~~
AndyNemmity
I agree with you, but here's my core problem.

My gameplay involves 32 human players playing against each other in football
for a title that only one can win. Each season takes a month.

That's 32 shades of grey, with 31 of those shades being losses.

How do you rubber band that? I'm about to build a facebook app for our game,
and I'm trying to brain storm solutions to this problem.

The only answer I have so far is make 32 team leagues, with 16 fairly inept
CPU players. But not indicate they are CPUs, so that humans believe they are
beating 31 other humans, even though the reality is they are beating 15.

This cuts my problem by a lot, but adds overhead, and removes a lot of the
challenge.

~~~
greendestiny
The problem is in seeing it as a single competition. Have small sub-
competitions with a higher luck component, so that people can experience
winning a game, or even a round on the way to getting good enough to win a
whole season. Make those wins satisfying and people will happily take a
beating overall.

~~~
onemoreact
The idea of several different goals is how the US football system works. Most
games in the season 'count' by improving your seeding in the playoffs but it's
also binary so you get in or don't. Adapting a similar system for video games
could work vary well.

I would suggest banding things so 20 teams compete for a spot in the playoffs
which consists of 16 teams. (aka 16 people get a win at the cost of 4.) And in
the actual playoffs you only lose one game, so rank people based on what round
they get to. Something like winner!, (A++) lost final game, (A+) final 4, (A)
final 8, (B) got into playoffs, (Try again)did not get into playoffs.

The secret is letting people move on as soon as they can't win any more while
making them feel like getting as far as they did is still worth something.
Lost the first 6 games? Hey start over it's ok, I hope you learned how the
game worked etc.

~~~
AndyNemmity
It's a good idea, but it's not football. We're a football simulation, and
mucking with how a league works suddenly makes it something else.

A football like game. There's nothing wrong with a football like game, but
we're a simulation.

Would sort of defeat the purpose. The way to do it in our case probably
involves outside "goals" like...

"Obtain a Quarterback over 90 overall."

Or something similar.... Things you can accomplish, outside of the normal
system.

------
andrewfelix
Back in the early 90's when platform games were all the rage I was always
confused as to how a platform game that looked great could get a bad score in
the magazines I read. For example the SNES game Blues Brothers looked better
than a lot of other platformers and it sounded like it had similar mechanics
to Mario Bros. So how could it possibly get a low score? I think this article
might be the answer to that question.

------
teamonkey
Another 'cheating' method used in games is to keep the player in a state of
flow. For example, in a fighting game combos could become increasingly easier
so that the player stays in the zone.

------
jeffem
Developers really need to understand their users and implement these cheats
intelligently or they create frustrations of their own.

As an example, I played a football game that obviously had some type of
tackling assistance. When I dove to tackle someone, my defenseman wouldn't
dive to the spot I was aiming at, but instead try to orient himself to the
ball carrier. The developers probably thought that this was helping people
with their "misaimed" tackles, but it was actually causing me to miss them.
When I dive, I'm aiming for a spot where I think the runner will be, not where
he is at the moment I hit the button.

I've seen these types of things enough that I'd approach the idea of
implementing a cheat much more cautiously than other features.

------
latch
A lot of which is probably what makes us old-timers complain about how easy
games are these days. I don't think i ever finished battletoads!

On the flip side, someone once commented that games should have a "toddler
mode" where anything the player does just adds up more points and won't kill
you. Obviously wouldn't work for every game, but I thought it was a brilliant
idea.

~~~
wmf
I like the way Jeff Vogel put it: "Make Your Game Easy. Then Make It Easier."
[http://jeff-vogel.blogspot.com/2009/11/make-your-game-easy-t...](http://jeff-
vogel.blogspot.com/2009/11/make-your-game-easy-then-make-it-easier.html)

------
gujk
It is interesting how games differ from sports or academic contests. In
sports, losing is OK because it makes you work harder to become stronger or
smarter. In games, losing (or winning) is almost pointless because getting
better at the game doesn't make you better at anything else in your life; so
the value is in feeding some emotional or anesthetic aspect.

~~~
wlievens
That probably only applies to single player games. You can compare single
player games to movies: you can't "lose" in a movie. Multi-player games are
more like sports, in which case losing has a different meaning.

------
jamesu
Also interesting is this deconstruction of Super Mario World's camera logic. I
never noticed so much thought was put into something as trivial sounding as
camera movement.

<http://www.youtube.com/watch?v=TCIMPYM0AQg>

~~~
eru
We can only say that today, because we forgot about the other early third-
person 3d games that had horrible camera movement.

------
bprater
Cool. I just bought the game to support the author in taking the time to write
this article. I think we all remember early video games when being pixel
perfect in landing a jump was enough to pull our hair out.

------
xxdiamondxx
Entirely unrelated, but is there a way to find out why this is incompatible
with my device? Samsung Galaxy S...its not that old!

~~~
tonyarkles
I've only done a small amount of Android development, but I recall the stock
firmware on the Galaxy S to be somewhat buggy with respect to game
development. Things would work, but then crash unexpectedly. The solution was
to blacklist that firmware version, so that you didn't get a huge pile of bad
reviews due to the crashing.

I might not be remembering the details exactly, it was about a year ago I was
working on this stuff.

