While I agree with you for simple games, mobile games, stuff like Flappy Bird, more complex games like World of Warcraft, Hearthstone, or Civilization require and highly benefit from well thought out systems architecture. Having well defined and well built systems makes the inevitable iteration that much faster to implement. Building modular systems using standard design patterns makes adding content to the game a task to be done by content designers rather than engineers. Again, allowing for rapid iteration.
Apologies for the rambling. I work in games and we spend a LOT of time building well architected systems. We iterate on the game systems almost as much as we iterate on the interface or game mechanics.
All that said, to get back to the OPs question. Build a game! Try to build the underlying systems to be reusable. Then build another game and reuse those systems. Learn what kinds of assumptions you made wrong and what patterns you like. Rinse and repeat. I promise your first game will be a spagetti mess of code, but you will learn a lot. If you don't know OO concepts and design patterns well, start reading and exploring these concepts!
1
06 Jun 2015 09:32
u/nitrixion
in v/programming
While I agree with you for simple games, mobile games, stuff like Flappy Bird, more complex games like World of Warcraft, Hearthstone, or Civilization require and highly benefit from well thought out systems architecture. Having well defined and well built systems makes the inevitable iteration that much faster to implement. Building modular systems using standard design patterns makes adding content to the game a task to be done by content designers rather than engineers. Again, allowing for rapid iteration.
Apologies for the rambling. I work in games and we spend a LOT of time building well architected systems. We iterate on the game systems almost as much as we iterate on the interface or game mechanics.
All that said, to get back to the OPs question. Build a game! Try to build the underlying systems to be reusable. Then build another game and reuse those systems. Learn what kinds of assumptions you made wrong and what patterns you like. Rinse and repeat. I promise your first game will be a spagetti mess of code, but you will learn a lot. If you don't know OO concepts and design patterns well, start reading and exploring these concepts!