LOL. I love the way the ghost of Hamlet’s father seems to subtly set up a “fetch the treasures” type adventure.
I think it’s a very compact and clever system that wasn’t really utilized to its full potential. Scott Adams extended the system gradually over the years to add features (like the “continue” command) that greatly extended the potential. It’s a pity that the .dat file format limits the size of games unnecessarily.
I’m really looking forward to this! There’s something delightfully perverse about doing Shakespeare Scott Adams style, and you’ve really nailed it! The use of capitals, the lack of full stops and those little double-dashes straight out of Marvel comics, are all so authentically Scott. Can’t wait!
Some basic syntax highlighting rules were easy enough to get working at least. As soon as I can get my head around the structure of it all, to separate language fields more intelligently, i’ll publish something.
Then I just go to the bin-folder in my home directory and run scottkit with commands like:
$ ruby scottkit …/games/adams/adv01.dat
ScottKit, a Scott Adams game toolkit in Ruby.
(C) 2010-2017 Mike Taylor mike@miketaylor.org.uk
Distributed under the GNU GPL version 2 license,
.
I’m in a forest
Obvious exits: North, South, East, West.
I can also see: Trees
.
A voice BOOOOMS out:
.
Welcome to Adventure number: 1 “ADVENTURELAND”.
In this Adventure you’re to find TREASURES & store them away.
.
To see how well you’re doing say: “SCORE”
Remember you can always say “HELP”
Tell me what to do ?
Hi guys, do you know how the ExchangeTimer code works in the Scott Adams source code? I see numbers from 2 to 7 getting called, is it 7 different timers? How they exchange the value? Im trying to make it work in a different language but i have failed to replicate the behaviour?
Any advise would be appreciate it. Take as example Ghost Town.
Ghost Town uses counter 2 for bonus points, counter 3 for the time until the pianist arrives, counter 4 for the time until the pianist leaves, counter 6 for the number of matches remaining, and counter 7 for the time until nightfall. To manipulate any of these numbers, it uses the swap_counter opcode (aka ExchangeTimer) to swap that variable with the main counter, uses the normal opcodes to manipulate the main counter, then swaps it back.
This is also turning up some interesting bugs in these games! For example, the command EXAMINE MUSIC in Arrow of Death Part 2 doesn’t work; it uses the illegal noun number 87 when there are only 82 nouns in the file.
Can anyone confirm what the original game printed for this command?
%% Illegal noun number 87; there are only 83 in the file
(action [EXAM @\s])
{ (carried #music-sheet) (or) (here #music-sheet) }
It's a dirge! (line)
(now) (message printed)
There are also some cool discoveries to be made! For example, Escape from Pulsar Seven actually has three different countdown timers to determine when the creature kills you. When any of them hits zero, you die.
The “global pursuit timer” starts at 500 and decrements every turn.
The “unsafe area pursuit timer” starts at 50 and decrements every turn you’re in an unsafe room.
The “awake pursuit timer” starts at 2 and decrements every turn the creature is awake. (Presumably the other two timers are actually determining when the creature wakes up, in-universe, but if you don’t wake it up in the appropriate game way it just slithers in and kills you immediately.)
Remarkably sophisticated NPC behavior for this sort of game!