How to teach a person to enjoy programming?
Meet him where he lives. Take something he's already interested in and use programming to accomplish some goal within that interest. The act of coding is not the end goal, the final "product" is the end goal. Make it about that.

For example, you've said your son is interested in game development. Encourage him to create a simple game using a language like Processing or a tool like Game Maker. The keyword here is simplicity- your son will probably want to make Call of Duty or Minecraft. Encourage him to start with Pong instead, and work his way forward from there.

Maybe participate in a "game jam" like Ludum Dare together. The idea is to spend a weekend creating a game around a theme that's announced on Friday, and you can participate from your own home. The next official event isn't for a couple months but they run "mini jams" every other weekend.

It doesn't have to be game development though. The idea is to use programming within his existing interests so he sees the fun and utility of code naturally. If he's into sports then maybe write a sports simulator. If you travel then maybe have him create a travel log from Google Maps API. If he's into music, create a music visualization. If he's into movies, point him to video processing libraries.

But again, the projects you give him should be simple, so he can make visible progress on them in a short amount of time.

You might also consider being an example: what cool projects are you working on that you can show him? Can you give him a simplified version of something and have him "remix" it by changing variables and logic instead of needing to come up with everything himself?

Related questions:


How can I determine if a student would enjoy or has an aptitude for CS?
Which non-programming skills help make a good programmer?