I approach those situations the same way that I approach answering questions on this blog. I try to explain the reasonings behind the decisions we make in a way that I think they will understand, and I try to establish our relationship as cooperative. The important thing is the mutual understanding that we’re all working together towards the same goal. Establishing that mutual goal sets a good baseline for communication - we can all agree that we’re operating in good faith.
Once that’s done, if they continue to ask for unfeasible things, I will try to pitch them on a 90% solution - one that does the essence of what they are asking for, but is actually feasible to do. Most of the time, the goal isn’t a specific implementation but an experience or feeling we’re trying to evoke in the player. Those who don’t understand the details of game dev often lack the context and vocabulary to describe what it is they’re asking for, so it’s up to my communication skills to parse what it is they want.
If none of that works and the work environment is too frustrating, I polish my resume and start looking for a new job. I’ve got a lot of experience and I’m very good at what I do. There’s no need for me to put up with an inhospitable work environment if I don’t have to.
Got a burning question you want answered?