DEBASER SMASH HUGO!!!

This is a discussion / support forum for the Hugo programming language by Kent Tessman. Hugo is a powerful programming language for making text games / interactive fiction with multimedia support.

Hugo download links: https://www.generalcoffee.com/hugo
Roody Yogurt's Hugo Blog: https://notdeadhugo.blogspot.com
The Hugor interpreter by RealNC: http://ifwiki.org/index.php/Hugor

Moderators: Ice Cream Jonsey, joltcountry

Debaser
Posts: 878
Joined: Tue Jun 25, 2002 9:55 pm
Location: Aurora, IL

Post by Debaser »

Roody_Yogurt wrote:I hope that most if not all of those bedrooms have something necessary to the plot or game play. Otherwise, as a player, I would probably prefer just not being able to go into them. For me, at least, rooms that are implemented just for the sake of logic often have a dead sort of feel to them.
Yeah, I know, and it's becoming a balancing act. I've got four bedrooms, a kitchen, and a living room, but I never let the player see the inside of the bathroom and I'm just pretending there's no back yard, which is something I dislike doing as I tend to find it hurts immersion to pretend something isn't there when it would logically be there. The first time you visit the house, one of the bedrooms is just kinda "there", one of them (which you can't access without solving a fairly simple optional puzzle) contains quite a bit of plot foreshadowing and some stuff that provides some background information on the setting and why its inhabitant is important to the plot. The other two both contain something you need to advance, but there's no real reason the two items couldn't both be in the same room, other than the fact that I've got four characters. I'm trying to alleviate this somewhat by making each room distinct in some way that will help characerization.

For instance, one of the house's inhabitants is a hard-core "fight the power" type with absolutely no money who's pretty much relying on the other inhabitants of the house to support her. So, when I put in her CD collection, I thought it would make sense for it to consist entirely of burned discs. That meant I had to put a computer with a cd burner somewhere and so, instantly, the one member of the foursome who I hadn't come up with anything to say about other than "really, really large" (of course, this brings up the issue of extraneous characters, which I'm having an even tougher time addressing) became the geek/computer savvy member of the group. Although he's asleep in this particular time block, visiting his room presents you wth this fact, because there's a top of the line computer and nothing else that looks like it could cost any money in there. In the same sense, by including their books and/or music selections and their choices of decore, I'm hoping to flesh these people out a bit for the player. I'm not sure how it will play to anyone who's not me, of course, and I won't until beta testing. At the very least, at some time block, each of the four rooms will contain it's corresponding character at a point when the player might want or need to speak with them.

To a certain, extent, I am really trying to realise a world, and I understand the pitfalls inherent. It's especially tough, because the game takes place across a fictional city and, at some essentially arbitrary point I keep having to tell the player "no, don't go any further in that direction, use the transit system". Plus, again, just finding some sort of "hook" for every place the player has to visit , something to make it memorable or at the very least distinct from everywhere else, is tough. And I'm probably not doing as well as I'd like, but I'm trying.

Roody_Yogurt
Posts: 2256
Joined: Mon Apr 29, 2002 6:23 pm
Location: Milwaukee

Post by Roody_Yogurt »

Well, it sounds like you've got a grasp of the difficulty so I'm looking forward to seeing how you handle it. It's a respectable goal, and I hope it doesn't become too much of a hassle... says the guy who wouldn't even code a sink into the kitchen of his first and only real game.

User avatar
Ice Cream Jonsey
Posts: 30193
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Post by Ice Cream Jonsey »

Confidential to T. Debaser, IL: Hey, if you end up being in need of an elevator, let me know. While there is an implementation of an elevator class for Inform. I did not actually go and translate it, though I probably should have. I just mucked about with rooms and parse_rank values to differentiate between the direction "down" and the "down button" and so forth. My implementation kind of sucks, but it's yours if you'd like it at some date as a starting point.
the dark and gritty...Ice Cream Jonsey!

Debaser
Posts: 878
Joined: Tue Jun 25, 2002 9:55 pm
Location: Aurora, IL

Post by Debaser »

Okay, new issue:

I run the compiler today on my game, and suddenly the log is flooded with error messages, all labled "maximum dictionary limit exceeded", or something similair. Apparantly, I've got too many nouns and/or adjectives, which makes no sense, because I don't think that:

A. I'm providing a particularly amazing number of synonyms for the objects included herein.

B. I have anywhere near as many objects at this point as, say, Fallacy of Dawn.

So, anyway, I'm maybe a quarter or so of the way through the game at this point. If this is a legitimate limitation, I'm essentially screwed. But I refuse to believe it's not me doing something wrong, here.

User avatar
Ice Cream Jonsey
Posts: 30193
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Post by Ice Cream Jonsey »

Hugo's limits are pretty elastic. You might be exceeding the limits of some of the smaller computers, but FoD is 699KB in size with a crapload of routines and synonyms and so forth.

Obligatory question: you didn't do something like leave a quotation mark off a custom verb or something, did you?

Here's FoD's compile stats:

Code: Select all

===============================================================================
HUGO COMPILER v3.0.01d STATISTICS FOR:  dawn.hug
07/03/03 00:23:23
===============================================================================
Total lines compiled:  42206

Objects:      655 (maximum  1024)      Routines:   322 (maximum   512)
Attributes:    44 (maximum   128)      Events:      50 (maximum   256)
Properties:    80 (maximum   254)      Labels:      10 (maximum   256)
Aliases:       41 (maximum   256)      Globals:     72 (maximum   240)
Constants:     78 (maximum   256)      Arrays:      25 (maximum   256)

Words in dictionary:  1749    Special words:    27    Verbs:   130

Object file:  dawn.hex (715323 bytes)
List file:    dawn.lst

Elapsed compile time:  2 seconds
===============================================================================
That can be generated when you do a hc -l -s gamename.hug. (It'll throw it into a text file for you if you do that.) If you get a chance, do that and paste it up here and we'll see what's what.
the dark and gritty...Ice Cream Jonsey!

Debaser
Posts: 878
Joined: Tue Jun 25, 2002 9:55 pm
Location: Aurora, IL

Post by Debaser »

Ice Cream Jonsey wrote:Obligatory question: you didn't do something like leave a quotation mark off a custom verb or something, did you?
This is what I'm getting after fixing all my quotes and braces and so-forth, and I don't see any similar errors in the vicinity of where the problem starts.
That can be generated when you do a hc -l -s gamename.hug. (It'll throw it into a text file for you if you do that.) If you get a chance, do that and paste it up here and we'll see what's what.
Hrm. The compiler aborts itself before those statistics come up, so no dice. The limit I'm exceeding by the way appears to be 1024. FoD apparantly has a 1749 word dictionary, which would lead me to believe I can adjust something somewhere. But that's strictly blind guessing.

User avatar
Ice Cream Jonsey
Posts: 30193
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Post by Ice Cream Jonsey »

Debaser wrote:Hrm. The compiler aborts itself before those statistics come up, so no dice. The limit I'm exceeding by the way appears to be 1024. FoD apparantly has a 1749 word dictionary, which would lead me to believe I can adjust something somewhere. But that's strictly blind guessing.
If you'd like to zip up your directory and mail it to me, definitely feel free.

You're right about expanding the limits -- the very first non-comment line in Dawn is

Code: Select all

$MAXDICT=2048
I can't recall if 2048 is an upper bound or a hard limit. Unfortunately, I have been programming for so long that even if I could have easily made it 2000 or 3000 I probably would have selected 2048 because this is what this profession does to you -- it gets you living in a world where cavemen had 8 (or 16) fingers instead of 10.

But yeah, insert that line at the beginning of your code and let's see if that gets things to be more succulent and tempting.
the dark and gritty...Ice Cream Jonsey!

Debaser
Posts: 878
Joined: Tue Jun 25, 2002 9:55 pm
Location: Aurora, IL

Post by Debaser »

That did her. Thanks, Robb.

User avatar
Ice Cream Jonsey
Posts: 30193
Joined: Sat Apr 27, 2002 2:44 pm
Location: Colorado
Contact:

Post by Ice Cream Jonsey »

Debaser wrote:That did her. Thanks, Robb.
M-M-M-M-MONSTER KILL!!!

There is probably a list the keywords in the manual, but for what it's worth (as I have it right in front of me) the maximum routines one is "$maxroutines".

Ok, I only typed this out because I wanted to do the monster kill thing.
the dark and gritty...Ice Cream Jonsey!

Kent
Posts: 119
Joined: Fri Jun 27, 2003 12:10 pm

Post by Kent »

Yeah, if you're using a lot of dictionary words (which can be other things than nouns/adjectives; for instance, anything where you have 'x = "some string"' is a dictionary "word"), you can overflow the limit.

The compiler's default limits are basically sufficient to compile a medium-sized game with medium-ish demands in terms of number of objects, routines, and all that good stuff. The reason for this is to allow it to run on limited memory machines (like 640KB DOS environments). This is, arguably, unnecessary these days, and part of an argument to boost the default limits.

Post Reply