1
\$\begingroup\$

I'm making a metroidvania game. For what it's worth, I'm using Godot as the game engine, but I think my question applies for any engine.

If you look back at old games such as Super Metroid on SNES, the game is divided into zones linked together by gates, as shown on this picture:

enter image description here

When the player goes through such a gate, the screen goes black, and I assume that the new zone is loaded while the old one is deleted. You could think of it as a loading screen.

I replicated this mechanism in my game: when the player leaves a zone (by touching the side of the screen in my game), I load the new zone and delete the old one. However, I wonder if this is really necessary. After all, a modern computer is several orders of magnitude more powerful than the SNES. Wouldn't it be possible to simply have one "giant zone" that encompass the entire game?

I'm not sure at the moment how big will be my game, so it's hard to evaluate the size of this "giant zone".

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Modern computers can probably handle the full level just fine, but you should benchmark it regardless. You can also hide loading screens by keeping only the current and adjacent zones loaded, and loading the rest when you get close (and unloading what you get far away from). Just make sure to do it over time so the player doesn't experience inexplicable drops in FPS. I believe you can do that via time slicing, though how that could be implemented in Godot I can't say. \$\endgroup\$ Commented Jul 21, 2022 at 18:33
  • 1
    \$\begingroup\$ "However, I wonder if this is really necessary" - well, what happens when you don't unload the old zone? This seems testable. \$\endgroup\$ Commented Jul 21, 2022 at 20:15
  • \$\begingroup\$ A test can determine whether such extra complications are needed for a particular game, far more reliably than hearsay from strangers on the Internet. \$\endgroup\$ Commented Jul 22, 2022 at 21:35

2 Answers 2

2
\$\begingroup\$

It's up to you.

"Giant zone" is technically possible, Salt_and_Sanctuary is just a metroidvania game with a "giant zone":

enter image description here

But some parts of it need to be progressive loaded. In off-screen areas you wouldn't want to run monster AI, physics, particle systems, etc, it wouldn't make sense. Going a step further, maybe you also don't want to load scene textures, scene collision boxes off-screen. You can just load what you need by the player's location, and provide some redundancy. There are multiple ways to do this, and since you're aiming for a 2d orthographic game, it's a lot easier than a 3d game. You can create the loading logic yourself, or use some ready-made plugins. But that's not the point of this question, now we come back to your question again:

Wouldn't it be possible to simply have one "giant zone" that encompass the entire game?

It's technically possible, so the answer is YES. But we can find very few games that do this, the latest generation of Metroid Dread is also a series of independent rooms. Because it has more disadvantages than advantages.

Advantages:

  1. It has a better sense of immersion and exploration.
  2. Maybe more?

Disadvantages:

  1. More difficult to make. In addition to the scene streaming techniques mentioned above, you must also take into account the complexity of editing a scene on a large map. You need to consider the gradient of art styles in different regions, you need to have a feasible co-dev plan (if it is developed by one person, there is no problem), and the tool support required for editing large maps (for example, displaying all the information in the preview interface at the same time, you computer will explode), etc. During the development process, the scene of the independent room has a natural simplicity.

  2. Controllability of player movement and game values. Metroid's levels are relatively linear, and its ability-lock mechanism lets you choose among several routes. This way players don't accidentally miss certain areas, or go to advanced areas that they shouldn't be going to at the moment. Player behavior will be more unpredictable in "giant zone".

  3. Limitations of map design. The map of "giant zone" must be in the Euclidean plane, the shape of one region will be affected by adjacent regions, which will introduce some design compromises. For example, You can see in the picture above that there are a lot of slender aisles and stairs as they need to connect the various areas. This is ugly design in a sense. Players get bored when forced to pass through these aisles. Within these constraints, creating playful scenes requires a higher level of design.

\$\endgroup\$
1
  • \$\begingroup\$ @user253751 Thanks for your link. Yes, It's more difficult but not impossible. "one-zone game" needs more production rules, or more tool support to achieve stable multiple people development. Similarly, making "impossible spaces" also requires introducing additional complexity, Need to consider whether it is worth it. \$\endgroup\$ Commented Jul 23, 2022 at 7:36
1
\$\begingroup\$

It is certainly possible to fill in whole game into your minimum system requirements (whichever you choose).

From the top of my head, one of the cons of one giant zone is that is could be prone to bugs and glitches breaking too much of the game. Imagine broken physics or a no-clip issue and suddenly player could jump to ANY part of the game. With smaller zones they would be safe-guarding against that sort of issue.

Smaller zones are also easier to manage (both for you and a player), being self-contained and smaller in size. Think of them like a chapters in a book.

\$\endgroup\$
2
  • \$\begingroup\$ Smaller zones separated by loading screens can also improve gameplay by giving more of a sense of progression to the player. \$\endgroup\$ Commented Jul 21, 2022 at 18:04
  • \$\begingroup\$ Smaller zones allow for parallel development of levels... \$\endgroup\$ Commented Jul 21, 2022 at 18:54

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.