Maximum game size and settings to compensate

What might be the “maximum” settings to increase be for a large/complex game?

Of course, start with using Glulx, but what about the MAX_STATIC_DATA, MAX_PROP_TABLE_SIZE, etc. settings?

Could someone post the maximum values the I7 program can deal with? Is there a difference in the machine that is running it, as in RAM/CPU? If so, is it possible for someone to post max settings for an “average” CPU with 4GB, 6GB, and 8+GB RAM?

How big can a compiled game be at the max settings on an 8+GB machine? I know the complexity of the logic inside the game can cause differing issues at runtime, and even a small application can choke the system, but assuming the code is written optimally and without logic that bottlenecks things, would there still be a size for the game file that even then it would start causing problems just because of the size? If so, about how many words long can we estimate this upper limit to be?

If my questions don’t make sense as posted, please clarify the issues for me. Basically, I just want to know how big of a game can be made for IF.

Those settings (MAX_STATIC_DATA, MAX_PROP_TABLE_SIZE, etc) apply to temporary storage inside the I6 (not I7) compiler. They are not very interesting. You will probably run into a couple of them when writing a large game, but you just turn up whatever the setting is and move on. Someday we will rewrite bits of the I6 compiler to use realloc() and those settings will become obsolete.

The size of the game itself is limited to 512 kilobytes (Z-code) or 2 gigabytes (Glulx). I do not expect you to reach the two-gig limit.

This is a more interesting question.

In an ideal world, the size of a game would never matter – only the number of objects visible at any given time. (Out-of-scope objects should not slow anything down.) I6 was pretty good at this, but I7’s library has some problem points that loop over the entire contents of the game.

I have an experimental extension which fixes some of these points and partially fixes others. See this thread: Improving performance for large games

EDIT-ADD: It’s not updated for 6L02 but I could work on that if somebody needs it.

Looking over at the Flexible Survival thread (https://intfiction.org/t/cant-compile-with-6l02/6991/1), I found that when compiling that game, the I7 compiler ran up to 1.724 gigabytes of memory use (virtual RAM allocated). This is a game with roughly 35 megabytes of I7 source code.

Of course it then ran into a bug and the I6 stage failed, so this isn’t as reassuring as it might be. But I suspect that, bug aside, I7 is good for compiling very, very large games.