News for hackers. Stuff that matters.
Re:Memory and C++ Debugging at Electronic Arts [video] by davidgrenier on Wednesday October 07, 2015 @11:03PM (#10350707)
Too bad nobody directly addressed your question as to whether it had anything to do with pauses which would be unbearable on the gamer's experience.

Perhaps the question is still open whether properly managing allocation, using object pools as well as other strategies would enable writing triple A games with a managed language.

Or perhaps all we need is a GC race (à la JS engine race we've seen in the major browser) which Google might very well be starting with the recent efforts on the Go garbage collector.

Re:Memory and C++ Debugging at Electronic Arts [video] by kayamon on Wednesday October 07, 2015 @11:29PM (#10350768)
It's not that you couldn't write a triple A game with a managed language.

It's that you can _quite easily_ write a triple A game without using a managed language.

For games, managing memory is not a big problem. For other kinds of apps, it can be. In some apps the lifetime of an object is not well defined. But in games, it tends to be very well defined.

If you want a good explanation of the problems game developers face when trying to use GC, go read Rich Geldreich's post on it (http://richg42.blogspot.com/2015/05/lessons-learned-while-fi...).

Re:Memory and C++ Debugging at Electronic Arts [video] by Zardoz84 on Thursday October 08, 2015 @03:20AM (#10351315)
There some AA or AAA games using languages that not are C/C++ . Severence: Blade of Darkness (Aka Blade: The edge of darkness), have a lot of code on pure Python. And it's well know that Naughty Dog use a variant of Lisp on his games.
Re:Memory and C++ Debugging at Electronic Arts [video] by kayamon on Thursday October 08, 2015 @03:35AM (#10351362)
I'm sure there are - that's not what I said.

Also, Naughty Dog's games do _not_ use Lisp, they use a custom language that looks a little like Lisp, but has no garbage collector.

Re:Memory and C++ Debugging at Electronic Arts [video] by z3phyr on Thursday October 08, 2015 @06:04AM (#10351753)
Naughty dog used to use Game Oriented Assembly Lisp (GOAL), which was very scheme like. They dropped it for C++. Although they still use a Racket dialect for some gameplay scripting.
Re:Memory and C++ Debugging at Electronic Arts [video] by lispm on Thursday October 08, 2015 @02:08PM (#10354720)
Lisps without GC have been used in various places for delivery.

An example was Thinlisp, which tries to be mostly compatible with Common Lisp, but without GC. The compiler for Thinlisp is written in Common Lisp.

G2's Gensym is written in such a Lisp. Thinlisp also comes from them, IIRC. http://www.gensym.com

Some Lisp don't/didn't use a GC, but reference counting or similar schemes.

Re:Memory and C++ Debugging at Electronic Arts [video] by vvanders on Thursday October 08, 2015 @12:15AM (#10350863)
See my comment below, GC isn't the problem. It's being able to layout your memory appropriately so you don't cache miss which when everything is a single heap allocation becomes almost impossible.
Re:Memory and C++ Debugging at Electronic Arts [video] by pcwalton on Thursday October 08, 2015 @12:42AM (#10350933)
> Or perhaps all we need is a GC race (à la JS engine race we've seen in the major browser) which Google might very well be starting with the recent efforts on the Go garbage collector.

This has been happening for a long time with Java HotSpot and Azul C4, which still represent the state of the art. Go isn't really doing anything new—it's still not generational, for example.

Re:Memory and C++ Debugging at Electronic Arts [video] by plexchat on Thursday October 08, 2015 @03:35AM (#10351361)
The speed of the GC isn't the issue (although it certainly can be). The non-determinism is. It's hard to control when a GC should happen, and when it happens at a bad time, the ramifications are perceived as an awful user-experience.