The Hugo Newsletter
Price £/$ 0.00
The Hugo System
Where it all began
Where to Find Hugo
How to Get Started
Hints and Tips
Welcome to the first edition of The Hugo Newsletter, the newsletter for users of Hugo (strangely enough) the Interactive Fiction (IF) design system. I hope this newsletter will become a regular and popular read for those of us who have been or are considering using Hugo for writing and playing IF. I also want to hear from you about the best HUGO game you have played. Once I know the most popular ones I will try and get interviews with the authors that can be read in the newsletter.
This first issue will cover the basics: where to get Hugo; how to get started; what you should know, etc., plus background information on how Hugo came to be, what prompted Kent Tessman into writing Hugo and even how he came up with the name.
By the way, if this first issue looks a little bland and boring, I apologise, but I want to reach as many people as possible who will have different types of web browsers and therefore I do not want to alienate anyone, especially those who use "text only" browsers due to disability. I also don't have time or ability for actually doing a proper web page design. Ideally, I would like the above contents to be clickable (i.e. the reader can click on the relevant title and be taken straight there) and possibly separate pages instead of one long scroll. If you have the time and would like to VOLUNTEER I would be more than grateful.
If you wish to design any pictures (please use original artwork or copyright free material) I will be more than happy to take them on board. If you are interested in designing a picture please e-mail me (address at bottom) and I'll let you know what I want.
Hugo is one of the leading IF design systems. In addition to being capable of producing leading-edge text adventures, it also allows a developer to incorporate true-colour graphics display (which are optional for those who lack either the hardware or inclination to view graphics) as well as sound effects and music. And it's free.
The complete Hugo system consists of several parts, the most important of which are the Hugo Compiler and the Hugo Engine the former takes text-format source code and turns it into a playable format understood by the latter. The Hugo language itself is an easy to learn, highly object-oriented language which (the Kent hopes) encompasses the best elements of elegance, simplicity, clarity, and power of modern programming languages. Also available is the Hugo Library: a collection of common routines, objects, etc. that are responsible for managing many of the "physical universe" aspects of the game. (And the sophisticated Hugo Debugger allows a Hugo programmer to examine every aspect of a game at runtime.)
Those of you who are reading and considering using Hugo, let me give you the following example of how easy Hugo is to use. I downloaded Hugo one wet and windy Saturday. By the end of that afternoon I had programmed my first adventure! Okay, it was nothing special, it consisted of a four-room house and you had to find a key to unlock a door to get out of the house. It didn't have NPCs (non-player characters) or complex puzzles but it was a complete adventure in it's own right and I was very proud of it.
So, you can see how easy it really is. Remember, I have no computer programming experience (even this newsletter was done using Microsoft Word).
Go to the "Where to Find Hugo" and "How to Get Started" sections for more information.
What was the idea behind Hugo? What made Kent Tessman design such a program? I wanted to know and so I e-mailed Kent. Here's what he told me:-
"I was an Infocom fan way back in the early eighties. Played Deadline and got hooked immediately and for good. I wrote a few simple games/parsers on the old family Apple II but really left computers behind as a programming toy when I went to film school.
"It was at university that I found out about rec.*.int-fiction and Inform and TADS right about the time I was thinking about putting together a film project and using an ancillary game as one of the selling points to get support. I looked into Inform and TADS, was told they wouldn't meet my needs, really, and decided to write my own.
"Hugo was supposed to start off very simply as a very basic template with some rudimentary scripting. Somewhere along the way it's grown into what some would say is a full-featured language. (Of course since I'd not written anything programming-wise since high school, when I started out I knew next to nothing about programming compared to what I do now, having written the compiler, runtime engine, debugger, library, and ported the works to several different platforms.)
"As for the name "Hugo" came from the title
and main character of the movie project for which I initially conceived the game engine
(in order to develop the concurrent ancillary game product).
"So whew--that's the short version. :)"
Hugo is available from two main sources. These are The General Coffee Film Production Company (yes, that is correct) or from http://www.ifarchive.org/if-archive/programming/hugo/executables/. Make sure you download the latest version for your system (at the time of writing the Windows 32bit version was 3.0.01d Sept 9 2001). You will also want to download the Hugo libraries (file name Hugolib.zip).
You should also look to getting the .RTF version of the manual (the Adobe version is an older version) from http://www.ifarchive.org/if-archive/programming/hugo/manuals/.
Another good idea will be to download the following:
1. the Shell (all the basic bits you need at the start of your game) and Sample (a simple little game that demonstrates how advanced a game can be from just a little programming). Both of these are available from if-archive/programming/hugo/examples
2. source code for Kent's game 'Spur' (from http://www.ifarchive.org/if-archive/games/source/hugo) and keep this handy. Kent freely admits that the manual is not the most accessible and easy to understand (another reason for this newsletter is so that we can all help each other and provide tips and solutions to problems). I have found that looking through the source code (and playing the compiled version) of Spur a great help to see how things are achieved.
You can also find on http://www.ifarchive.org/if-archive/games/hugo games that others have written using the Hugo system. You may wish to download a couple of these to see what others have accomplished.
If you have any problems with the above please do not hesitate to contact me at firstname.lastname@example.org (please make sure the subject line includes the word HUGO).
To install Hugo, unzip the downloaded files into a temporary directory such as "C:\Windows\Temp" (either directly or by using something like WinZip's "Install" feature), then run the program "Setup.exe", then follow the on-screen instructions.
You are now almost ready to have a go. However, it is worth giving you a very quick overview of the three main Hugo programs.
You will notice looking in the directory you saved Hugo to that there are three Hugo executable programs, if you have downloaded the version for Windows 95 or later these names will be hcwin.exe, hewin.exe and hdwin.exe (if you are using Win95 or later you can click on Start and go to Programs/Hugo and it will list Hugo Compiler, Hugo Debugger and Hugo Engine).
Hugo Engine (hewin.exe)
This is for running Hugo games on. Hugo does not make "stand alone" games and therefore you need to have the engine to be able to play them. Any Hugo game you have downloaded that has the .hex filename extension can be run with the Hugo engine.
Hugo Compiler (hcwin.exe)
This is where once your games have been written you compile them so that the Hugo Engine can run them. When you are writing your games, you can use any text editor or word processor (even Notepad will do) but remember to save the file as a text only file but with the extension .hug instead of .txt, then the Compiler will understand that it is a game ready to be compiled.
Hugo Debugger (hdwin.exe)
This is for when you are writing a game and have a problem, you can run the Debugger. It runs the game as normal but highlights each line it is working on which can help to track down any errors you have made.
So you have downloaded Hugo, understand what the three programs do and are dying to have a go. Okay, then let's go.
Playing a game
If you have downloaded a game someone has written (or the compiled version of 'Spur' from http://www.ifarchive.org/if-archive/games/hugo) then you can play it straight away. Start up the Hugo Engine and you will be asked for the filename. If you cannot remember it click on browse and find the game, then click Run or press Enter and away you go. You may want to type "about" (without the quote marks) as soon as you can in the game for background info, etc.
Compiling a game
If you have downloaded the source code for the Sample game (The Vault of Hugo) then you will need to compile it first. As you are new to this the last thing you want is to have unnecessary error messages, so before launching the Hugo Compiler make sure that the Sample.hug file is in the same directory as the Hugo Compiler. Now, on starting the Compiler type in Sample.hug into the 'File to Compile' box and then click on Compile (or press Enter).
Writing a game
Obviously, for me to sit here and tell you how to write a game is going to be way beyond the realms of this newsletter. What I would say is make sure you have:
a) A copy of the source code for the Sample game (if you can print it out that will help a great deal). Play the game with the source code to hand and see if you can figure out what the computer is doing.
b) A copy of the Shell program open on your text editor (Notepad is fine, but I would actually recommend against using more advanced word processors), plus a printed copy of the source code as well.
c) A copy of the manual. This is a long(ish) document, but again well worth printing out, so that you have your code on screen and the manual to hand.
d) Plenty of time. Hugo is easy once you start to use it, but (like everything in life) to use it well takes a bit of time. If it is raining outside, television is boring and the whole afternoon is stretching ahead of you like a barren wasteland of nothing, then this is the perfect time to settle down to learning Hugo (remember, in the space of an afternoon, I went from knowing absolutely nothing to writing my first albeit small adventure, see My Comment).
If you have problems you can either e-mail me or post a message on the newsgroup rec.arts.int-fiction where there will be many people willing to help (you may even find that Kent Tessman himself answers you).
This is where I am expecting most of the input. If you have any hints or tips, or have found clever pieces of code, let me know so they can be placed here for the benefit of all. For instance, there was a request for code to implement a telephone object on raif (the newsgroup rec.arts.int-fiction); someone has written quite a comprehensive one which is available from http://www.ifarchive.org/if-archive/programming/hugo/library/contributions/phone.txt.
I'll get the ball rolling with a couple of basic ones, which any experienced HUGO user will probably know.
'Look' without taking a turn
I had a puzzle whereby if you put water from a stream into a shallow bowl (rather than the accompanying jug) and tried moving with it in your hands the water would spill over the sides of the bowl and you would end up with no water.
However, I noticed when testing the puzzle that even typing 'Look' was classed as a turn and therefore water spilled from the bowl, but if you are looking you are standing still but using your eyes, so this shouldn't happen. After much head scratching and trying things I had no luck so asked Kent. Of course he came up with the most simple piece of code:
This needs to go before the library grammar (so just before the line #include "verlib.g" at the start of the code). It works by making "look" an xverb and does not call the 'main' routine afterward.
This, therefore, stops the command look from being a 'turn' and any turn based puzzles, daemons, fuses, etc., should not increase (or decrease).
Blocks of text
Remember, a single standalone block of text can only be 1024 characters long. I forgot this and so typed quite a long passage, which gave me a Line Overflow Error. Of course, the way round this is simply to split the passage into two (or three or more if required) by putting double quotes and a semi colon then pressing return and starting on a new line, like this:
" and 1024 characters ends at the full stop.";
"However, put in the double quotes and a semi colon and then start on a new line and you can carry on as usual."
So, there you have it. A brief intro to Hugo. If you would like to ask questions, want to volunteer to help with the layout of the newsletter (as mentioned in the Introduction) or want to provide tips and hints for using Hugo please e-mail me at email@example.com (please include in the subject line the word HUGO).
The HUGO Interactive Fiction Design System and the HUGO graphic at the top of this newsletter are owned by Kent Tessman and he has given me kind permission to use the graphic as required.