It's exactly as @jbadams says.
For example, our studio has offices in Europe and the United States. The offices are a combination of open space, office rooms and even cubicles. In all locations, you "punch in" with a keycard when you come in in the morning and "punch out" when you leave in the evening. During the day, you don't punch in/out (for example for lunch). Most people usually stay for 8 hours anytime between 07:00 and 19:00. On some days, you come later, on some earlier. As long as nobody abuses the hours and is available for all the scheduled meetings (if any), the company is fine and trusts us a lot. We, too, trust our company not to pull any bullshit. At the end of a full month, you should have (number of days times eight) hours on your "punch card", the exact distribution is up to everyone. Most people have a bit more. There's almost no home-office in our company.
There are occasional over times, well communicated, not enforced and paid if it's a lot. On average, developers (coders, artists, testers, etc) won't spend more than 1-4 Saturdays a year, usually 0 Saturdays.
Crunches depend on the production ability to estimate how long the operations will take. Their estimate depends on developers' ability to estimate how long will it take them. Ideally, there's enough buffer and there are no crunches.