The Future of Animation in LiveCode

Bjoernke von Gierke bvg at mac.com
Thu Feb 19 08:48:53 EST 2015


> On 18 Feb 2015, at 01:52, Alex Tweedly <alex at tweedly.net> wrote:
> 
> If the problem is that LC is just too slow, and the required calculations continuously or consistently take more time than is elapsed (i.e. we just keep getting further and further behind), then the problem is performance, not how/when we can trigger redraws.
> 
> But if the issue is "simply" that timers can't be relied upon to trigger while calculations proceed, then we can (at considerable effort) minimize the impact of that.

The problem is none of those. It's a problem that many games have, and that is not solvable with LC, because of the way it is always sequential.

An extreme example would be a real time game, which does auto-saves every 5 or 30 minutes to hard disk, of non-trivial data amounts. The game would update it's screen timely as expected, until it saves, at which point it stalls for 1-5 seconds, to write to the hard disk. Note that many games actually do it like that (ie. Factorio, all Paradox developed games, etc.).

Because LC can't do two things at once, and because it's screen redraw is so slow, one will run into these problems far more often, and with less intensive tasks then file access. Sometimes with just the screen updates alone (with the non-laggy amount of participants being well below 30 pieces, and without any user input or AI/maintenance stuff running). Even worse, there is simply no workaround. Now if there'd be a way to do screen redraws in parallel to doing calculations by script, that'd be a different thing. But because LC _depends_ on sequentiality for things like the message path and how send in time works, that is probably not going to happen very soon, and even long term (ie. in the next 5 years) it's doubtful.

 So in a sense it's both of your examples at once. 


--

Chat with other LC people:
http://bjoernke.com/chatrev

Use a better dictionary in the IDE:
http://www.bjoernke.com/bvgdocu

Try chartsEngine:
https://livecode.com/store/marketplace/charts-engine-1-2-1






More information about the use-livecode mailing list