loafingcoyote wrote:Second, I would like to learn more about the inner workings of Hugo. The Hugo comp was a great way to get back into Hugo but I have a lot to learn. I wish I could get my hands on a physical copy of the Hugo manual. I wonder if anyone has ever printed out a hard copy of the library and if that helped?
I think the manual was originally printed by cafepress.com or somebody. In any case, it was a site where it didn't actually cost Kent anything to set up. We've requested that he put the book back up for sale. I imagine, given enough time and enough prodding, he will. Personally, other than the first read-through, I find all of my research goes to the electronic version (in fact, I lent my book to pinback). Only in the last couple years did I realize that Adobe Reader allows you to make comments on PDFs. I use the comment system to mark passages I want to remember (occasionally, I'll even find a mistake in the book!). Anyhow, you can download a version with some comments already-in-it at:
http://roody.gerynarsabode.org/hugo_book.pdf
As far as the library itself goes, I've never printed it out. It's just been
a lot of text searching. It's helpful to have a text editor that does the multiple-file-search thing (or an external program like TextCrawler) to pull instances up quickly. Currently, in my copy of EditPlus, the Hugo Library is its own project since the built-in "find in files" lets my search by project.
Anyhow, the most important things I've learned about dealing with the library have been:
1. Learning the importance of the "replace" function
You've written enough Hugo code that I assume you are well familiar with replace, but it was a big step for me when I realized that Hugo was designed with this feature so you didn't feel like you're almost "ruining" the library for every game as you modify each little thing to do what you want. Using and understanding "replace" helps you write better code. I'm sure there was an equivalent in Inform 6, but when I wrote in I6, I didn't know it and my first game was much worse for it.
2. Learning how the message system works
It's only been in the last several months that I really noticed how Hugo so consistently separates routine "machination" code from their messages. Now I'm starting to do the same thing with my own utility and verb routines, which I imagine will help anyone who uses my code one day. I wrote an entry about messages at our Hugo By Example site here:
http://hugo.gerynarsabode.org/index.php?title=Messages
But yeah, there's really no substitute for looking at the code itself. Only in the last couple months did I realize that before and after properties were called by the routines BeforeRoutines and AfterRoutines. Up until that point, I thought it was some mystical engine-based thing.
Going through your game line by line with the debugger really helps towards those kinds of revelations, too.
loafingcoyote wrote:
Third, I need to catch up with contemporary IF. That means playing all the Hugo games that I haven't gotten to yet and some of the better offerings in other languages.
Some noteworthy games from the last several years-
I would check out ICJ's games to see the games that have been carrying Hugo's reputation for the last number of years. He does a great job of telling stories not told in IF with a presentation style that no one else matches.
Violet by Jeremy Freese- The actual puzzles in the game are basically old school, but this game uses narrative voice just awesomely- so well done it's hard to believe it was Mr. Freese's first game.
The C.E.J. Pacian games, Rogue of the Multiverse and Gun Mute-
Both of these games have really interesting takes on the action genre, IMO.
King of Shreds and Patches-
There are some things about this game that bug me, but what really impresses me about this game is how it handles the ASK/TELL convention. I really think its handling is basically perfection (as far as ASK/TELL goes).
The Jim Munroe games, Everybody Dies and Roofed-
Both of these have interesting settings/premises.
(There are probably other awesome games I haven't yet played myself.)
[quote="loafingcoyote"]Second, I would like to learn more about the inner workings of Hugo. The Hugo comp was a great way to get back into Hugo but I have [i]a lot[/i] to learn. I wish I could get my hands on a physical copy of the Hugo manual. I wonder if anyone has ever printed out a hard copy of the library and if that helped?[/quote]
I think the manual was originally printed by cafepress.com or somebody. In any case, it was a site where it didn't actually cost Kent anything to set up. We've requested that he put the book back up for sale. I imagine, given enough time and enough prodding, he will. Personally, other than the first read-through, I find all of my research goes to the electronic version (in fact, I lent my book to pinback). Only in the last couple years did I realize that Adobe Reader allows you to make comments on PDFs. I use the comment system to mark passages I want to remember (occasionally, I'll even find a mistake in the book!). Anyhow, you can download a version with some comments already-in-it at: http://roody.gerynarsabode.org/hugo_book.pdf
As far as the library itself goes, I've never printed it out. It's just been [i]a lot[/i] of text searching. It's helpful to have a text editor that does the multiple-file-search thing (or an external program like TextCrawler) to pull instances up quickly. Currently, in my copy of EditPlus, the Hugo Library is its own project since the built-in "find in files" lets my search by project.
Anyhow, the most important things I've learned about dealing with the library have been:
1. Learning the importance of the "replace" function
You've written enough Hugo code that I assume you are well familiar with replace, but it was a big step for me when I realized that Hugo was designed with this feature so you didn't feel like you're almost "ruining" the library for every game as you modify each little thing to do what you want. Using and understanding "replace" helps you write better code. I'm sure there was an equivalent in Inform 6, but when I wrote in I6, I didn't know it and my first game was much worse for it.
2. Learning how the message system works
It's only been in the last several months that I really noticed how Hugo so consistently separates routine "machination" code from their messages. Now I'm starting to do the same thing with my own utility and verb routines, which I imagine will help anyone who uses my code one day. I wrote an entry about messages at our Hugo By Example site here: http://hugo.gerynarsabode.org/index.php?title=Messages
But yeah, there's really no substitute for looking at the code itself. Only in the last couple months did I realize that before and after properties were called by the routines BeforeRoutines and AfterRoutines. Up until that point, I thought it was some mystical engine-based thing.
Going through your game line by line with the debugger really helps towards those kinds of revelations, too.
[quote="loafingcoyote"]
Third, I need to catch up with contemporary IF. That means playing all the Hugo games that I haven't gotten to yet and some of the better offerings in other languages.[/quote]
Some noteworthy games from the last several years-
I would check out ICJ's games to see the games that have been carrying Hugo's reputation for the last number of years. He does a great job of telling stories not told in IF with a presentation style that no one else matches.
Violet by Jeremy Freese- The actual puzzles in the game are basically old school, but this game uses narrative voice just awesomely- so well done it's hard to believe it was Mr. Freese's first game.
The C.E.J. Pacian games, Rogue of the Multiverse and Gun Mute-
Both of these games have really interesting takes on the action genre, IMO.
King of Shreds and Patches-
There are some things about this game that bug me, but what really impresses me about this game is how it handles the ASK/TELL convention. I really think its handling is basically perfection (as far as ASK/TELL goes).
The Jim Munroe games, Everybody Dies and Roofed-
Both of these have interesting settings/premises.
(There are probably other awesome games I haven't yet played myself.)