aboutsummaryrefslogtreecommitdiff
path: root/doc/PLUGINS.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/PLUGINS.md')
-rw-r--r--doc/PLUGINS.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/PLUGINS.md b/doc/PLUGINS.md
new file mode 100644
index 0000000..d0e0070
--- /dev/null
+++ b/doc/PLUGINS.md
@@ -0,0 +1,11 @@
+# Plugins
+
+You can easily create plugins for the game by putting a new folder into plugins/ with the name of your plugin and then compiling your code into a shared library placed inside this folder named "<plugin name>.so" (`-shared -fpic`).
+You might want to include the game.h file from plugins/game/game.h. Have a look into it to see available API. See the existing plugins for examples.
+
+## Dependencies
+
+If you want to make a plugin that needs to use ABI from another plugin (including the game itself), make sure to depend on that plugin. To add dependencies to a plugin, create a file named dependencies.txt in the plugin folder. Put the names of all plugins your plugin depends on into that file. You can use spaces or newlines as seperators.
+
+## Makefile inclusion
+All Makefiles that are placed in plugin directories are included by the main Makefile, so you might want to include a makefile in your plugin. The plugins target simply depends on ${PLUGINS}, so just add things to this in your plugin Makefile to add them to the plugins target (usually your plugin.so)