On Monday, 12 May 2014 at 18:07:51 UTC, Kapps wrote:
Depending on how tunable the GC is, I feel like it should be possible to get away with a GC even for soft real-time programs like games.
Even if you manage to make it work for game clients you also should make it work for low latency game servers, as code sharing is an important advantage.
What a game/world server requires differs a lot, but highly dynamic and flexible worlds have to keep the physics to a single node (or tight cluster) for a region. That means you want to have as many players as possible tied to that node.
In essence you want both performance, low latency, reliability, and little overhead in an evolutionary context (it has to support heavy modification over time).
My gut feeling is that a runtime satisfying one game design will not satisfy another one as long as one insists on one global GC. In essence, it will never really work well. IMO, the same goes for ARC since RC does not perform well with multi-threading even when you use near optimal patterns and strategies. If ARC is only to be used where speed does not matter then you might as well use shared_ptr.
