Pool di oggetti
Riutilizzare un insieme di oggetti preallocati invece di crearli e scartarli di continuo, per evitare il costo di allocazione e le pause del GC.
I giochi creano e distruggono una quantità enorme di oggetti di breve vita: proiettili, particelle, nemici, numeri dei danni. Allocare ciascuno sullo heap costa tempo e frammenta la memoria, e nei linguaggi con garbage collection un ciclo di raccolta può bloccare l'intero frame causando scatti visibili. Un pool di oggetti alloca un blocco in anticipo, consegna le istanze libere e le «distrugge» semplicemente segnandole di nuovo come libere.
Il pattern è descritto come «Object Pool» in Game Programming Patterns di Robert Nystrom ed è quasi obbligatorio nei progetti Unity. Il prezzo è che la dimensione massima del pool va stimata a occhio, gli oggetti devono essere reinizializzati con cura al riuso e un'istanza persa non torna più indietro. Si accompagna bene al modo in cui un ECS impacchetta i dati in modo compatto a favore della cache.