Hugor: A new Linux/Mac OS X/Windows port of the Hugo engine

Since I wanted to play Cryptozookeeper natively on my Linux computer (including music) I decided to write a new port of the Hugo engine. It also runs on Macs (OS X 10.5+) and MS Windows (XP, Vista, 7). Most stuff should work. Screenshot:

Graphics, music and sound effects are supported, but video is not. Download links for version 0.9:

Linux
Intel Macs (OS X 10.5+)
PPC Macs (OS X 10.5)
Microsoft Windows

You can also find the downloads at the IF Archive.

On Linux, please consult the included README.linux-bin file in case you don’t have some of the needed libraries installed (SDL and Qt).

The full source code is hosted in a Git repository at:

github.com/realnc/hugor

Whoa.

I caught this right before I am meant to grab some sleep. But this is really great news. I can’t properly express my excitement that you put this together (and so quickly!). It’s pretty amazing.

I am going to get it to work ASAP and run my scripts through the game, to ensure that there aren’t any bugbears that I introduced down the line. I’ll try to play around with other multimedia Hugo games as well. I don’t want to oversell anything, but you pretty much won the entire Internet here tonight. The estate of Jon Postel should be sending you a certificate for free packets or something, because this rules. Thank you so much!

Yeah, this doesn’t actually affect me, since I don’t run Linux, but I have to say I’m impressed. This sort of thing is why I love the IF community.

Thanks for the kind words. A big “thank you” should go to Kent Tessman, who always responds quickly to my inquiries about the Hugo engine internals. I was only able to write this quickly because he was fast with providing answers.

Well, I got it to work, apt-get installing the lib I didn’t have like a villain, and it looks great. I then remembered that I never got my Soundblaster card working on my Ubuntu setup when I first threw it together, so I am going to try that next. Congrats again on the terp!

Thanks, RealNC! When you expressed interest in building the interpreter yourself, I was skeptical. I am very glad that skepticism was unfounded and that many people will be able to enjoy Cryptozookeeper more. So yeah, thanks!

So what did we learn in this thread? Never doubt RealNC, always bet on black, and it’s time to sell your homes, because HUGOR is coming to blow them off their foundations!

So, a bunch of us are wondering - does this terp work on OSX as well?

Yes, it also runs on Macs. Also on Windows and Haiku (that “BeOS” thingy). Problem with OS X is though that I’m unable to build the SDL_mixer library with libmad support. I am only able to get a version that uses smpeg instead of libmad, and that means half of the songs in your games won’t work, some MP3s play at double speed (“chipmunk” sound) and many will have an annoying, loud random noise glitch at the start due to the ID tags of the MP3 files not being recognized by smpeg. In other words, smpeg is a broken piece of crap.

If anyone has an OS X framework bundle of SDL_mixer that uses libmad and feels like sharing, please do :stuck_out_tongue:

I just uploaded beta 2 and updated the first post. Changelog:

  • Soft scrolling support (can be disabled.)
  • Sound effects support.
  • Command history (up/down arrow keys).
  • Whether or not the sound is muted when the application loses focus is now configurable.
  • You can now double click on words and they’ll appear in the current command line.
  • Bug fixes here and there.

I’ve made a boo boo with the supplied libraries. Please download beta 3 (see first post) which should now work as intended.

I uploaded Linux and Mac versions of beta 4. (FMOD is used for the sound implementation.) I am not really sure whether these will run on OS X 10.5. I can only verify for 10.6. If you have a 10.5 installation, especially PowerPC, please let me know if it runs.

Note that currently, the Mac version has a weird bug: fixed-width text layout can be messed up. Try different fixed-width font sizes if that happens. This does not happen on Linux.

The only other change compared to beta 3 is support for smart formatting (typographical quotes and such.)

There was an issue when trying to run in OS X 10.5 (Leopard). I believe I fixed it, so simply re-download if you’re on 10.5 and couldn’t get it to run; it should now work.

OS X 10.6 (Snow Leopard) is not affected.

(I wonder if Steve Jobs is of Native American heritage.)

I tried to start a transcript, but the file dialog that popped up was for “Restore a saved game”. Does the transcript command accidentally equate to restoring a game? I’m on an Intel Mac (10.6.).

Thanks for catching that!

No, it doesn’t restore a game. The file you enter will be used to save transcripts. But this is potentially dangerous, since by default it uses a *.sav extension for the filename, which means you can overwrite your savegames by mistake! Even worse, it doesn’t ask for confirmation. So I’ll upload a fixed version sooner rather than later.

Great! (I got it working by first creating an empty file with a .sav ending; the file dialog forces you to pick an existing file.)

I uploaded beta 5 which fixes the issue. I also uploaded a Microsoft Windows build. See first post.

Say, there was a bug in an old Linux terp where accented characters caused the terp to crash. I am going to try to replicate that with Hugor and see what I find. Exciting news on the Windows port!

As far as I can tell, Hugo pretty much only supports games written using the Windows-1252 character set. So the 'terp converts all incoming text from the game from 1252 to Unicode for display. So I hope it can cope with accents.

Hey, random question - so, when Hugo terps start up with Cryptozookeeper, the inventory window ends up looking too big. It’s as if the face and location window are “centered” in between.

If I choose the Fixed-Width font Lucida Console, and put it at 8 points and refresh the screen (I go into help, come out and make a move to refresh the screen) everything lines up perfectly.

Do you know why Fixed-Width font would have a bearing on the graphics and inventory windows? I would love it if the fonts used had no effect on how the screen displays at all.