I was thinking about some of the lessons I’ve learned (the bad way) over the years. I thought I’d just throw a quick list together and post it up for people to have a look at. Over the next while I’ll expand on the points as time allows.
Iteration is everything
A renderer is not a game engine
A great renderer with lousy tools makes a lousy looking game
No team should (or will) ever seriously consider using a game engine until it has shipped at least one successful title.
Never license software for the features in the next release. License for the current version.
Most programmers are overly optimistic about the time required to build a new version of and old system, especially if they didn’t write the earlier version.
Depth (or complexity) in a game is best engineered through the interaction of a few simple systems which give the desired result. Unstructured complexity is just a nightmare
No design idea goes straight from concept to a good game mechanic without iteration. (see point 1)
You are not ready for production of a game until your team can create gold standard slices of all imagined forms of gameplay.
To make a great game you must love the subject matter and intuitively know what does and does not belong.
The key to a great game is a great team.
The key to a great team is respect and alignment.
Team alignment is best achieved through an early gameplay mockup video or animatic
If you ask five members of the team to describe the game you are making and they all describe something wildly different, you are on your way to game development hell.
A game concept you cannot describe in 2 minutes without using game examples is a game which will never be funded.