Of course, you can hit, punch, thump, and whatever-else-the-thesaurus-says more than just creatures. You can hit hard objects, such as paving stones, which may hurt you; you can hit soft objects, such as pies, and hurt them. If you hit a door, you might want to cause a noise to be heard in the room on the other side; if you hit a bag, it could give you some idea of what’s inside. Each version of hit here is different.

Okay, well we can handle those, too. We can write hardobject.hit(), softobject.hit(), door.hit(), bag.hit()—we can write a version for any type of hit we like.

Hmm, but we also have to write hardobject.punch(), hardobject.thump(), hardobject.smite(), hardobject.slap(), hardobject.whack(), and so on. We have to do the same thing for ...

Get MMOS FROM THE INSIDE OUT: THE HISTORY, DESIGN, FUN, AND ART OF MASSIVELY-MULTIPLAYER ONLINE ROLE-PLAYING GAMES now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.