Hacker News new | past | comments | ask | show | jobs | submit login
How games cheat to help players (robotinvader.com)
131 points by DanielRibeiro on Dec 19, 2011 | hide | past | web | favorite | 45 comments

> 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.

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.

It is honestly baffling to me that DICE has not addressed the "need to press the jump button to get over curbs and small rocks" issue since even their very first game, an issue ironically even more prevalent now with the added details afforded by advancing hardware. I do appreciate the leaps (hah) they've made with their vaulting system, but it too has its own frustrations.

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.


"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."

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...

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.

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.


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

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.


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?

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).

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...)

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)

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.

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.

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.

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.

A couple ideas: (1) do what you can to make sure the outcome is in doubt until near the end, and (2) arrange so that the person "in the lead" changes often. Only one person can win, but a lot of people can feel like they were close to winning.

If your players are mutually anonymous, have the worst player play against multiple other teams each week, soaking up the losses. Each player gets their own Potemkin village where half their opponents are actually copies of the worst player. Now you have 1 loser instead of 31.

Split into four ordered leagues. Let the leagues last one week. In each league, promote the top two and relegate the bottom two.

Right, but that isn't American football. That's something else.

Sell the pain. Football isn't for babies.

Speed up gameplay with UI improvements, etc, so that players can compete in more simultaneous (staggered) competitions, increasing their chance of a good score.

Do you have a tunable AI to test players against, for making sure they get into the right skill-group? If people are in a good group they'll enjoy a loss more than if they're totally outmatched but somehow forced to play it out. The game takes so long it'd be discouraging to try to learn it while losing badly. Maybe let people drop out at any point (to join a game starting today), and be replaced by a bot of their skill? This could also handle no-shows.

That sounds like a neat game, but there is zero information on the website. I went ahead and signed up anyway just to see what it's about, but I would not have if I wasn't such a football nut.

How is the game played? Is it like fantasy football? It there a screenshot of what the game looks like? Are real teams and players in the game? You should consider answering these questions on the home page.

That's a great idea. I will do that.

I am really quite poor at the design, and work flow. I mostly spend my time trying to make the most accurate game play as possible.

So I am usually doing statistical analysis on how much yac is the average gained for throws behind the back field, and things like that. Focusing so much on the details, I lose sight of a lot of the core things a website like this needs.

To answer your questions

"How is the game played?"

You choose a league, and then a team. From there, you are playing in a football league with 31 other people. The football year goes, Free Agency, Draft, Preseason, Regular Season, Playoffs, Repeat.

Different leagues have different rates of play, but I always play 1 spin a day. That's most popular. So every day 1 spin occurs. Most of the time, that is one game day. So every day, a new game is played. You check out the results, make adjustments. Do it all over again. Make some trades, remove guys because of injury. Sign replacements.

"Is it like fantasy football?"

No. It is more about the football management side of a real pro football team.

"Is there a screenshot of what the game looks like"?"

The game is the website. I think the most valuable thing here would probably be a link to what a boxscore looks like. What a gamelog looks like. Pieces of the game like that.

I have made some recorded sessions that I put on youtube, but it's sort of me talking over me playing.

"Are real teams and players in the game?"

This is coming with the start of me working on a facebook version.

How this works I am still working out. At the moment, it would be just allowing you to practice your team against real teams. Perhaps there's a ladder outside of normal gameplay to beat all the real teams.

Not sure. Lots of ideas. I could even run reality back from.. I don't know.. 1994.. and you could reexperience the drafts that occurred.

I really should answer them on the home page.. Not sure how they should look.

Again.. I'm not good at design, so I tend to focus on what I am good at, and the other stuff doesn't get done :)

You did a great job on the game. I've been poking around and it looks like it will be fun. I also see that there is a lot of documentation once I am signed in. Maybe just put some basic information on the home page. A few bullet points worth of content just to explain what it is.

Have you ever read "The Smart Money"? It's about some hacker gamblers who built a simulator and placed their bets according to its results. Ever since I read it I have wanted my own simulator to play around with. I'm not a gambler, but I thought it would be neat to make a game out of it. I don't have a background in statistics and realized very quickly that I would be in over my head trying to make one myself. I'm glad you did the work and I can just play!

No, haven't read the Smart Money, but I am working on adding gambling lines to the fake games. You'd be surprised how much you have to learn about gambling to do that :)

You could get some ideas from chess "swiss" tournaments and rating system. The idea is to couple players of similar strength in each round.

A very weak player will likely lose the first two or three matches in a row, but then have a real chance against some other weak player.

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.

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.

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.

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.

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.

Academic results are adjusted all the time.

Sports, there is no way to adjust those results. If you lose a game, you lose. There is no fudging anyone can do to avoid that.

You are setting up a strawman.

Professional gamers would disagree with you

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.

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...

Meh, I'm an old-timer and you know what? I don't long for the days where a minor fuckup had you redo a large slab of exactly the same damn thing over and over. There are so many games out there to enjoy these days that there's no point in wasting time to defeat an artifically difficult situation. "Yeah! I defeated Marioclone 239b level 23! I am the man!" just doesn't cut it anymore - bragging rights about mere timesinks are a thing of the past.

Sure, some difficulty is nice, but be careful of the rose-coloured glasses of nostalgia.

I think most current games already strike a good balance with the use of ratings, bonus quests and achievements. Basically anybody is able to complete the game by simply spending 8-40 hours playing, but getting a perfect rating, completing all the hidden quests and completing all the achievements will take the same sort of skill and dedication that those fabled games of old required.

As an old-timer with a job and a family I really appreciate being able to enjoy and make progress in games despite only having a couple of hours a week to play.

> A lot of which is probably what makes us old-timers complain about how easy games are these days.

Still there are some who buck the general trend. And I'm not only talking about indie games like Spelunky, but also (among all things!) several games for the oh-so-family-friendly Wii: Donkey Kong, Super Mario, and even Mario Kart on the higher difficulty settings.

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.


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

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.

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

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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact