Author Topic: Want to design games, better learn how to cheat!  (Read 1132 times)

Offline Chris

  • Game Owner
  • Level 35
  • *
  • Posts: 2,217
  • Reputation: +28/-1
    • View Profile
Want to design games, better learn how to cheat!
« on: July 24, 2010, 12:52:56 PM »
An old anegdoty of gaming industry, Bullfrog made a game (probably it was Populous), after launch they got a call from university, they had scholars working for 10 years on a problem of simulation of crowd behaviour. After they saw the game they asked how Bullfrog did it, how they did the thing they could not make in 10 years. The people from Bullfrog started laughing, invited them to their labs and explained that it is a game. They did not simulated people's behaviour, they made it only appear that these "people" on screen behave humanlike.

They cheated. They did not make simulation of how humans behave. They only made us believe that these pixel people on screen behave like real humans.

On the net, when you browse countless websites about gamedesign you will see the same mistake repeated over and over again. They attempt to find a perfect solution to a problem. It's not how games are done, these are done by finding the fasters/simpliest/cheapest solution that would produce a desired impression on a player. What player does not see does not exist.

Take a look at websites about pathfinding. Pick any of them, I bet you will see: A*, floodfill, navigation points. And that's it. Where is robust tracing description? I will make another bet, you never heard about robust tracing at all :) Of course not, it is ultra fast but primitive pathfinding  that does not even attempt to find the best route (and theorethical websites do not even consider listing solutions that do not produce perfect solution). It is a very good pathfinding for RPGs (I'm almost sure Diablo II used a heavily modified and sophisticated robust tracing).

What's wrong with perfect solution algorithms (like A*, floodfill, bushfire)? Let me ask, what is the purpose of pathfinding in an RPG? It is to find the nearest route to a certain point. BIIIP!!! Wrong answer :) The purpose of pathfinding is to let the monster to kill the player in the most efficent way (well, actually it is to find a way to kill player in a "realisticly looking" way, but let's skip this point).
Perfect pathfindings are useless in RPGs because there in no fixed destination point :) A basic trick for games that use it: there are 2 doors, monster is appoaching, you close the nearer door, monster change the course for further door, before half of the distance you open the door, the monster changes the route and start approaching you, you fire missiles and when the monster is near you close the door :) Would you say such game has a good pathfinding? I doubt :) But they used the perfect solution, the fail proof algorithm! Well, apparently sometimes "perfect" is worse than "good" :D

Is A* really so bad? Well, there are some (rather few) situation when it is good. First of all, it works in all kinds of turn based games, where the environment is more or less static, also all kind of transport tycoons use them well. But the really justified use of it was in Warcraft 3, where they used it to find the best route using portals (A* can link nodes in a very abstract way, so various teleports, different speed terrain are a piece of cake for it), this was the only game I can think of that had really justified use of the expensive A* algorithm.

A personal note about pathfiding. We were making an old style first person RPG (the one where you rotate by 90 degree) and I quickly coded a "pathfinding". The algorithm was "try to move in the direction of a player, if obstacle move in a random direction (not even try to move left or right, just completely random, could go back and forth)". The tester came, he encountered the moster, run away and started doing something different, after a while the moster "pop up" in front of him (statistically, when you move randomly and try to move in a certain direction sooner or later you will reach it) "wow! the monster is smart" shouted the tester. I decided to stick to the existing "pathfiding" :)
Yes, yes, this is a very bad example, and I do not persuade anyone to make something such crappy, but hey, it worked in a given environment (it would not work if there was a magic map displaying the chaotic movement of the monsters). The player did not noticed anything wrong, the player was content (or even happy) with the moster performance, so purely from designer's point of view this was a top grade 100% recommended solution :)

But the biggest cheating is Diablo 2 number of colours. It will be shocking, but it uses 256 colour palette! With hardware acceleration it uses more, but only for spell effects and transparency, everything else, monsters, items use 256. To make it straight, this game is a bit old but at the time it was realeased 3D was already ruling the world and no one, absolutely no one was making 8bit gfx anymore. They did it. And they got away with it, I bet very few people noticed it (actually I know it ony because we were attempting to make some isometric game back then so I was manually counting the colours used to undercover their technologies). First, what is the benefit of 8bit bitmaps over 16bit? Well, it uses half the memory :D It was a huuuuge difference back then (I think good gfx cards had like 16MB, but I might be wrong, anyway no one had hundreds of MBs or GBs for sure). How they made it? Well, they made an insane effort when designing the colour palette (I can only imagine all these top world artists sitting in a room and discussing for months which colours will get how many slots in the palette), pure genious.

Offline Nox

  • Level 35
  • **
  • Posts: 768
  • Reputation: +12/-2
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #1 on: July 24, 2010, 04:04:16 PM »
Nice article :)

Looking at the article I though you're gonna talk about how many players tend to find the strongest solutions and (ab)use them or even cheat etc.

'm not happy I'd have to agree with you on this one but it seems true.
Long time ago I made some trash game where opponents' behaviour was just: if healty - move towards player and attack; if not - move away from player ... and yet the feel like they have some thinking within was there

Although I actually struggle with making out more examples where your idea could be applied


On the other hand I often think about Company of Heroes which is the most extreme of Relic's gamedesign phisolophy. They actually uncover to player only a little of numbers and mechanics and the rest - and the rest is COMPLEX* - remains hidden.
It's hidden and complex and yet I feel that it's what makes the game feel so realistic (while really enjoyable gaming-wise), so there's actually not much cheating there... the point is CoH's telling me "complexity doesn't *have to* be bad thing"

*) to the point weapon stats are useless for me as they're so complex I don't make the whole picture, I have to observe how it behaves or read some conclusion, still it doesn't reduce my feel from the game

DII using 256colors?? And considering I find that game actually beatiful... pretty good job have they done
Meet us at an IRC irc.freenode.net #bbg as well
https://vimeo.com/36579366 (a must-watch) | Join BOINC - no longer a hype, but you can help never the less

Offline JGadrow

  • Level 35
  • **
  • Posts: 1,133
  • Reputation: +23/-2
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #2 on: July 24, 2010, 06:42:15 PM »
Yup. the simple solution is usually the best one. ;) I had a "test" recently for a potential employer where they had a Drupal module with an issue and I was supposed to find and solve the issue.

Of course, it also said, "fix anything else you find." So seeing as how it was a small module, I just decided to rewrite the whole thing with my own standards super-imposed over their program's objective. Took me about 30 minutes but I made structural optimizations to their database and, because of that, I was able to reduce their total data storage from approximately 15 lines of code to 1. lol Not to mention that because I had streamlined the logic and made the file slower I reduced parse time required to load the file (or perform the initial load for cached solutions) and sped up the speed of their queries.

I'm interviewing with their technical director on Monday now. lol ;)

However, there are two counter-points that I'll provide:

1) The door example is easily fixed by giving a single Method to the Monster object: $monster->OpenDoor (). The cool part is that you can reward clever players if the monsters are supposed to be "stupid" by figuring out tactics like this. But, if they try this on a more intelligent denizen, they are in for a surprise.

2) Audience. Audience is everything. People are expecting more realism in their gaming now-a-days than ever before. Even down to adding physics engines so that when things blow up the parts fly away or bounce around in a realistic manner. Personally, this is cool if you're paying attention but otherwise, it's wasted CPU (or GPU depending upon implementation) cycles. Still, there's a growing number out there who are becoming rather elitist in the games that they play, at least as far as "standard" gaming is concerned (you know, download and install type games, not browser-based).

But, still, nice rant. :)
Idiocy - Never underestimate the power of stupid people in large groups.


Offline jannesiera

  • Level 35
  • **
  • Posts: 1,026
  • Reputation: +6/-1
    • View Profile
    • BBGameDesign
Re: Want to design games, better learn how to cheat!
« Reply #3 on: July 25, 2010, 05:03:16 AM »
This is the terminology you are looking for chris: http://pcg.wikidot.com/pcg-algorithm:teleological-vs-ontogenetic .

Offline Chris

  • Game Owner
  • Level 35
  • *
  • Posts: 2,217
  • Reputation: +28/-1
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #4 on: July 25, 2010, 10:22:10 AM »
Looking at the article I though you're gonna talk about how many players tend to find the strongest solutions and (ab)use them or even cheat etc.
More like how designers fail to find the proper solution because they are blinded by unhealthy desire of perfection :)
Honestly, sometimes I get a feeling designers perceive cutting corners/using not the most trendy solution as an immoral practice or some kind of disallowed cheating :)

Quote
Long time ago I made some trash game where opponents' behaviour was just: if healty - move towards player and attack; if not - move away from player ... and yet the feel like they have some thinking within was there
Well, they had some thinking, acutually perfectly accurate thinking. You don't need intellect in combat, just animal instinct. If strong attack, if weak escape. OK, maybe you could add "throw grenade" :)

Quote
Although I actually struggle with making out more examples where your idea could be applied
You invent more examples when you are threated by a deadline you can not meet using standard solution. Nothing boosts imagination more than that :D

Quote
I just decided to rewrite the whole thing
LOL. Total rewrite can indeed be a miracle cure for a project. Once I was working on a game for a month, then lost all source codes. I rewrote it in 2 days and it was faster, smaller, better, simplier, less buggy, etc, etc.


Quote
1) The door example is easily fixed by giving a single Method to the Monster object: $monster->OpenDoor (). The cool part is that you can reward clever players if the monsters are supposed to be "stupid" by figuring out tactics like this. But, if they try this on a more intelligent denizen, they are in for a surprise.
That's the example of wrong thinking. You can not use this solution because you *always* need monsters that do not open doors: spiders, snakes, beetles, dogs, mutated something, giant rats (feel free to list RPGs that do not use these :D).

Quote
2) Audience. Audience is everything. People are expecting more realism in their gaming now-a-days than ever before. Even down to adding physics engines so that when things blow up the parts fly away or bounce around in a realistic manner. Personally, this is cool if you're paying attention but otherwise, it's wasted CPU (or GPU depending upon implementation) cycles. Still, there's a growing number out there who are becoming rather elitist in the games that they play, at least as far as "standard" gaming is concerned (you know, download and install type games, not browser-based).
1) Physics is visible by users, so it is not a good example.
2) You can put on the box "the game uses physic engine XXX" and boost the sales, this alone makes it a valid reason to use.
3) And finally, they do not use real physics, they still cheat :D "Real physics is unplayable" (at least that's what they say, I'm not into physics), they modify it (maybe not in all games, just in the most famous), read postmortem of Quake III. They key to the success to this game was that they cheated and allowed in the physics engine unrealistic things like rocket jump.

Quote
This is the terminology you are looking for chris: http://pcg.wikidot.com/pcg-algorithm:teleological-vs-ontogenetic .
If you made a topic about a completely random/unusual thing, you can still bet someone invented terminology for this and wrote a dissertation about that topic :)
« Last Edit: July 25, 2010, 10:29:51 AM by Chris »

Offline JGadrow

  • Level 35
  • **
  • Posts: 1,133
  • Reputation: +23/-2
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #5 on: July 25, 2010, 02:32:39 PM »
That's the example of wrong thinking. You can not use this solution because you *always* need monsters that do not open doors: spiders, snakes, beetles, dogs, mutated something, giant rats (feel free to list RPGs that do not use these :D).
See, those are the "stupid" monsters that I was talking about. You would not give these kinds of monsters the ability to open doors (heck, I think even allowing them to path another direction is incorrect as they would likely just swarm up to the door, closed or not and mill around.

But, that's what I was talking about. You would actually want a mix of abilities like this so that some monsters were stupid and easily fooled / defeated by intelligent players. Gives the players a sense of accomplishment. However, the more difficult and "intelligent" monsters should be able to overcome the obstacle.

1) Physics is visible by users, so it is not a good example.
2) You can put on the box "the game uses physic engine XXX" and boost the sales, this alone makes it a valid reason to use.
3) And finally, they do not use real physics, they still cheat :D "Real physics is unplayable" (at least that's what they say, I'm not into physics), they modify it (maybe not in all games, just in the most famous), read postmortem of Quake III. They key to the success to this game was that they cheated and allowed in the physics engine unrealistic things like rocket jump.
Yup, you just made the same point that I did. These gamers are becoming 'elitist.' In the same way that some people buy a fancy new iPhone just because it's got a touch screen or something like that, these people buy games for the gimmicks thrown at them. It's a stupid way to decide how to spend your money but historically it's been exploited to the benefit of salesmen everywhere. lol

And that's where we are now in terms of distributed gaming. Everyone wants every game to have eye-popping detail, to have critters that behave realistically (even when you're not interacting with them, see Oblivion), and even to have their stuff blow up and bounce off of things in a realistic manner (physics engines). Eventually, we're going to end up playing games on a holodeck like in Star Trek. lol Course... that would be pretty cool except for the cases where you're getting hit by an opponent. ;)

*Edit - Forgot to trim the last part of the quoted text.
Idiocy - Never underestimate the power of stupid people in large groups.


Offline jannesiera

  • Level 35
  • **
  • Posts: 1,026
  • Reputation: +6/-1
    • View Profile
    • BBGameDesign
Re: Want to design games, better learn how to cheat!
« Reply #6 on: July 25, 2010, 02:39:11 PM »
Quote
This is the terminology you are looking for chris: http://pcg.wikidot.com/pcg-algorithm:teleological-vs-ontogenetic .
If you made a topic about a completely random/unusual thing, you can still bet someone invented terminology for this and wrote a dissertation about that topic :)

Well, I actually think it's not a random/unusual topic in procedural generation ;).

Offline cirqueofcruelty

  • Level 3
  • *
  • Posts: 9
  • Reputation: +0/-0
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #7 on: September 15, 2010, 08:46:30 AM »
They cheated. They did not make simulation of how humans behave. They only made us believe that these pixel people on screen behave like real humans. [...] On the net, when you browse countless websites about gamedesign you will see the same mistake repeated over and over again. They attempt to find a perfect solution to a problem. It's not how games are done, these are done by finding the fasters/simpliest/cheapest solution that would produce a desired impression on a player. What player does not see does not exist.

I don't agree with this. I don't have experience in the game industry so I can't claim that this is not actually true, but I see you first used the word "behaviour" and then you picked the pathfinding problem as an example. Well, in general, pathfinding is a very specific problem, somehow related to a planning domain, and it can hardly represent a good example of behavioural study, which is much wider. I do know about people working on behaviours applied to games, even if they are not industry: they took the game setting just to prove their claims, and for them an intelligent behaviour is what you commonly expect it to be. There are also actual games in which this has been already applied, mostly sims-like games, where an agent is given a set of rules expressed in a normative form and they try to simulate a random behaviour, possibly goal-driven, according to that set. It is obvious too expensive for a simple game or browsergame, but this doesn't mean that the player would not be able to notice the difference. If you claim that the player simply doesn't care or at least he just requires a decent degree of 'illusion' to enjoy his playing I do agree but, again, it's not the same thing.

Offline Chris

  • Game Owner
  • Level 35
  • *
  • Posts: 2,217
  • Reputation: +28/-1
    • View Profile
Re: Want to design games, better learn how to cheat!
« Reply #8 on: October 10, 2010, 04:42:41 AM »
http://blog.wolfire.com/2010/10/Imposters You see?! I told you they cheat! Even virtual trees in games cheat on us :D

 


SimplePortal 2.3.3 © 2008-2010, SimplePortal