I've been replaying a game recently on Steam called Spacechem. I had never realized it before but this game does an excellent job of simulating programming. For example:
- Creating small, modular components that can be used in conjunction to create more complex systems
- Multiple processes run in parallel and need to be managed concurrently
- Bugs in your dependent modules that were tested individually can break when incorporated into larger systems if not thoroughly tested
I could go on but you get the idea. The premise of the game has nothing to do with programming but, fundamentally, it is requires the same skills and techniques to be successful. It's amazing because when I started playing this game 6 or 7 years ago I never thought of it as, basically, a training module for building complex applications.
What are some of the games that you found invaluable in learning to program? I am not specifically talking about the obvious ones like CodeCombat, which are great games in their own right, where the primary objective is to teach programming. I am referring to those that are more subtle and teach you the techniques while not ultimately being a coding exercise disguised as a game.