GDevelop
GDevelop copied to clipboard
Upgrade to the newest bondagejs or replace bondagejs with YarnSpinner-rust
Description
The current version of bondagejs which gdevelop uses doesnt have full yarn 2 syntax compliance.
Things like inline expressions dont work, so for example you cant show variables in text
The player name is ${playerName}
Solution suggested
There is a branch of bondagejs that upgrades it to the yarn2 spec https://github.com/hylyh/bondage.js/tree/2.0
in theory all thats needed is to simply swap out bondagejs with the new one and test it in gdevelop
EDIT: another idea I have is to create a module api and a wasm target of the rust port of yarn spinner.
That would probably be even better as it will give us a much better interpreter than bondagejs, which is in a much healthier condition. I created a ticket with intent here: https://github.com/YarnSpinnerTool/YarnSpinner-Rust/issues/213
btw one added extra of this branch is that the library's deployment size has considerably been shrunk
That seems like a great idea! As usual I would say the most important is to triple check any potential breaking changes/regressions.
yes ofcourse, it may be a case that the wrapper i wrote for it might need some subtle tweaks. It will need to be tested with all the example projects and work exactly the same on them. Bondagejs itself has lots of unit tests - even more on this branch
I made a quick stab at it here, but am having some issues importing the module https://github.com/4ian/GDevelop/pull/6466
The strange thing is that it logs the module - so it must have imported it, but gdevelop complains about some end of line error. I can do direct commits to that 2.0 branch btw, so any ideas of how it could be addressed at bondagejs tracker are also welcome :)
@mnbroatch trying to ugrade gdevelop to use your upgraded version of bondage
another idea I have is to create a module api and a wasm target of the rust port of yarn spinner.
That would probably be even better as it will give us a much better interpreter than bondagejs, which is in a much healthier condition. I created a ticket with intent here: https://github.com/YarnSpinnerTool/YarnSpinner-Rust/issues/213
Chiming in to say that I'm very happy to help out if you have any questions regarding the Rust port :)