quote:
1. gather input from user and/or network
2. update internal state based on gathered input
3. draw current state based on internal state
4. repeat
This is a little too superficial I think
This "pattern" pretty much describes any computer program.
i.e.
1. Get input
2. Process input
3. Output result
4. If not done, repeat
Which is hardly a useful pattern to recognize.
I would say the the Design Patterns book is good if you are interested in learning about software design, which is only a small part of game design. As games become larger and larger, they are less and less software and more and more content driven.
A good example of this would be Quake 3, or more specifically the games based on the Quake 3 engine (Wolfenstein, etc). A great deal of programming went into Quake 3, where as the derivatives most of the work went into level design, gameplay and graphics.
To get back on topic: Game programming really isn''t any different than another other type of user-driver software. So in that sense it is related to GUI programming, rather than say, OS programming.