id Software's Programming Principles

Every Friday I post a video related to one of the themes of this site. This week it’s John Romero at GDC Europe talking about the the programming principles of early id Software.

n the 1990s, during a hyper-prolific period where they released 28 games in less than five years, id Software’s policy for bugs was to drop everything and fix them as soon as possible. The result was a track record of games that were technically innovative, genre defining, and of undeniably high quality.

In this 2016 talk John Romero discusses the 11 principles that contributed to that remarkable run:

  1. No prototypes - the code is the game so polish now and maintain quality
  2. Fallbacks on load failure - keep the game runnable and resilient to errors
  3. Simplify - remove complexity wherever you can
  4. Focus on tools - spend time making tools good as they help make a great game
  5. Don’t rely on testers - as in test your stuff yourself and don’t waste people’s time on buggy code
  6. Fix bugs immediately - fix bugs so they don’t cause more bugs
  7. Target less powerful systems - your dev computer should able to make your game fly
  8. Don’t write code for future projects - You’ll write better code when you need it
  9. Write modular code - encapsulation aids good design
  10. Code transparently - talk about how you’re going to solve your problem and ask for feedback
  11. Embrace differences in programmers - the output matters more than minor differences in coding styles
Joe Mahoney's Picture

About Joe Mahoney

Joe is a programmer, engineering manager, surf life guard and local dad who writes about and curates links covering links covering software engineering and management, career growth, continuous improvement, creativity, and productivity.

Wellington, New Zealand