Crazy is an understatement. ~10 years ago, I had my own small indie studio and we were working on a game in Unity 4.x.
If I allocated any temp object in the game loop, I had a random GC call every ~10s that took 10-15ms, which was enough to skip a whole frame. Completely unacceptable in any platfomer, beat 'em up, etc.
You couldn't use strings (despite Unity API itself requiring strings as arguments), couldn't resize any dynamic data structures. Couldn't even use a foreach statement and you had to do memory pooling for the tiniest objects. Big chunk of the language was not accessible to you and AFAIK there was no workaround.
Writing your own game engine wasn't such a bad idea at the time.
Using a garbage collector in a videogame is crazy.
It’s a miracle unity succeeded by putting a gc into every produced game.