No, really. Are they actually that different?
A lot of us are app developers and look at video games like they are some kind of foreign entity that we just cannot understand. They are art, not science. They are entertainment, not business. Games are a whole other beast. I'm sure there are a number of other explanations that I have been told over the past many years, but as I have attempted to look behind the curtain of video game development, being the producer on one for the past year, I don't think they are that different, although there are some differences.
In video games, having a clear understanding of the vision is key. This is why you end up with someone that is responsible for knowing that vision inside and out. Why? Well, you need to know what sort of experience you are trying to deliver to your player.
Apps have the same sort of thing. We call them requirements and they act as the foundation for the software we are trying to build. But think about it: in a game your director has requirements too. Requirements like, "Tell my story" or "Have the player build a city" or "Make the player battle the evil octopus on the stage at the Opera House before the girl is rescued by the gambler with the airship". How is that any different that, "Once the user logs in, they should see a welcome message immediately". You can test both requirements. You can build both requirements. The difference, is that one of them must be delivered in a way that makes it fun. I'll call it the fun factor.
Can you test the fun factor of game requirement like you can a regular requirement in an app? Of course you can. It's called playing the game. Play any game, video game, card game, board game, or whatever, and you will immediately know if it is fun or not. Sure, you can't measure fun using TDD or BDD. But you can definitely test it.
I have seen it time and time again, that as app developers we focus in on the making sure that the functional requirements are met rather than the experience itself. "The experience will come later" they say, but it never does. It's not a priority. The priority is always these boring requirements that focusing on functionality. Shouldn't apps have a "fun factor" too? Shouldn't that fun factor have a priority in its development? If your apps users are enjoying using the app because it provides them functionality through an experience, maybe they will like it more. Maybe they'll buy it and keep using it, and get their friends to use it and buy it and they will get their friends to use it and buy it, and so on.
Think about great apps. Does anyone say, "Wow, I love this app because it provides me these three function that I love, even though it looks like crap and it's a pain to get the functions I need. I love it SOLELY on the functionality that it provides, and definitely not the experience that it provides along with the functionality". Maybe they do, but I've never heard or seen that. The apps that stand out a bunch are the ones that have a fun factor. No, I'm not talking just about gamification or social media integration or something else that is seen as a "fun" buzz technology or design choice. I'm talking about people having fun with the app. I don't really care how they have fun with the apps, but the ones that are talked about are those that have some kind of fun factor built into them, whether it was by design or not.
That fun factor, although not a big focus in the app development world, is the primary focus of the game development world from what I've seen so far. The part app developers think is so foreign is making software that is graded on metric that isn't easily measured, rather than a list of functions that need to be implemented. Personally, I think that app development would be much better if developers took some game development ideas into their realm, like having a director in charge of vision. That vision can be based on a set of requirements, but the vision of how to deliver those requirements is the part the director is responsible for.
I know it's not that cut and dry, but it's a thought. Maybe that's why I went into software development I focused on user experience. Maybe that's why I always believe that a great user interface is the key to any successful software, games and apps alike. Maybe that's what I was missing in my career, an emphasis on the fun and enjoyment of software. Maybe that's why I love video games so much.
Does that mean that now that I'm in looking in the world of game development, that means that the only way I'm going to test my games is by having people play it?
Sure, making sure that a game is fun is the most important part of a game. That being said, the game has to function if you want it to be fun. If I'm playing Lovebucket and it crashes the web browser, then melts my hard drive. I'm not going to have fun. Hell, if I click on "Play" and then it takes me to the Options screen, I'm going to be annoyed. Annoyed is not fun, in fact being annoyed at something makes it harder for that something to make me have fun. Why? Because it annoys me, that's why.