An Affordance in general is an action a person perceives as possible. Adding a handle to a desk drawer generates an affordance to open it. Without the handle it just looks like a panel and someone would not get the idea that opening it is even possible.
Or notice the link I posted as the second word of the answer. It is displayed in a different color and your cursor changes into a hand when you move to it. This implies that something will happen when you click on it. That's an affordance. It would be possible for Stackexchange to use some CSS to make the link the same color as the rest of the text and even suppress the cursor change when hovering on it. This would technically not prevent you from clicking on it, but it would remove the affordance to do so, so you likely won't do it.
In the context of game design, this means that when you want the player to do something, just making it possible to do it is not enough. The player must be made aware that they can interact with something in some way. So you need to give them a cue that interaction is possible. For example:
- When you want the player to realize they can push an object, make it look pushable.
- When there is a button the player needs to press to progress in the game, place it in a prominent location, make it large and visible and make it look like a button.
- When it is important that the player collects powerups, make sure they stand out from the environment so they are noticed as important.
- When the player needs to use a menu to levelup their character, make sure it is opened with a very large and obvious button which is always visible on the screen and becomes even more visible when there are skill points to distribute. Even better, open the levelup menu automatically so the player is forced to interact with it.
A common beginner mistake in game design is to add a really interesting feature to a game, but then neglect to also add an affordance which enables players to even find that feature or when they find it pay as much attention to it as it deserves.
But professionals are not immune to it either. Anyone who played Sonic 3 on the Sega Mega Drive might remember this frustrating moment:
For those who don't remember it or didn't play it: The player got locked in that room. The affordance to progress was obvious: get that drum out of the way. But what wasn't obvious was how to do that. The player could jump on it, and it started to bounce up and down. This created an affordance: Jump on it to make it move further. But that was a misleading affordance. Jumping did move it, but it didn't move it enough to allow progress.
What the player actually had to do was press up and down while on it. This made the drum bounce much more than through jumping. With that knowledge, that room was no challenge at all. But there was no affordance whatsoever that pressing up or down would do anything. During the whole Sonic series, pressing up and down never did anything to the environment. So most players got stuck in that room for ages.
How would it have been possible to improve this?
- remove the false affordance. Don't have the barrel bounce that much on jumping to remove the implication that this would be the way to progress.
- add a visual cue that pressing up and down would do something, for example by placing up-and-down arrows on the drum and have them light up when the player pressed up or down on their joypad.