Action Game Maker のリリースを心から楽しみにしています。私はゲーム制作に Godot を使用しており、Action Game Maker が Godot ベースであると知ったとき、非常に興味を持ちました。デモを試してみましたが、その結果には非常に満足しています。
一つ問題があります。現在、GDExtensions は Action Game Maker では動作していないようです。
core\extension\gdextension.cpp:970 - GDExtension only compatible with Godot version 4.1.0 or later: res://spine_godot_extension.gdextension
Failed loading resource: res://spine_godot_extension.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:970 - GDExtension only compatible with Godot version 4.2.0 or later: res://addons/effekseer/effekseer.gdextension
将来、Action Game Maker が GDExtensions をサポートするかどうかお伺いしたいです。多くの強力なプラグインがあり、それらが Action Game Maker に役立つと考えているためです。
gen\include\godot_cpp\classes\open_menu.hpp(55): error C2653: 'actg': is not a class or namespace name
gen\include\godot_cpp\classes\open_menu.hpp(55): error C2061: syntax error: identifier 'MenuSceneDirectionType'
gen\include\godot_cpp\classes\open_menu.hpp(56): error C2653: 'actg': is not a class or namespace name
gen\include\godot_cpp\classes\open_menu.hpp(56): error C3646: 'get_direction_type': unknown override specifier
gen\include\godot_cpp\classes\open_menu.hpp(56): error C2059: syntax error: '('
gen\include\godot_cpp\classes\open_menu.hpp(56): error C2238: unexpected token(s) preceding ';'
gen\src\classes\open_menu.cpp(66): error C2653: 'actg': is not a class or namespace name
gen\src\classes\open_menu.cpp(66): error C2065: 'MenuSceneDirectionType': undeclared identifier
gen\src\classes\open_menu.cpp(66): error C2146: syntax error: missing ')' before identifier 'direction_type'
gen\src\classes\open_menu.cpp(66): error C2143: syntax error: missing ';' before '{'
gen\src\classes\open_menu.cpp(66): error C2447: '{': missing function header (old-style formal list?)
gen\src\classes\open_menu.cpp(72): error C2653: 'actg': is not a class or namespace name
gen\src\classes\open_menu.cpp(72): error C2039: 'get_direction_type': is not a member of 'godot::OpenMenu'
gen\include\godot_cpp\classes\open_menu.hpp(46): note: see declaration of 'godot::OpenMenu'
gen\src\classes\open_menu.cpp(72): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
gen\src\classes\open_menu.cpp(72): error C2146: syntax error: missing ';' before identifier 'get_direction_type'
gen\src\classes\open_menu.cpp(72): error C2143: syntax error: missing ';' before '{'
gen\src\classes\open_menu.cpp(72): error C2447: '{': missing function header (old-style formal list?)
In file included from godot-cpp\gen\src\classes\add_scene_effect.cpp:33:
godot-cpp\gen\include/godot_cpp/classes/add_scene_effect.hpp:54:30: error: 'actg' has not been declared
54 | void set_effect_type(actg::FilterType p_effect_type);
| ^~~~
godot-cpp\gen\include/godot_cpp/classes/add_scene_effect.hpp:54:47: error: expected ',' or '...' before 'p_effect_type'
54 | void set_effect_type(actg::FilterType p_effect_type);
| ^~~~~~~~~~~~~
godot-cpp\gen\include/godot_cpp/classes/add_scene_effect.hpp:55:9: error: 'actg' does not name a type
55 | actg::FilterType get_effect_type() const;
| ^~~~
godot-cpp\gen\src\classes\add_scene_effect.cpp:43:6: error: variable or field 'set_effect_type' declared void
43 | void AddSceneEffect::set_effect_type(actg::FilterType p_effect_type) {
| ^~~~~~~~~~~~~~
godot-cpp\gen\src\classes\add_scene_effect.cpp:43:38: error: 'actg' has not been declared
43 | void AddSceneEffect::set_effect_type(actg::FilterType p_effect_type) {
| ^~~~
godot-cpp\gen\src\classes\add_scene_effect.cpp:51:1: error: 'actg' does not name a type
51 | actg::FilterType AddSceneEffect::get_effect_type() const {
| ^~~~
Resolved issues caused by version restrictions in third-party tools.
This was not fixed in 1.0.6. The compatibility check remains.
core\extension\gdextension.cpp:972 - GDExtension only compatible with Godot version 4.2.0 or later: res://addons/godot-git-plugin/git_plugin.gdextension
Even with changing or removing compatibility_miniumum the .gdextension plugin definition file.
compatibility_minimum = "1.0.6"
godot-cpp\src\godot.cpp:283 - Cannot load a GDExtension built for Godot 4.2.0 using an older version of Godot (1.0.6)
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/godot-git-plugin/git_plugin.gdextension
I didn’t mention it because it would be mixing in another set of MIT credits but a different Fork did solve this…
Summary
The Blazium Fork did create a way to address this. It adds a whole extra “external” version configurations to the Version.py and version_generated.gen.h generation. The external version is what gets referenced in the Console and various gui places (like bottom right). While the actual Godot engine version is used to check compatibility.
Unfortunately, it does not seem to work for me either.
res://addons/effekseer/src/EffekseerEffectImportPlugin.gd:53 - Parse Error: Identifier "EffekseerEffect" not declared in the current scope.
modules\gdscript\gdscript.cpp:2936 - Failed to load script "res://addons/effekseer/src/EffekseerEffectImportPlugin.gd" with error "Parse error". (User)
res://addons/effekseer/plugin.gd:26 - Invalid call. Nonexistent function 'new' in base 'GDScript'.
res://addons/pixelpart/src/PixelpartEffectResourceImportPlugin.gd:49 - Parse Error: Identifier "PixelpartEffectResource" not declared in the current scope.
modules\gdscript\gdscript.cpp:2936 - Failed to load script "res://addons/pixelpart/src/PixelpartEffectResourceImportPlugin.gd" with error "Parse error". (User)
res://addons/pixelpart/plugin.gd:12 - Invalid call. Nonexistent function 'new' in base 'GDScript'.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/effekseer/effekseer.gdextension
Failed loading resource: res://addons/effekseer/effekseer.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:972 - GDExtension only compatible with Godot version 4.1.0 or later: res://addons/pixelpart/pixelpart-plugin.gdextension
Failed loading resource: res://addons/pixelpart/pixelpart-plugin.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/spine-godot-extension/spine_godot_extension.gdextension
Failed loading resource: res://addons/spine-godot-extension/spine_godot_extension.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/effekseer/effekseer.gdextension
Failed loading resource: res://addons/effekseer/effekseer.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:972 - GDExtension only compatible with Godot version 4.1.0 or later: res://addons/pixelpart/pixelpart-plugin.gdextension
Failed loading resource: res://addons/pixelpart/pixelpart-plugin.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/spine-godot-extension/spine_godot_extension.gdextension
Failed loading resource: res://addons/spine-godot-extension/spine_godot_extension.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/effekseer/effekseer.gdextension
Failed loading resource: res://addons/effekseer/effekseer.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:972 - GDExtension only compatible with Godot version 4.1.0 or later: res://addons/pixelpart/pixelpart-plugin.gdextension
Failed loading resource: res://addons/pixelpart/pixelpart-plugin.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
core\extension\gdextension.cpp:951 - GDExtension configuration file must contain a "configuration/compatibility_minimum" key: res://addons/spine-godot-extension/spine_godot_extension.gdextension
Failed loading resource: res://addons/spine-godot-extension/spine_godot_extension.gdextension. Make sure resources have been imported by opening the project in the editor at least once.
I will say that the errors do seem to be different from before. I peeked in the GDExtension.cpp file and it had 20 instances of compatibility_minimum and 10 instances of compatibility_maximum so it may need to be changed in multiple places. They all seem to be between lines 929-988, so it’s at least condensed in that section.
I also tried a source recompile using the dumped jsons and header and still had issues.
After 1.0.7, AGM reverted to Godot’s versioning mode and also maintained a separate version number. Let’s see if things have progressed. @shadoWarbird@Brasten
Unless you’re accessing AGM features from the GDExtension I don’t think they’ll need to be recompiled. Orchestrator will need to be. The 4.3 target version makes AGM to refuse to load. But since it’s trying to read Classes and Methods to make Visual Scripting nodes, I’m not surprised.