Plugins#

xecs aims to divide its functionality into modular components called plugins. Plugins can be used to provide features such as rendering, physics, UIs or really anything else that can be re-used across apps. In fact, every app can be converted into a plugin. Plugins can also be easily released as separate Python packages making them easy to distribute and re-use.

Creating Your First Plugin#

import xecs as xx

def my_system() -> None:
    print("Hello plugin!")

class FirstPlugin(xx.RealTimeAppPlugin):
    def build(self, app: xx.RealTimeApp) -> None:
        app.add_system(my_system)

def main() -> None:
    app = xx.RealTimeApp(num_entities=0)
    app.add_plugin(FirstPlugin())
    app.update()

if __name__ == "__main__":
    main()