I've made a recoding in Micro Color BASIC (for the TRS-80 MC-10) of the text adventure "Galactic Hitchhiker" (1980) for the Compukit UK101.
Gareth Pitchford (I'm assuming it's him based on his avatar pic from on CASA and Facebook) gave me the idea in a post over on the CASA Adventure archive forum. He noted that it was an important landmark game; one of the very first original British authored "home computer" text adventures. Unfortunately, it was for a very early 8-bit computer system, the Compukit UK101, which was a unique variation of the Compukit line from America. As a fairly rudimentary system, it was a little more difficult to operate than later home computers and modern emulation can pose some difficulties for the uninitiated. He suggested that if I was looking for adventures to convert or "fix up", this might be a good one to try. He was right.
He set me on to a page he hosts "8bitAG" with a write-up about the game and a walkthrough and map by benkid77: http://8bitag.com/info/galactic.html
Benkid's walkthrough provided me with invaluable information, especially the video. I used Gareth's page to find my way to the hex file of the original program. I was able to download it and then convert the hex listing to ASCII characters, which produced something like this:
NORTHEASTSOUTHWESTUPDOWNSTARTGOGETDROPTAKEWAVEPUSHPULLDON'TSHOOTCHOPCUTFEEDOPENGERBICOPJOLLY GERB GIANTGHOULIBRUTESPACE RANGERTREE ACROSS THE RAVINEDOORBUTTONLEVERFENCETREEPANICJUGBLASTERCHOPPING-AXEWIRE-CUTTERROAST JOINTKEYPIT-PROPTATTY OLD SCARFTICKETRUCKSACKSCOREThis gave me all the messages and room descriptions. Then I just had to use my go-to BASIC text adventure engine, "Tower of Mystery," which was provided as an example in Compute's Guide to Text Adventures (1984). It has all the standard commands for handling all the functions of most BASIC 2-word text adventures. I just stripped out the "Tower of Mystery" stuff, and put in the room descriptions from the hex dump converted to DATA strings. Then I just had to figure out the directional relationship (N/S/E/W/U/D) between all the rooms working from the video walkthrough provided by benkid. From that and the printed walkthrough I was able to come up with a map like this:
I'M IN A
NOW WHAT SHOULD I DO? I CAN'T. I'M CARRYING ENOUGH ALREADY.
THERE IS A HERE. I DON'T UNDERSTAND.I CAN'T GO IN THAT DIRECTION.GO WHERE? WHAT?
OKAY, NOW WHAT?
A GREAT IDEA! HOW? WHAT ? DEAD I CAN'T.
SPIKE HERE: YOU GOT LUCKY, MAN.AW, REAL COOL BABY.FANTASTIC! HE'S ON GRECIAN 2000.AMAZING, MAN!YOUR SCORE ISHE'S GETTING DRUNK!
ANOTHER TRY (Y/N)?
I'M IN A GIANT INDUSTRIAL COMPLEX. THERE ARE
PIPES LEADING EVERYWHERE AND HUNDREDS OF
ENORMOUS STORAGE TANKS.
I'M IN A DESERT OF GREY ASH. THE TWO SUNS OF
GOMERIL BEAT DOWN MERCILESSLY AND SCAVENGER
BIRDS ARE CIRCLING OVERHEAD.
A MASSIVE EARTHQUAKE IS SHAKING THE BUILDING.
I CAN FEEL ANOTHER EARTH TREMOR.
THE SHIP'S GONE! THE WHOLE PLACE IS BLOWING
UP AND THE BLOODY SHIP'S GONE!AW, POOR OLD MO.HE'S BEEN ELECTROCUTED!DON'T BE SILLY!HE'S BEEN DEADED. HOW SAD.
Obviously, the maps have had a lot of erasing and editing from my original crappy versions. The room numbers are mine, from the reprogramming process, but because I didn't disturb the original order too much (except for the first few room descriptions), you can discern the mapping of the author. The rooms are arranged in a grid (roughly 5X4) of 4 "levels" corresponding roughly to 4 main episodes/locales in the game. Another interesting structure I stumbled across involved the scoring (although this may not correspond to the original). There appear to be 10 main puzzles/milestones in the game, which boil down to this list:
- OPEN DOOR (to get to the escape craft)
- CHOP TREE (to get to Gerb City)
- CHOP GERBICOP (to get the scarf)
- CUT FENCE (to get to the Spacetran)
- PUSH BUTTON (to escape the Spacetran)
- WAVE SCARF (to get rescued and taken to Gomeril)
- FEED GHOULIBRUTE (to get blaster to shoot Ranger)
- SHOOT RANGER (to get into the Time Corp building)
- DON'T PANIC (to get into the Time Machine)
- PULL LEVER to return to the beginning where you must GET TICKET and then get to the Starliner in time (to win).
Not sure if this corresponds to the original, but I like its simplicity and the fact that if you give each step a weight of 10, you get a kind of percent meter to gauge your progress to completion.
In particular, I have simply speculated about the wandering that might be present in the "Desert of Grey Ash" map, particularly around rooms 51 and 49. It was also just from the apparent arrangement of room numbers that I have put the "Theatre" (Room 15) from the City of Gerb where it is.
It is also speculation on my part that there is a count-down on the first map, and that the player has a limited number of moves before the planet blows up. This is currently set to 30 moves. I'm not sure if this is a fair amount for a first-time player. When you return to the beginning by way of the time machine you get 20 moves to get to the Spaceliner to complete the game. I tried this, and if you make a mistake like forgetting to pick up the ticket, you wont make it back to the Lounge and then back to the Liner to escape before the planet blows. Again, I don't know if this is fair, or even like the original.
There is also some guess work on my part about the deaths. The video walkthrough provides some hints about these, as do the messages from the original code. But there is still some speculation involved on my part. Some deaths might be missing.
In any case, I don't think any of my speculations are weird. They make for a pretty standard game like any of that time period. So my version might not be a perfect recreation, but then again maybe a slightly altered version might not be that bad, especially for those wanting to revisit the game. But I still would appreciate any comments that might allow me to improve fidelity. Then again, many of the commentaries I read about the game, such as Renga in Blue's (who also provided a useful partial map), note that the original (probably because of memory limitations or because the genre was still so young) had some annoying traits. There was no LOOK command. There was no INVENTORY command. There were no shortcuts for the directions. These have all been fixed. An EXAMINE command has also been added, along with other niceties curtesy of the Tower of Mystery engine.
I hope some folks who wouldn't have had an opportunity to play this quirky game now will be able to try it. It's a wonderful parody/homage to the Hitchhiker 's Guide to the Galaxy franchise by Douglas Adams, with a little reference to Dr. Who thrown in for good measure. Spike is Ford Prefect. Maurice is Arthur Dent. Marina is Trillian. You can get a taste for the sense of Knight's humorous take on these characters from the intro screen:
The source can be found here: https://github.com/jggames/trs80mc10/tree/master/quicktype/Text%20Adventures/HitchHik
Enjoy. And please comment.
ADDENDUM
I realized after watching my own video walkthrough that the Tower game engine was using the phrase "You see" as part of its description. However, in the original game the references to the main character are always in the form of "I" references coming from Maurice, with the player being the "You" who is recommending actions to him as a helper per Spike's initial request to "help him" get home (or controlling him a la Scott Adams' "puppet" metaphor for the dynamic between player and character in text adventures). So, for example, Maurice refers in several places to "You" such as in the desert, where he asks "Have you got me lost?" So I cleaned up all the references to "you" coming from the parser that were referring to the player, and switched them to "I" references, such as "I see" "I'm carrying" and "I can't", which refer to Maurice the character and what he is experiencing. This convention is an indication that this text adventure is a very early one (for Britain) and that such conventions were still fluid.
I also added the ability to get an INVENTORY by typing "OPEN RUCKSACK" to be like the original and fixed a misplaced comment from Spike. He says "Cool baby" when you are ejected into open space, rather than when you get to the final elevator, which had been a complete speculation on my part. It's much funnier as a comment when Maurice is floating in open space. I also fixed it so you die if you don't wave your scarf in open space, rather than simply being left in a room with no exits.
P.S.
With the help of Gareth's page I finally got the Compukit emulator up-and-running and played through to the Desert region. I was able to figure out the rooms in the 49-51 grouping. I realized that I had left out and combined a number of room descriptions. I was able to restore the original map, but I had to add 3 new rooms. In the course of making that change, I was able to consolidate the repeating Desert description, so it used a single string for the initial part of all the desert room descriptions. This saved a bunch of memory, so I was able to go back and fix up some things and make some minor additions to the program. I had been somewhat constrained because I was reaching the max of memory. I noticed a misspelling of "corridoor," which I changed to "corridor." I added a description to the EXAMINE function that notes that the axe is for chopping trees, since Renga in Blue had complained that there was no specific reference to TREE as an object in the game. I also made it deadly to try to kill the Jolly Gerb Giant or the Ghoulibrute, since there are plenty of warnings about Ghoulibrutes (and who attacks a giant!). I also made the Ghouilbrute disappear after you feed him, since I noticed that happened while playing the original. And I made Maurice's complaint that "the whole place is blowing up..." disappear after your reach the lift to the Starliner the first time. Seemed a bit excessive to have it repeated ever time you enter the room, and the original game removed it. Anyway here's the new desert map:
No comments:
Post a Comment