I am not saying I want something similar to C/C++.
Avoiding memory management is a quality in a garbage collector and is
very appreciated.
(I do not want people in the team manually delete objects neither - it
is hazardous).

I just want to be sure not having garbage collection stopping my game
more than a fraction of a frame at a 60 fps rate.
Iterative garbage collector algorithms exist for this purpose.
I already used it for similar reasons and Unreal also uses this system
to ensure reliability.

Obviously, I am not able to do a real test - I have no game programmed
in Felix running yet.
I am please to know that we won't have a bunch of fresh objects.

I just want to be sure to have a B plan. It's an egg and chicken
problem.
Multi million dollar project deserve this level of assurance.

Thanks for the reply!
StepH

-----Original Message-----
From: skaller [mailto:[EMAIL PROTECTED] 
Sent: 10 juillet 2006 17:39
To: Stephane Le Dorze
Cc: [email protected]
Subject: Re: [Felix-language] garbage collection.

On Mon, 2006-07-10 at 11:51 -0400, Stephane Le Dorze wrote:
> As I told before; I am considering using Felix as a high level
> programming language in Video Game.
> 
> My preferred choice as: "The next video game mainstream programming
> language".
> 
> Video games are a real time application and cannot suffer the "stop
> the world" side effect of garbage collection - especially in a
> multiplayer (client/server) environment.

This isn't right: it's equivalent to saying you cannot 
afford to waste time in C++ saying 'delete object'.

Consider a singly linked list .. delete the head.
Woooopppppppsssss. That's a recursive descent down the 
list calling the destructors. You *already* have a world
stop garbage collection in ordinary C++, just from deleting
a list. 

Basically, Felix isn't an FPL. It doesn't spew millions
of fresh objects on the heap. There's rarely anything
on the heap at all! You have to be using unoptimised
closures and variants .. and you can't get around the
memory management issues that leads to in C or C++
either: cyclic data structures can't be ref counted,
so what are you going to do?

In a game, I guess I'd be collecting every frame,
60 fps or whatever. Thus .. no jerks or freezes for
the game player. If you end up with too much heap
for that to be practical .. start using 
data structures that don't use so much heap.

Remember in Felix you can delete Felix heap objects manually,
and you can always use malloc/free for objects not containing
Felix pointers. For example, Felix uses C++ string class
for strings. The char * is managed with constructors and
destructors as in C++ .. it can't contain any Felix pointers.

Actually .. gc-ing the strings might be better. Copying
strings around can be quite expensive ;)

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to