The summary.
BUILDING YOUR OWN ENGINE IS YEARS OF WORK BEFORE ANY GAME EXISTS
Justified only when the engine is the goal, or no engine meets a hard requirement. And never switch engines mid-project — it costs most of the work already done.
Check current licensing terms; they have changed before with commercial consequences.
EXPOSE VALUES TO DESIGNERS, KEEP SYSTEMS IN CODE
Balancing takes hundreds of small adjustments, and needing a programmer for each is intolerable.
ALLOCATING MEMORY IN HOT PATHS CAUSES VISIBLE STUTTER
Cache references, reuse objects, pool. And never search the scene for objects every frame.
SAVES MUST SURVIVE VERSION UPDATES AND INTERRUPTED WRITES
Version every save, migrate older ones, write to a temporary file and replace atomically. A broken save loses a player's progress permanently.
PREFER DIRECT MOVEMENT CONTROL OVER PHYSICS FORCES FOR CHARACTERS
Physics-driven characters feel imprecise, and players notice immediately.
ANIMATIONS THAT MUST COMPLETE BEFORE INPUT IS ACCEPTED ARE A COMMON CAUSE OF UNRESPONSIVENESS
MUTE THE GAME TO SEE HOW MUCH AUDIO IS DOING
And always ship separate volume controls per category.