They often are if specific care is not taken to minimize garbage in the game loop, particularly in resource-constrained environments like some console and mobile platforms [1]. In GC languages, this often means deliberately avoiding common idioms that perform allocation under the hood.<p>The threshold for a noticeable pause is much lower for action games than it is for general applications. 100ms is often used as a rule-of-thumb &quot;instantaneous reaction&quot; threshold for general UX [2], but that&#x27;s a lot of time to a highly competitive player (e.g. this guy playing Super Punch-Out blindfolded [3]).<p>In fact, in high-reliability real-time software, even non-GC heap allocation is often avoided (or done once at startup and then left alone). Heap allocation is not a very predictable operation beyond &quot;probably fast enough&quot;.<p>[1] <a href="https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;5063190&#x2F;game-jitters-on-xbox360" rel="nofollow">https:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;5063190&#x2F;game-jitters-on-...</a><p>[2] <a href="https:&#x2F;&#x2F;www.nngroup.com&#x2F;articles&#x2F;response-times-3-important-limits&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.nngroup.com&#x2F;articles&#x2F;response-times-3-important-...</a><p>[3] <a href="https:&#x2F;&#x2F;youtu.be&#x2F;vSr3aXd4XuQ?t=358" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;vSr3aXd4XuQ?t=358</a>