Games are challenging to develop: you have a large number of teams collaborating on a single artifact.

You need to find the spark of the fun, and then make it increasingly higher fidelity and real, into a roaring bonfire.

The "fun" is found at the highest pace layer.

If you had strict layering, you'd spend all your time on the lower layers before discovering if the higher layers were any fun.

If you had tight coupling, a mistake from any one sub-system could break the whole thing.

Instead, game engines often use an entity component system.

Everything is a generic entity, with the ability to layer specific functionality on top.

Everything reading from and writing to, and reacting to, the same system.

A hub and spoke model is resilient: one spoke can go down and not bring down other spokes. And other people can add spokes without interfering with the thing!

Resiliently extensible, loosely coupled.

More on this topic

From other episodes