Clarify the purpose of the Plugin directory, and tidy its contents #2637
Labels
context: project
related to the project and its organization
type: question
open discussion
what: engine plugin
Milestone
Frankly speaking, the Plugin dir is a mess, and it's been like that for a while.
Some plugins there have MSVC project and/or makefiles, some don't. In some cases the MSVC project or makefile is outdated.
The problem is that the purpose of the directory is not well defined. Originally these plugins were written by JJS in sake of non-Windows ports. Apparently some platforms, such as PSP (now discontinued), was meant to have them as separate dlls, at least in the first iteration; that's why there are makefiles and some extra psp files in them
Today they are mostly used as built-in with the engine in case particular build flag is set.
On another hand, there are situations when I had to build these plugins as standalone dlls:
When on Windows, it's easier to build selected plugin standalone, because windows engine does not have them built-in by default, and then it's just easier to try different plugin variants by switching them without rebuilding whole engine, for instance.
Not having an organized structure or up-to-date msvc solution complicates things in these circumstances.
I think it should be clearly defined, are these plugin files only for embedding in the engine, or also to build standalone plugins.
If they are strictly for embedding, then there should not be any msvc projects or makefiles for building them alone; have strictly files that contain plugin functions.
If they are for both purposes, then there should be an up-to-date msvc and makefile to let them be built standalone.
If, for instance, it seems convenient to only have embedded plugins in the "ags" repo, but still there's a reason to have some or all of them for standalone building, then we might have a separate repository for these.
Additionally, since these built-in plugins are meant primarily for running older games, then is it okay to remove them completely in ags4 branch?
The text was updated successfully, but these errors were encountered: