Triggered by the article I was thinking about how we as game creators think about the players. If they missed the pen in OOO is a good example - one approach is to say tough, if they're stuck they'll cheat. There compromises to be made.
More and more people seem to be wiring hint systems straight into their games, and in a lot of ways, I don't think it's a bad idea. That way, if someone's stuck and needs a walkthrough, they don't need to quit or minimise the game and go online to find one (or dig out the saved HTML page on their machine, or whatever) - they just use the built in one. It's a bit of extra work for the designers/coders, sure, but probably worth it to make sure people don't wander off. It's also really, really helpful if you've not played a game for 2 months to be able to come back and see what tasks you were trying to complete.
Obviously, you don't want to access the thing (from a pause menu or hotkey or something) and get the solution thrown in your face, but some kind of hierarchical layered thing would be ideal. Again, using the pen in OoO as an example,
SPOILERALERTSPOILERALERT, I imagine if a hint system were available from the pause menu, it'd start of showing:
CURRENT TASKS:
* Continue "testing" the Towndate electronically-determined-romantic-compatibility system.
* <Whatever else is currently going on>Clicking any option will show you the next level of hints that you need to do to in order to reach that goal, stopping at any subtask which isn't yet completed. The entire tree for the pen-related puzzle would be something like:
* Continue "testing" the Towndate electronically-determined-romantic-compatibility system. *
You've got the forms. You'll need some people to fill them in. * Specifically, you'll need TWO people to fill them in.
* <Further hints about finding people to fill the forms in>
*
Are the people who've filled the forms in compatible? * Reading both the forms will tell you whether they're compatible or not.
*
Maybe you should make sure they'll be matched up by the computer system. * You'll need to make the forms list the same hobbies and interests as one another.
*
For that, you'll need a pen. * Not got a pen? There must be one around somewhere.
* Someone who owns books full of word puzzles probably has a pen.
* An office block is a handy place for pilfering stationery.
* There's a pen on the top of the bookshelf in the meeting organiser's office.
* Use the pen on each of the forms to write in some additional details.
* Now you just need to get the details read into the Towndate system.
* Return the completed forms to the place where you got them.
* Show each form to the talking computer on your floor.
Other benefits of including something like this in your game is that you can explain your bonkers logic to people, and make it seem like everything you're asking them to do could have been deduced if they'd just spent 30 more seconds thinking about it. And only the tasks and hints which are followed by some other item at the same level in the tree (i.e. the things above in italics) would need to get marked as 'done' by the game, so it wouldn't take too much slotting into the existing code and scripts and stuff. For example, in the list above, I make that number to be 5.
Granted, all this information could also be made available through other means - talking to people, the player character talking to himself - but some hints and clues are probably a bit tricky to work into a conversation or monologue.
Anyway, that's my brainstorming on the subject, and yet another thing which could have been thrown into OoO if I'd thought of it then and if I'd had the time.