AODQ / pulchritude-engine

lingua franca game engine
MIT License
0 stars 0 forks source link

PulApp - runtime plugin selection #41

Open AODQ opened 2 years ago

AODQ commented 2 years ago

Description

Currently all plugins in the plugins/ directory are loaded. Instead there should be some PDS file that configures which plugins will be loaded, configurable either by hand or with some Pulchritude application 'PuleLaunch' / 'appname-launch'. The file might look something like

library-modules: [ "plugins": "pulchritude-plugins", "graphics": "pulchritude-gfx", ... ]
modules: [ "app-core" ]
extended-modules: [ "cool-mod" ]

The user can replace the library modules, add/remove extended-modules, etc. PuleApp at run-time launch can load these modules, notify which ones failed, and even in the case if an extended-module failed the application can continue.

One other benefit is it lets the developer provides alternative backend implementations, so the user may select which fits best. This would fit best with audio and graphics. Something like a drop-down menu to select "opengl3"/"opengl4"/"vulkan" backends.