Linear games can be designed faster, tighter, and with more control, but they can leave the hard-core gamers feeling disappointed. It's a difficult problem. I think that developers have to look at the game they are developing, recognize their target audience, and design accordingly. The best game is the game that people enjoy playing the most, and therefore the most important thing you can do to ensure that your game is as good as it can be is to ask people. Focus groups and beta tests are the best weapons a designer has in his or her arsenal.
Games are successful when enough people think they're fun.
Games that fail generally aren't fun, or they're not distributed properly, so people never find out about them. There is a lot of give and take when you're developing a game. No matter how good your vision for a product, no matter how good your design document, or how awesome your team, it's inevitable that you're going to make mistakes. During the development of Homeworld , we sometimes felt like we were taking two steps forward, one step back. It takes a very carefully managed process of trial and error to come up with a game that is both fun and revolutionary.