After seeing the original debate I'm sure I won't add anything you haven't heard already: Game Programming Patterns - https://news.ycombinator.com/item?id=14475489.
...but once again I recommend anyone who reads this post go browse wikipedia’s design patterns section. Its pretty neat: