Skip to content
kobewi edited this page Jul 2, 2024 · 19 revisions

wiki

The purpose of this wiki is to provide comprehensive guide on how to use Metroidvania System addon for Godot Engine. For more information about the addon itself, see the README.

Getting Started

MetSys is an addon and you install it normally - by copying the addons/MetroidvaniaSystem folder from this repository to the addons/ directory in your project (create it if it doesn't exists). Once you copy the folder, go to Project -> Project Settings -> Plugins and tick the checkbox next to MetSys. Note that when the plugin is enabled for the first time, the editor will restart to properly setup the singleton. Once the plugin is activated, you will see MetSys button at the top of the Godot editor, next to 2D/3D views.

Terminology

This section explains the terminology used on this wiki and in the addon itself.

  • Cell: The smallest unit of the game's world, represented by a square or rectangle on the game's map.
  • Map: All of the placed cells, composing the game's world.
  • Coords: Position of a Cell on the map, expressed as Vector3i(x, y, layer). In some cases the layer is omitted.
  • Border: Edge of a cell. There are 2 types of borders:
    • Wall: Solid border with no holes.
    • Passage: A border with hole or another feature that signifies passage (e.g. a door).
  • Corner: Connecting point of 2 or more non-parallel borders.
  • Room: A group of multiple cells enclosed by borders on their outline. In game they are tied to a scene.
  • Mapped Cell: An unvisited cell. Usually discovered via a mapping item and appears grayed-out.
  • Explored Cell: A cell visited by the player and appears normally.
  • Discovered Cell: A cell either mapped or explored.

Guides

Editor Guide

The plugin screen is called Metroidvania System Database and it has 3 tabs: Map Editor, Map Viewer and Manage.

Map Editor is where you design your world map. Map Viewer provides overview of your map, integration with Godot editor's scenes and collectible statistics. Manage is where you manage themes and run validation. Interacting with the map editor requires no code (aside from one feature).

Runtime Guide

This section provides information about usage of MetSys features at runtime, i.e. in your game itself. It covers various map features and some runtime-specific systems.

System Template

System template, located in the Template folder, is a collection of prebuilt scripts and scenes that you can reuse in your project. The scripts have documentation available. Using them is optional, but they make MetSys integration easier.

Extensions

Extensions, located in the Extensions folder, are special sub-systems that modify MetSys in irreversible way. These features can't be optional. To use them, you need to copy the contents of an extension folder to the root Metroidvania System directory and replace all files. E.g. if you download MetSys .zip file from GitHub and unpack it to MetSys directory (so that project.godot is in that directory), the files from an exension should be unpacked in the MetSys folder. There is currently only 1 extension.

Map Theme

Map Theme defines the appearance of your map. The theme is a custom resource class and it can be changed in the database settings.

Sample Project

This section describes the features of the included sample project and where to find them. You can find more details in the code comments. The sample project itself is located in SampleProject folder of the MetSys repository (not the addon folder).

The project is a little metroidvania game. The target is to collect 6 orbs and reach the ending point. The world is composed of 3 layers and in different rooms it shows various system's capabilities.

DISCLAIMER: The sample project is not by any means a legit game. It's full of hacks and questionable solutions. The point is to show an example integration with the MetSys, not how to make a good project. As a Godot contributor would say - TIWAGOS.