Skip to content

How does py4godot work?

Niklas Zimmer edited this page Nov 13, 2024 · 20 revisions

Motivation

The goal of this page is to clarify how py4godot works, making it easier for others to understand, fork, or contribute to the project. A common challenge I see with many open-source projects is that their complexity can make it hard for newcomers to get involved—I often feel the same way. Recognizing this, I decided to take on the challenge of documenting py4godot more clearly for anyone who may want to contribute.

Over the next few months, I plan to add detailed notes that explain the design and structure of py4godot. Please keep in mind that my code is a work in progress. It’s not polished, and you might encounter some messy C++ and Python code along the way. If that doesn’t appeal to you, feel free to skip this page—but if you're curious, I hope this documentation provides a helpful starting point.

Note: This is a work in progress. Hopefully, over the next few months, you'll see more content published here.

gdextension

You need a json file to get all the classes and their methods, Godot exposes. You can dump it like that: godot --dump-extension-api. We also need a header file which exposes the gdextension functionality. So we can run godot --dump-gdextension-interface to obtain it. The resulting header file exposes methods, we can later use for our bindings to godot

Clone this wiki locally