If you're looking for something that's made for all games, you won't
find one.
The usual practice has been either:
- a full walkthrough is provided;
- a separate Invisiclues-style hint file (which is generally close to
the UHS system);
- a built-in hints system within the game itself (more commonly used).
There's also the rec.games.int-fiction newsgroup where you can also
ask for hints.
If you like the idea of UHS-style progressive-disclosure hints, but
without inventing a new format and application to port, how about
HTML? Just a standalone HTML file. Do disclosure buttons with
Javascript. It would be a single file, so you could upload it to the
Archive or include it in a game .zip package with no extra trouble,
and it would work for everybody.
--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
> The usual practice has been either:
> - a full walkthrough is provided;
I wanted to avoid having to provide a full walkthrough. (I'm aware
that some player prefer to have a walkthrough, but personally I would
rather have a hint system.)
> - a separate Invisiclues-style hint file (which is generally close to the UHS system);
I've been taken a look at the Invisiclue but it doesn't look like I
can make my own clues, or is it just me? ;-)
> - a built-in hints system within the game itself (more commonly used).
I work in Adrift, which has a built-in hgint system, but it only has
two choises and I would like to give more than just two clues.
Cheers
> I work in Adrift, which has a built-in hgint system, but it only has
> two choises and I would like to give more than just two clues.
Oh, that's interesting. I did wonder, last year, why an Adrift game I
was playing only gave two hints for each topic. Now I know. This is a
pretty good object lesson in "choices have consequences," I suppose.
You can easily do what you want in hand-coded HTML. What you do is set
the color of the clue text to be the same as the background color. This
will cause the clues to be invisible until the user drags over the text
with the mouse. Dragging over the text will highlight it, thus making it
magically appear.
The only downside of this is, it won't work for blind players. Their
screen reader will still be able to see the text.
If you poke around in the Archive, I'm pretty sure you can find a file
or two that does this. You could then just use the existing file and
rewrite the text. It should be dead easy to do what you have in mind.
--JA
But then, a screen reader will be reading down the file anyway, so the
hints will come out in the right order. So that's close to right.
I am not a fan of the foreground/background color trick, because it
depends on the details of the OS's text highlighting. (Have you tested
it on Linux? iPhone? Android?) I'd go with a display:hidden property,
as I said -- that's at least nominally standardized, and it's no worse
in a plaintext/unscripted browser.
Here's a method similar to Invisi-clues.
Save as .html and edit
----- CUT -----
<HTML>
<TITLE>Visi-clues</TITLE>
<BODY>
<NOSCRIPT>Sorry, this page requires Javascript to work properly</NOSCRIPT>
<SCRIPT language='javascript'>
var hints = new Array (
"*How do I get into the house?",
"You need a key.",
"What's the cliche place to hide a key?",
"LOOK UNDER THE DOORMAT",
"*Should I trust Frank?",
"Have you checked his story with Fran?",
"No.",
"*And the third thing?",
"Just keep trying",
"*And the fourth?",
"Is it July?",
"SIGN DECLARATION OF INDEPENDENCE",
"*And the fifth?",
"DRINK VODKA"
);
var current_item = -1;
var clue_starts, clue_ends;
function RunQ (starts, ends) {
var cluebox = document.getElementById ('cluebox');
//document.write (cluebox);
cluebox.value = hints[starts].substr(1) + "\n";
clue_starts = current_item = starts + 1;
clue_ends = ends;
document.getElementById('cluecount').value = ends-starts;
document.getElementById('cluenum').value = 0;
}
function advance_clue() {
if (current_item <= clue_ends) {
var cluebox = document.getElementById ('cluebox');
cluebox.value = cluebox.value + hints[current_item] + "\n";
current_item = current_item + 1;
document.getElementById('cluenum').value = current_item
- clue_starts;
}
}
function list_questions() {
for (var i = 0; i < hints.length; i ++) {
if (hints[i].substr(0,1) == '*') {
var q_start = i;
do {
++ i
} while (hints.length > i && hints[i].substr(0,1) != "*");
document.write ("<INPUT NAME='clues' TYPE='radio' onClick='RunQ ("+
q_start + ", " + (i-1) + ")'>" +
hints[q_start].substr(1) + "<BR>");
-- i;
}
}
}
list_questions();
document.write ("<TEXTAREA ID=cluebox ROWS=4 COLS=60 WRAP='virtual' " +
"onFocus='this.blur()'></TEXTAREA><BR> Clue " +
"<INPUT ID=cluenum TYPE=integer SIZE=3 VALUE=0 " +
"onFocus='this.blur()'> of <INPUT ID=cluecount " +
"TYPE=integer SIZE=3 VALUE=0 onFocus='this.blur()'>" +
"<BR><INPUT type='button' VALUE='Get next hint' " +
"onClick='advance_clue()'>");
</SCRIPT>
<BR><BR>
To use this for your own, modify the 'hints' array. Each string
starting with a star is a question, and the strings following it
(until the next string starting with a star) are the hints that
will be displayed.
Original hints system by Shalbatana, modified by ralphmerridew.
</BODY>
</HTML>
----- CUT -----
SLAG. You write a text file with hints. SLAG compiles it to Inform 6
source code, which you
can then compile to a z5 file, playable by any Z-code interpreter. The
questions will be
presented in menus, and the hints will be presented one by one until
the player chooses to exit.
http://www.ifarchive.org/indexes/if-archiveXsolutionsXslag.html
You don't have to know any Inform at all. There are a bunch of sample
SLAG source
files in the "source" subdirectory.
/Fredrik
Wow...
Works great...
Thanks a lot for your help.
Cheers