------ art_61130_32090022.1175246195837 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline We have used continuation in our Ruby+OGRE game engine (CubicEngine) to implement something called Latent Functions. I stole the idea from UnrealScript (http://wiki.beyondunreal.com/wiki/Latent_Function). I don't know the correct CS name for it, but I guess it's a type of coroutine. You can use them to create blocking methods in a single threaded simulation without pausing the simulation. They are incredibly useful when you want a game actor to respond to an event, then take a short nap (for example: until some animation has finished playing) and continue reacting to the event. Without latent functions, we'd have to greatly increase complexity for each actor by storing more detailed state information. What's even worse is that without them we would have to turn a single logical action into a complex sequence of mildly reusable methods and timers. CubicEngine is just a small hobby project developed by two people and Ruby is not yet very popular in the games industry (I hope to change that :)), but latent functions have been proven to be a very handy technique by games like Unreal and DeusEx. Juozas Gaigalas On 3/30/07, Brent Roman <brent / mbari.org> wrote: > > A couple times on this list, I've read pleas for examples of > real Ruby applications that use Continuation objects. > > Ours is described here: > > http://www.zenspider.com/dl/rubyconf2005/EmbeddedRuby.pdf > > http://www.sciencedirect.com/science?_ob