unfa/liblast

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.
unfa commented

Oh, living on the edge. ;)

Lemme check!

I was unable to install Godot 4 right now. Will get back to it later

unfa commented

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