The value of hobby game development

language-agnostic

Does attempting to develop some sort of game, even just as a hobby during leisure time provide useful (professional) experience or is it a childish waste of time?

I have pursued small personal game projects on and off throughout my programming career. I've found the (often) strict performance requirements and escalating design complexity have taught me some of my most useful programming lessons.

In these projects to name just a few, I very quickly came face to face with: "Everything is fast for small N". I also discovered the hard way about using basic object oriented design principles to manage complexity.

In a field where many technologies and topics can be quite dry/dull, I think hobby game development is important in motivating new (and not so new) developers to brush up on essential skills while having fun at the same time.

This question talks about hobby projects in general, however here I am more interested in game projects specially and how valuable they are to professional programmers.

Best Solution

You can learn a lot from game development. Game development requires a discipline that you can't find in other programming projects.

Here are just a small set of things game development has taught me:

  • Optimization for speed
  • Sacrificing computational depth for speed
  • Developing under small constraints of memory
  • Building a system that works like an operating system but is geared toward speed.
  • Keeping hundreds to thousands of objects in a tree, each with their own unique characteristics
  • Some areas of game development have great academic value (like Artificial Intelligence, Procedural Algorithms, etc)
  • It doesn't matter how much of a hack the code is, as long as the gameplay is there. Translating this to other disciplines, the objective of programming is to make the customers happy, regardless of how clever or ugly your code is.

Because game programmers are forced to use less resources, they become better programmers.