← Home

LibGodot

24 February, 2026 - Tags: TIL, game dev, Godot

最近 Godot release 了 4.6 版,因為看到 DC 有發布 release note 所以我就翻看看有沒有什麼有趣的更新。其中我特別感興趣的是 LibGodot,根據 PR 的內容,它允許我們把透過 godot 建構的遊戲編譯成一個 library,所以我們就可以把它嵌入到別的 app 當中,透過 C 程式碼去控制這個 godot 遊戲的 lifecycle。它的 API 長得類似這樣: [1]

int main(int argc, char **argv) {
    LibGodot libgodot;

    // ...

    godot::GodotInstance *instance = libgodot.create_godot_instance(argvs.size(), argvs.data());
    if (instance == nullptr) {
        fprintf(stderr, "Error creating Godot instance\n");
        return EXIT_FAILURE;
    }

    instance->start();
    while (!instance->iteration()) {}
    libgodot.destroy_godot_instance(instance);

    return EXIT_SUCCESS;
}

不過目前這個機制還只有著重在管理 godot 遊戲的 lifecycle,它還是使用獨立的視窗,沒有辦法自由的把遊戲畫面嵌入到某個 host application 擁有的 texture 中,我覺得多少限制了他的用途,根據作者開的原始 PR,這應該會是 future work,目前只有在 iOS 可以做到。

  1. migeran/libgodot ↩