How to produce a game build?
georgkrause opened this issue · 7 comments
Last night I tried to work on a CI Pipeline for the project to provide some linting, checking and automated builds.
But I was unable to even built the project locally. I checked the Godot docs, they stated I should use scons
to build.
I installed it and tried to run it in the project directory:
scons
scons: *** No SConstruct file found.
File "/usr/lib/python3.9/site-packages/SCons/Script/Main.py", line 940, in _main
Am I missing something?
What are you trying to build exactly? The project doesn't have to be built - gdscript is an interpreted language and can just be loaded into the engine. At this point in time the engine should be compiled as rpc support is only available in the latest version. Are you trying to compile Godot? You'll need to clone the Godot repository first, and then follow these instructions
If you want to automatically create exports of the game you can take a look at the command line options for Godot. Using those, you can export the project to platforms using shell commands.
Thanks for the pointer, I got some progress.
Still some errors to investigate:
Godot Engine v3.3.2.stable.arch_linux - https://godotengine.org
OpenGL ES 3.0 Renderer: Mesa Intel(R) HD Graphics 5500 (BDW GT2)
OpenGL ES Batching: ON
ERROR: open: File 'res://.godot/imported/DM1.glb-9d0a731111d6eea69d0dd97fe5ed5e9b.scn' can't be loaded, as it uses a format version (3) or engine version (4.0) which are not supported by your engine version (3.3).
At: core/io/resource_format_binary.cpp:879.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/BeerCan.glb-4aed8c8c9e0cbbe3eefd2e211aca428b.scn'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Accept.wav-d667a7d5c91baaa8800a1465f7e44626.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Cancel.wav-1932fd1742f03c50602ad815b48a9c2a.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Click.wav-d2798a2b96badd01652b608807841f21.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Confirm_Hit.wav-35fc73dca9828ee635e572735cbd13b5.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Confirm_Kill.wav-2502b2dde35fc6f6f876550578aaba71.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/UI_Hover.wav-2f2213d1f90bc5ec20f997a6d891f9aa.sample'.
At: core/io/resource_format_binary.cpp:1048.
ERROR: get_dependencies: Cannot open file 'res://.godot/imported/Handgun.gltf-dfc6de5a6d72ba5ef43f43a4cd2ab91e.scn'.
At: core/io/resource_format_binary.cpp:1048.
reimport: begin: (Re)Importing Assets steps: 12
reimport: step 0: Crosshair.png
reimport: step 1: Vignette.png
reimport: step 2: UI_Accept.wav
reimport: step 3: UI_Cancel.wav
reimport: step 4: UI_Click.wav
reimport: step 5: UI_Confirm_Hit.wav
reimport: step 6: UI_Confirm_Kill.wav
reimport: step 7: UI_Hover.wav
reimport: step 8: icon.png
reimport: step 9: DM1.glb
import: begin: Import Scene steps: 104
import: step 0: Importing Scene...
ERROR: instance: Cannot get class 'Node3D'.
At: core/class_db.cpp:549.
gen_lightmaps: begin: Generating Lightmaps steps: 1
gen_lightmaps: step 0: Generating for Mesh: Main -col (0/1)
gen_lightmaps: end
import: step 2: Running Custom Script...
import: step 104: Saving...
import: end
reimport: step 10: BeerCan.glb
import: begin: Import Scene steps: 104
import: step 0: Importing Scene...
ERROR: instance: Cannot get class 'Node3D'.
At: core/class_db.cpp:549.
gen_lightmaps: begin: Generating Lightmaps steps: 1
gen_lightmaps: step 0: Generating for Mesh: Can LP (0/1)
gen_lightmaps: end
import: step 2: Running Custom Script...
import: step 104: Saving...
import: end
reimport: step 11: Handgun.gltf
import: begin: Import Scene steps: 104
import: step 0: Importing Scene...
ERROR: instance: Cannot get class 'Node3D'.
At: core/class_db.cpp:549.
gen_lightmaps: begin: Generating Lightmaps steps: 2
gen_lightmaps: step 0: Generating for Mesh: Hand (0/2)
gen_lightmaps: step 1: Generating for Mesh: Static (1/2)
gen_lightmaps: end
import: step 2: Running Custom Script...
import: step 104: Saving...
import: end
ERROR: _fs_changed: Invalid export preset name: Linux/X11. Make sure `export_presets.cfg` is present in the current directory.
At: editor/editor_node.cpp:770.
reimport: end
SCRIPT ERROR: GDScript::reload: Parse Error: The identifier "Window" isn't declared in the current scope.
At: res://GraphicsMenu.gd:9.
ERROR: reload: Method failed. Returning: ERR_PARSE_ERROR
At: modules/gdscript/gdscript.cpp:583.
SCRIPT ERROR: GDScript::reload: Parse Error: Parse error: Unexpected '@'
At: res://Assets/Characters/Player.gd:3.
ERROR: reload: Method failed. Returning: ERR_PARSE_ERROR
At: modules/gdscript/gdscript.cpp:583.
Oh, living on the edge. ;)
Lemme check!
I was unable to install Godot 4 right now. Will get back to it later
Maybe we could ask the Godot community about this?
To produce a game build I think we need to build the engine and export templates. Then the engine should be able to produce game builds based on the export templates and game files.
I found some tool for this: https://github.com/abarichello/godot-ci