Game Development Design Patterns