Hint system tech?

I’m curious as to how the hint system was constructed, as it keeps track of the state of the game and serves hints dependent on that state. @RonGilbert you’ve mentioned being frustrated that scummy only a 256 variable limit, were these engine level or scripting level vars, which implies that each puzzle “node” was stored as a separate var or bool. Is this how the TP hint system works, but comparing the states of certain variables to track progress? Hate to mention other adventure games but John Passfield mentioned that FOTAQ used a single state variable to keep track of the game and trigger other actions and points of the game. Do you additionally use a single state var that sums or increments depending on smaller vars, for instance? I’ve never considered writing a hint system but I’m interested by TP’s implementation and how it draws on the state of the game to serve the player specific hints. I understand @jenn scripted the hints so I’d be interested in any TP devs weighing in on this!

1 Like

SCUMM had 256 global variables and 256 room local variables. The Thimbleweed Park engine has no variable count limitations. Puzzles are tracked through a complex situation of variables and object states. There is no “one” simple way to do this. The hint system just looked at all the direct variables and situations to figure out if it needed to delver a hint. No magic here. It was a ton a work.


And we must keep in mind that, during the game development phase, the hint system was not planned yet. It came only after the initial release.
If the hint system were planned from the beginning, maybe the game internal variables, states, and so on could have been designed differently, to easily accomplish that task.

1 Like

Ah, so the objects themselves have states as well? Are these local vars in the object, or is there some other way you set the objects “state”?

I imagine it was a ton of work, especially as @ZakPhoenixMcKracken mentioned, it was added after the fact (I believe you mentioned having to add some extra stuff to track things that wasn’t in the pre-hint release?)

btw: Have you read the blog posts? There are a lot of code snippets. And you should find the documentation of the TWP scripting API in archive.org.

1 Like

Yeah, I’ve read most of the blog posts, not sure if this has been touched upon though? Where in archive is the api docs, why was it removed?

Not the hint system, but Ron wrote for example about how to save the game state:


If you are going to develop a hint system that keeps track of the game state, that information might be helpful. And with code snippets in the different blog posts you’ll get an insight of the objects used. This might also be helpful.

I really recommend that you read all blog posts and the comments. Ron discussed there several aspects of the game. Maybe some of your questions (that will arise during your further development) are answered there already.

During the development of TWP the API documentation was public available (for a short time). Ron(?) made it available, it wasn’t leaked. Unfortunately I don’t remember the URL, but you’ll find it somewhere in the blog (comments) and/or this forum. Archive org should have preserved the site.

Ok, I found it - The API documentation was published at http://thimblescript.wiki
But the site is down at the moment. Due to a robot.txt, archive.org hasn’t archived the Wiki (see Wayback Machine).

Ron wrote on Twitter:

@RonGilbert: Is it likely that the Wiki will be available again? Even if you won’t publish your engine, the Wiki gave a good insight into it and answers some of the questions from developers.

1 Like

Plus I link to it in the references of some podcast transcripts. :thinking: perhaps I still have some of it in my browser cache…

1 Like

After seeing this robots.txt of course I immediately made a personal backup :slight_smile:
But I missed the stylesheet and one page (docs.css, default_object).

If you don’t intent to or have time to bring the ThimbleScript wiki back up again maybe you can just send us those two files (docs.css, default_object)? (Or in case you lost the stuff yourself I can give you my backup which was from 2016-11-20).