The Clock Tower
By Jason Harper, JasonHarper@pobox.com
From the "Missed Island" map
If you think about it, the Missed Island clock tower puzzle is
just another version of the combination lock. This time, there
are two "digits", each with 12 possible settings: one
with hours from 1 to 12, the other with minutes from 00 to 55
in increments of 5.
The clock tower in Myst is an analog clock, and in fact I
could have done an analog version in a manner very similar to
the existing combination lock puzzle. The hours indicator would
be textured with a strip of 12 clock faces, with the hour hand
in different positions. The minutes indicator would be a transparent strip of minute hands in different positions, overlaying the
hours indicator. The only problem is the 128 pixel height of
textures: each clock image could be no more than 10 pixels high.
This would have been more of a wristwatch than a clock tower...
So, I decided to implement a digital clock instead, since that could
be made as large as needed. (Not to mention the laugh value of a digital clock
tower. It would have been even funnier if an idea of mine had proved
practical: have the clock initially be flashing 12:00,
like a VCR whose owner doesn't know how to set its clock.)

The mechanism driving the clock is still a pair of Enforcer/Tick
shooting galleries, basically the same as the combination lock
digits. There are a few changes:
- There are no indicators, the control and target platforms
are directly connected.
- The target platforms have 12 stops in an 11 WU height, rather
than 8 stops in 7 WU.
- There is a switch in front of EACH of the target platform
stops, which light up the appropriate segments of the digital
display (actually, one switch is missing in each gallery: this
will be explained later).
The clock display itself contains no moving parts: it's all done
with lights. I used a custom texture (actually, parts of the
same texture containing the combination lock digits) for a very
realistic-looking digital display. It would also be possible
to build digits out of existing textures: Mike Trinder's Gemini
Station map for Marathon 2 has a good example of this, using
the lava texture. However:
- Digits built this way require more polygons, since you have
to blank out the spaces between segments rather than simply having
blank space in the texture. My clock tower wouldn't work with
any more polygons, it's on the border of exceeding the transparent
side limit as it is (in fact it exceeds the limit if you look
out from the inside of the tower). This problem is due to the
fact that my clock overhangs a door: a display set into a solid
wall would have no transparent side problems since each digit
would be separated by negative space.
- There is no really suitable texture in the Water texture
set, which was the only practical choice I had for Missed Island.
Here is a sample clock digit for you to examine (Editors Note:
in the demo map it is " just prior to this terminal"
- gls). It is in a slightly incomplete state, so that you can
see it better: the polygon floors and ceilings have not been
blanked out, and the digit still has a lot of depth to it (the
polygons are easier to select in this state, but should be "flattened"
before release).
Some thought is
needed in assigning lights to the digit segments, to avoid wasting
any lights. The diagram shows the assignments I used on Missed
Island.
It's obvious that the two segments composing the tens-of-hours
digit can use the same light. But would you have guessed that
the top and bottom segments of the tens-of-minutes digit can
also be wired together (light 31)? That digit only displays numbers
from 0 to 5,
which coincidentally all have the top and bottom segments in
the same state: only the number 7
has them different. The ones-of-minutes digit is the simplest
of all, since it never displays anything other than 0
or 5.
Now we consider the task of lighting the proper digit segments
corresponding to the currently enabled switches in the hours
and minutes shooting galleries. Tag switches won't work: there
aren't nearly enough tags, and there's no way to have a light
that is enabled by more than one tag. There are basically two
ways in which lights can be controlled other than by some direct
action of the player:
- Locating a light switch so that a creature's shots hit it.
This is fine for limited use, but if we tried to create a separate
shooting gallery for each of the digit segment lights, we'd quickly
exceed the limit of 32 active creatures (we'd also run out of
platforms or liquids to control the creatures' firing).
- Using the Activate and Deactivate Polygon Lights flags on
a platform. This allows a platform (controlled by whatever method)
to activate and/or deactivate up to two lights (its floor and
ceiling lights) in sync with its own activation and deactivation.
(Polygons also specify a liquid light, but it is not affected
by these flags.) This idea has great promise, but as you'll see,
it will require a lot of work to turn it into a practical implementation.
The basic idea is
to have each shooting gallery switch activate a platform, which
in turn activates lights. Platform settings include Deactivates
At Each Level, Can't Deactivate Externally, Activates Polygon
Lights, and Deactivates Polygon Lights. Note that the controlled
lights are periodically deactivated: in the duration between
the platform's self-deactivation and the next activation from
the shooting gallery. To avoid flicker, the digit segment lights
all have a Becoming Inactive phase of constant 100% for 2 seconds:
therefore the segments don't immediately appear to turn off when
deactivated.
Obviously, most of the individual hour and minute numbers
require more lights to be turned on than the two that can be
controlled by a single platform. This is not a problem...
...since the platform
can control another platform (via the Activate Adjacent On Activating
flag), which can control two more lights. Either platform can
control yet another platform, so an arbitrary number of lights
can be activated by a single platform activation.
The ideas developed so far would be sufficient to make a working
clock, but it would be horribly inefficient. Consider the implementation
of hour 8: the digit 8 has seven
lit segments, so four platforms would be needed to activate all
the necessary lights (one platform would have the same light
for both floor and ceiling, to avoid affecting an unrelated light).
It would take about 32 platforms (half the number available!)
just to implement all twelve hours, never mind the minutes. So
back to the drawing board...
The design can be
simplified by a process best described as "factoring out
common terms". It is possible to identify individual lights,
or pairs of lights, that are activated by many different hour/minute
settings. Instead of independently activating these lights for
each setting, have a single platform that activates each common
light or pair of lights. Each setting that uses common lights
would have its own platform adjacent to the appropriate common
platforms. Note that the common platforms cannot control any
further platforms, since they would also activate ALL of the
platforms adjacent to them.
This scheme requires extensive (possibly illegal) use of 5D
space in order to have everything adjacent to the proper platforms.
Not a problem, since the player has no access to the area.
Using the factoring technique, I was able to implement the first
working version of the clock tower with about 40 platforms. Along
with the 13 platforms of the combination lock puzzle, and a few
doors, that pretty much used up all of Marathon's platform limit,
long before the level was complete. So back to the drawing board
again...
The final optimization of the clock was based on the following
observation: most of the digit segments are lit most of the time
(in fact, only the digits 1 and
7 have less than half of their segments
lit). Therefore, it is better to have those lights ON by default,
and only turn them OFF in the few situations that need to. Since
platforms don't have a Deactivate Polygon Lights On Activating
flag, this requires lights wired backwards (0% intensity when
active, 100% when inactive).
After months of
research and extensive simulation done on a Cray XMP supercomputer
(well, I might be exaggerating just a bit), I came up with the
following set of segments that should be lit by default: 9:30. This is what you'd see on the tower
in Forge, where the shooting galleries are inoperative: in the
actual game, the Enforcers in the galleries will be triggered
well before your first sight of the clock tower. (The Visible
Trigger polygon that starts the clock is between the library
and fountain: the trigger message travels down to the clock tower,
through a 5D space polygon behind the tower, to the galleries
north of the island. There are a LOT of Zone Border polygons
used to define this path. You can't see the connecting 5D polygon
on your automap because the entrance to it is sealed off by a
solid, nontransparent line.)
The default value of 9 for the hours
has the following consequences:
- No hour needs more than one platform directly associated
with it. Four of the hours change no more than two lights from
the default state, and therefore can be implemented by a single
platform. The rest can be factored into 1-2 lights specific to
that hour, plus triggering one or two of those four simple hours.
- The 9 o'clock setting doesn't have to do anything: no platforms,
not even a switch in the hours shooting gallery.
- There is at least one hour that isn't triggered by anything
else, and only controls one light (actually, both 5 and 6 o'clock
have this property). The additional light control can be used
to trigger the puzzle's solution, without requiring an additional
platform. (On the minutes side, 00
and 05 had this property. 6:05 was an arbitrary 1-out-of-4 choice.)
A total of 11 platforms
were required to implement the hours portion of the clock, which
I believe is the theoretical smallest number that could do the
job. Here's the final version.
Gaze in stunned disbelief at the implementation of the
most complicated Marathon mechanism ever built...
The minutes portion is similar in design, although it didn't
work out quite as efficiently (it required 12 platforms, one
more than the theoretical minimum).
The final piece of the puzzle is a 3-input AND gate, using
the liquid-controlled version, that triggers the bridge and clock
tower door. The 3 inputs are the proper hours setting, the proper
minutes setting, and the rightmost switch on the clock setting
panel.
 CLOCK TOWER PUZZLE
- SUMMARY:
Resources used:
- 4 platforms + 2 Enforcers + 2 Ticks in the shooting galleries
- 11 platforms in the hours mechanism
- 12 platforms in the minutes mechanism
- 16 lights in the display
- Half of a texture, for the digit segments
- 3 lights + 3 liquids + 1 Enforcer + 1 Tick in the AND gate
- 2 purely decorative lights (the slow and fast flashing lights
that distinguish the hour and minute setting switches)
- 1 tag + 2 platforms as the final action
Totals:
- 29 platforms (45% of the per-level limit)
- 21 lights (33%)
- 3 liquids (19%)
- 1 tag (7%)
- 6 active creatures (19%)
|