You can’t make open world games in Game Guru, here is what you can do.

Howdy!

Open world video games, from fun sandboxes with many possibilities, over tightly structured quest lines that can be tackled numerous ways to hollow empty wastelands with occasional activity hot spots. A genre that has gained more and more popularity as media streaming and hardware have drastically improved from what we had in the 32 bit era. (Regardless of this, the Elder scrolls series like Daggerfall, Morrowind, Oblivion and Skyrim have all been 32 bit games. More on that later.)

Now, its not hard to guess how so many GG users have gotten inspired to try the open world route, and given the fact that GG is entry level technology, its easy to understand why so many people jump right into a project without testing wether the engine can do what they want it to as they have no idea how a game engine works in general.

I’m writing this because I find a lot of GG users try to make something open world, usually a zombie apocalypse or something inspired by Behtesdas Fallout games… something generic down those lines, which will inevitably fail (or end up a 10 FPS slog with some zombies scattered around a horrendous level, which is also a failure). In fact, 3 users have already hit me up working on something that was supposed to be a dynamic open world game and one of them even made substantial strides and was now of course suffering performance and stability issues. You also find several projects like this on YT or Game Jolt if you go looking for them.

So, I will take a couple minutes to explain why open world projects are not practical in game guru and what you can do if your game idea absolutely has to have some sort of non-linear design or similar.

1. The default size of buildable space in a game guru map is 1298*1298 meters (alternatively I have heard 768*768 but I asked someone to run a script and it gave a larger number). While that can make for a nice spacious level, it does not make for an entire game world. Even if you plan on something smaller, you can not use the entire
space of that level without running into heaps of problem. So using half of that space and reserving the rest for background decor works best. So you might say, okay, then I break up my world into several levels that the player can travel to and from:

2. No! Every level load in GG is a bit of a gamble when it comes to stability. Will it crash? Even if it doesn’t, most world-values, by that I mean permanent scripts like inventory items, the players cash and so on will not carry over from level to level. Here you will run into a brick wall as far as most open world survial designs are concerned. Then you have the memory issues that pile on and make a level increasingly less likely to load all its media the more often you load a level. Adding “allowfragmentation = 2” supposedly aleviates the issue but it does not fix that. Add to that, that, I can be wrong on this part but I am pretty sure its true. There can only be one player start position per level making traveling back and forth not align thematically. Also note that all enemies killed before will naturally be there once you travel back.

3. Open world implies that all your functionality is in the same level. While you can spawn enemies to improve performance you will end up running a lot of scripts in a level that is probably full of models already. Having this many things run in tandem with each other will likely crash…if by some miracle it doesn’t, it will lag.

4. The good old memory cap makes large levels impractical and unstable.

5. Game Guru loads in all its content at once. That makes for longer loading times, the larger your level is, the larger your level is, the more can cause a runtime error and the more likely will it lag. Open world games like morrowind or skyrim where 32 bit games when they came out, so they had less address space themselves, how did they do that? Loading in cells and unloading them on the fly. GG can not do any of this, no content streaming, no nothing. A level loads in all media and there it is.

Now here are some things you can do, that are practical :

1. Focus your game to have a maximum of 15 levels. I know that, if you are a beginner, that this might seem to be way too small to fit in your epic idea but just go ahead and make a couple playable levels, find out how long it really takes to make a game, even in Game Guru (unless you just use pre-made assets, then it goes fast). The reason I say this is because you can somewhat realistically fit a working game in 15 levels if you play your card rights. A more cynical and probably more realistic estimate would be 6 levels but lets be optimistic here.
2. If the player has to return to the same village, outpost, castle or whatever throughout your story: You can simply manually copy and paste your level, and then edit the level according to what has to happen in the story. This will then be a whole new level but it looks like returning to the same place for the player. It would look something like this in your level load order:

Level 1: Hub World Castle
Level 2: Spider Dungeon Quest
Level 3: Hub World Castle 2

3. It is possible that loading in a smaller level from time to time, without lightmapping, might free RAM space more efficiently (?) so having a small Hub world would be beneficial.

4. Design your game to follow these principals:
Number 1: Linearity isn’t always bad, even though some youtube game critics think it is (the best shooters so far where all linear).
Number 2: Make a few notes of what has to happen during a level so you can make sure that not too many dynamic scripts operate at once.
Number 3: The ideal level size is half the default buildable space or lower (especially lower). You can use the remaining space for background decor like billboard trees, lowpoly houses or what not.
Number 4: Make prototypes and test! If your game is supposed to have dialogues to convey some kinda story, prototype that before you make the levels so you know wether your features can even be implemented or not.
Number 5: Try to design a game that does not need an inventory to carry from level to level.

And here it is, I hope this is useful to someone out there. If I can make at least one person not sink countless hours into an idea, inspired by current gen games, only to end up staring at a run time error, this served its purpose.

Additional Comment by T-Bone:

I’m glad this topic was brought up and I think it should also be carried over to Steam. A lot of people have high expectations that they can make the next Fallout or Skyrim in GG Classic. Its simply not possible. Defy did a pretty good series of memory tests and found a lot of limitations in this area (hope we hear back from him again soon).

Unlike GG Max, GG Classic doesn’t have a terrain neighboring system (similar to cells). If you are planning to make a large outdoor level, you will have to consider reusing instances of a few entities for rocks and trees. You will encounter memory issues over time if you expand too much with too many unique objects – while also running other media into memory such as sound and image sprites.

It should be noted that using entities with LODs actually uses more memory than an entity without LOD stage meshes. These types of models are for maintaining stable FPS performance. Also if you are doing an outdoor level, you may have to consider not using PBR models as well, as those models use a lot more textures than the typical DNS.

I would highly recommend creating linear games with Classic, using memory clearing between levels. Similar to a lot of the PS1 and PS2 game era. There’s even a lot of games back then that do not carry over any values between levels.

About serygala

Who really has time to think about a summary of himself on the internet? I like art, women, gamedesign and I love coffee. Everything else is too much information.
This entry was posted in Tutorials and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s