Hacker News new | ask | show | jobs
by gentleman11 2187 days ago
It’s hard to write a unity game where there aren’t large frame time spikes periodically. This is even in scenes where there is almost no code running, just from turning the camera too quickly. In unreal, I haven’t encountered the same issue. So, for some scenes, the frame time averages might make unity look pretty good, but then it just has a these massive drops (sometimes over a half second), again, with almost no scripting running.

Maybe I am just being petty. I am mostly just mad about unity revoking asset store usage rights post-purchase as a cash grab (before feb your freelancers could use your assets - now you need to buy them additional licenses for each)

1 comments

Is it GC pauses?

I know .NET's GC is supposed to be pretty good, but Unity is still using the Mono implementation, right?

I can barely stand C++, but I'll put up with it to avoid long GC pauses or dynamic typing. (JS)

Unreal’s C++ code (specifically, anything deriving from UObject) is garbage collected as well.
Really? Why is that in the times of smart pointers? You can just malloc a pointer and it gets cleaned up automatically by unity if it's no longer used?
Because you want garbage collection to happen at specific, well-defined times (i.e. in the slack between frames), in a separate thread - not in the middle of rendering a frame on the main thread when you happen to drop something out of scope.
Still I can't imagine GC is the best solution for this. You can easily make a memory allocation strategy that hands out shared_pointers or something like it that get cleaned up at will defined times instead of when it goes out of scope for a user.