I am adding a hint system to one of my long-form IFs, using Eric Eve’s Adaptive Hints.
My question is, if I habitually use Hint activation/deactivation rules, such as–
A hint activation rule:
if Colonel Klink is seen:
activate the Table of I Know Nuthink Hints.
A hint deactivation rule:
if Sergeant Shultz is in Prison Barracks:
deactivate the Table of I Know Nuthink Hints.
Will this slow down action processing significantly??
Short answer – I doubt this will slow things at all.
Longer, duller qualified answer – All work the game has to do every turn adds to its processing load. It’s just that most things add such a microscopic sliver, you need to heap them up humongously to experience a glimmer of slowdown. The rules you’ve shown fall into this category.
But say a particular hint activation rule performs a check that requires a bunch of more intensive stuff, like checking lots of relations, or doing lots of scope checks, or scanning the contents of the game or the map, or using regular expressions: that rule becomes a bigger hitter, and it’s going every turn. On its own, maybe nothing. If your hint rules became full of such rules, then you might enter slowdown territory.
So I’d say, don’t worry about it. If slowdown should rear its head one day, you can deal with it then by finding out what bit is causing it (this is usually easy) and maybe rewriting it to be more efficient.
PS - A good tip someone gave me for checking processing speed is to run the game in Lectrote, which has a developer mode menu. In the menu, you can turn on an option that shows processing times. Then, after each command is entered, you’ll see how long the command took to process. Since Lectrote shares the slightly slower Quixe engine with most online interpreters, it’s a good barometer of your game’s speed if it were to be played online, e.g. in IFComp. In other offline interpreters, you’ll find your game runs faster than in Lectrote.
Thank you so much. My game is going to have quite a number of hints/hint tables. Previously, I would have tables activated/deactivated within rules attached to actions that would make the player aware of a puzzle (therefore activating a hint table) or solve a puzzle (to deactivate the table). A puzzle could have more than one solution or be solved by more than one possible action, or the player could come upon the puzzle in more than one way, so I’d of course have to make sure that the tables were activated/deactivated at every appropriate instance. This time, I want to use activation/deactivation rules where possible. But then it occurred to me that this might be an Every turn kind of thing where the processor would have to be on the lookout for ALL of these conditions.
The IF I’m talking about is Bullhockey!. I have given it a full update, and am only now adding in the hints (I wrote it in 2016). I just updated and hinted its sequel, Bullhockey 2–this one has 128 hint tables(!), so I anticipate a roughly equal number for the original.
Thank you so much for your knowledgeable help!