Amazon Interview Question
SDE-2sCountry: United States
Interview Type: In-Person
This question is definitely designed to test your ability to ask questions about a given task so that you can clearly tackle the problem. Starting questions I would ask back:
- Real time or turn based?
- Does internet scale mean played in a browser, or able to handle an 'internet sized' amount of users?
- What are the limits of my resources? Server memory, processing, disk space....
- Do we have a target amount of concurrent users?
- Who is our target audience?
- How authoritative is this? Can the client just send updates about their state to the server and have the server relay it? Movement gets broken by things like speed hacks at this point...but the MMORPG requirements are so low that cheating to run through the world doesn't seem like a big deal.
- Can a player do 2 actions at once?
Things of that nature.
It seems like companies have started using more of these "design questions" to test candidates, in addition to the algorithmic ones. I agree asking for clarifications is a good start. Then just start giving the simplest solution while reiterating the assumptions and making the interviewer aware that you know this solution won't do this or that. As you go on the interviewer would probably start adding requirements like how to scale this to millions of users, how to make it robust and fault-tolerant, or how you might need to redesign given new functionalities etc.
Personally find these less stressful because you always have something to say rather than getting stuck.
I'm not sure how anyone could give an answer here without more information on what exactly is being asked. During an interview, such an ambiguous question would probably be a test of how well you ask questions to clarify the requirements. You'd want to start by asking more about the nature of the game, who are the target users, etc.
- eugene.yarovoi April 17, 2013