Multiple idle directions at once..?
Posted: Wed Apr 24, 2013 8:48 pm
As I'm sure most ZZT game-makers who had any particular emphasis on the code aspect in ZZT-OOP will recall you can actually use directional commands on an 'if at all possible' basis.
I'm sure you know the hassles of having an object that is supposed to go one way or another (or follow a route) for a specific period of time only to be stopped up by a wall getting in their path.
They wait for it to be no longer in the way and do not even process commands yet still respond to labels until they can fulfill this directional movement command...
This is a very unusual quirk as far as 'command completion' goes in ZZT-OOP (and by extension ZZT's engine)...
as it allows for 'completion of executed code' to be highly subjective to what else is going on ingame even other than its own code...
and thus shows us that ZZT is so highly abnormal in coding even down to its individual movements on board space.
There is always your alternative 'question marked' movement commands...
Whereas your other type will wait until the command is possible to perform this type will do it exactly at that time but only if it will actually result in movement and otherwise proceed to next lines of code.
One would think that this means that this 'question marked' type of directional commands is far less glitchy in nature than that 'slash marked' type of directional commands.
One would think.
Though then there is another very old yet so quickly forgotten trick to this... and
as far as I know it only works with this 'question marked' type of directional commands.
You can move multiple spaces in the same cycle.
If you so much as preface your object to take only one cycle per code command (generally by prefacing it ''#cycle 1'' very near its top line of code, though some take to actually editing 'cycle' in its 'tile properties', taking advantage of abilities of 'ZZT editors' other than ZZT's editor itself such as KevEdit to add new functionality that is already present in ZZT that's not otherwise possible to have access to) and then use plenty of 'question marked' type of directional commands all in a row they will process them all at once in that same individual cycle.
As I recall they don't even have to be on the same individual line.
As long as they aren't broken up by any 'idle' directions they happen in the same cycle.
''?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i'' would follow the player very quickly and ''?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i'' would do pretty much its opposite.
However then ''?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i'' would give the player no chance to hide behind a wall or what have you and ''?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i'' would give the player virtually no time to be able to chase them.
When you have even 'idle' directional commands used in this same manner then it tries to determine on an 'if it can be at the time' basis even for whether or not it can wait, and generally determines that it can't because it is supposed to be done all in one cycle anyway, thus discarding its own 'cycle timers' and proceeding to process directional commands all in the exact same cycle.
This is a very unusual quirk in code.
However then I see potential to push 'ZZT Encyclopedia' type of stuff even further than was done in games past, proving that there is still more 'no limits' type of stuff to be found in this very same ZZT engine, if it proves at all possible to use this quirk for more than directional commands.
Would it be possible to use the nature of using 'idle direction' on this 'question marked' type of directional commands for things other than mere board movement in objects?
Imagine you have a series of decoupling timers combined with a series of recoupling timers, in objects on a board, that function in a harmony of a specific reorganization of a lack of harmony by alternating when they use ''/i'' idle and '?i'' idle between their operations towards one another to 'lag down' ZZT's game itself far enough to cause something along the lines of a temporal spacetime warp thus allowing the player tile itself to make use of 'moving multiple spaces at once' or other such things...
You might be able to make more use of more obscure uses of player clones that's for sure... as we've seen them used for 'teleporting your player' in plenty of ZZT games since Flik... but little has been used of more obscure uses of player clones such as 'objects making lit bombs' as seen in ZZT Encyclopedia's third installment...
I'm sure you know the hassles of having an object that is supposed to go one way or another (or follow a route) for a specific period of time only to be stopped up by a wall getting in their path.
They wait for it to be no longer in the way and do not even process commands yet still respond to labels until they can fulfill this directional movement command...
This is a very unusual quirk as far as 'command completion' goes in ZZT-OOP (and by extension ZZT's engine)...
as it allows for 'completion of executed code' to be highly subjective to what else is going on ingame even other than its own code...
and thus shows us that ZZT is so highly abnormal in coding even down to its individual movements on board space.
There is always your alternative 'question marked' movement commands...
Whereas your other type will wait until the command is possible to perform this type will do it exactly at that time but only if it will actually result in movement and otherwise proceed to next lines of code.
One would think that this means that this 'question marked' type of directional commands is far less glitchy in nature than that 'slash marked' type of directional commands.
One would think.
Though then there is another very old yet so quickly forgotten trick to this... and
as far as I know it only works with this 'question marked' type of directional commands.
You can move multiple spaces in the same cycle.
If you so much as preface your object to take only one cycle per code command (generally by prefacing it ''#cycle 1'' very near its top line of code, though some take to actually editing 'cycle' in its 'tile properties', taking advantage of abilities of 'ZZT editors' other than ZZT's editor itself such as KevEdit to add new functionality that is already present in ZZT that's not otherwise possible to have access to) and then use plenty of 'question marked' type of directional commands all in a row they will process them all at once in that same individual cycle.
As I recall they don't even have to be on the same individual line.
As long as they aren't broken up by any 'idle' directions they happen in the same cycle.
''?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i?seek?seek?seek?seek?seek/i'' would follow the player very quickly and ''?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i?opp seek?opp seek?opp seek?opp seek?opp seek/i'' would do pretty much its opposite.
However then ''?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i?seek?seek?seek?seek?seek?i'' would give the player no chance to hide behind a wall or what have you and ''?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i?opp seek?opp seek?opp seek?opp seek?opp seek?i'' would give the player virtually no time to be able to chase them.
When you have even 'idle' directional commands used in this same manner then it tries to determine on an 'if it can be at the time' basis even for whether or not it can wait, and generally determines that it can't because it is supposed to be done all in one cycle anyway, thus discarding its own 'cycle timers' and proceeding to process directional commands all in the exact same cycle.
This is a very unusual quirk in code.
However then I see potential to push 'ZZT Encyclopedia' type of stuff even further than was done in games past, proving that there is still more 'no limits' type of stuff to be found in this very same ZZT engine, if it proves at all possible to use this quirk for more than directional commands.
Would it be possible to use the nature of using 'idle direction' on this 'question marked' type of directional commands for things other than mere board movement in objects?
Imagine you have a series of decoupling timers combined with a series of recoupling timers, in objects on a board, that function in a harmony of a specific reorganization of a lack of harmony by alternating when they use ''/i'' idle and '?i'' idle between their operations towards one another to 'lag down' ZZT's game itself far enough to cause something along the lines of a temporal spacetime warp thus allowing the player tile itself to make use of 'moving multiple spaces at once' or other such things...
You might be able to make more use of more obscure uses of player clones that's for sure... as we've seen them used for 'teleporting your player' in plenty of ZZT games since Flik... but little has been used of more obscure uses of player clones such as 'objects making lit bombs' as seen in ZZT Encyclopedia's third installment...