Why Extension Plugins Are Not Standalone

From Yanfly.moe Wiki
Revision as of 13:59, 30 September 2021 by Yanfly (talk | contribs)
Jump to navigation Jump to search

Welcome to the wiki! This is where you can find resources from Yanfly.moe, Ækashics.moe,
VisuStella, Caz Wolf, Fallen Angel Olivia, Atelier Irina, and other affiliated content creators.


Introduction

The following is a suggestion that the VisuStella team has acquired through the Suggestion Box.

VisuMZ Suggestion Standalone.jpg

I figured we should talk about it. Not the berate the suggestion maker, but to answer some commonly asked questions for educational purposes and to explain why we do things the way we do. Namely, why we create cores, why we create extension plugins, and why those extension plugins aren't standalone plugins. We'll answer some other questions, too.

Yanfly.png This is an article written by Yanfly.


First Things First

A slight bit unrelated to the topic at hand and more towards the suggestion, we want to clarify that the Battle Core does not change the game drastically. The majority of the changes invoked by the Battle Core are mechanically driven and not visible in a default scale. The only things that are visible however, are HP Gauges, Automatic Action Sequences, and the Extra Options with the Party Command Window. Each of these features can be disabled within the Battle Core's Plugin Parameters. Take a little bit of time to search them and you'll find them easily.

We're just getting this out of the way in case anyone who sees this article becomes suddenly afraid to use Battle Core without understanding the purpose of the plugin and what it actually does.


Why We Create Cores

ExtStandalone Core.jpg

This section will answer two things: Why we create cores and why we created them the way we did for VisuStella MZ.

The Purpose of Cores

The VisuStella MZ Cores, despite what some people think, are actually conglomerations of mostly basic features. They're huge bundles of basic features that are otherwise unnoticeable to the passerby. However, they're important in the sense that they need to be rooted deep within game project's code, the core. The reason behind this is because that while they're basic features, rooting them deep into the core of projects allows the basic features to extend outward and affect more aspects of the game project, the plugins that may come after the cores, and the plugins dependent on the cores.

This is not to say that all features provided by the cores are basic. Some things like Action Sequences for the Battle Core are incredibly advanced features that can be optionally utilized. However, their integration in the cores are necessary for the accessibility and functionality towards the game development process in which plugins can alter the game state in a stable way.

If we are to compare this to real world objects, the cores would be the motherboards to a computer. They are the engines to a car. Or they can be the power plants of a city. Each of the listed objects are deep rooted for their functionality in order for the supplemental parts to be efficiently utilized. The same goes for core plugins and extension plugins.

The code provided by these core plugins make it possible for extension plugins to work with the game project in question with maximum efficiency and minimal conflicts.