Godot Third Person Shooter with high quality assets and lighting

Third Person Shooter Demo

Third person shooter demo made using Godot Engine.

Check out this demo on the asset library: https://godotengine.org/asset-library/asset/678

Screenshot of TPS demo

Godot versions

  • The master branch is compatible with the latest stable Godot version (currently 3.4.x).

  • If you are using an older version of Godot, use the appropriate branch for your Godot version:

    • 3.3 branch for Godot 3.3.x.
    • 3.2 branch for Godot 3.2.2 or 3.2.3.
    • 3.2.1 branch for Godot 3.2.0 or 3.2.1.
    • 3.1 branch for Godot 3.1.x.

Note: The repository is big and asset importing not well optimized yet, so expect a high wait time when opening the project for the first time.

Git LFS

Git LFS is no longer required for the current master branch. You only need Git LFS if you are checking out the 3.1 or 3.2.1 branches. Those branches have instructions for Git LFS in their README files.

Running

You need Godot Engine to run this demo project. Download the latest stable version from the website, or build it from source.

You can either download from the Godot Asset Library, clone this repository, or download a ZIP archive.

Useful links

License

See LICENSE.md for details.

Owner
Godot Engine
Godot is a popular Free and Open Source game development engine and toolset.
Godot Engine
Comments
  • Improve rendering performance

    Improve rendering performance

    Don't merge before 3.4 is released, as this relies on occluder spheres and other 3.4-only features.

    • Replace GIProbe with BakedLightmap. This alone speeds up scene rendering by at least 2× (if not more). The scene is lit in a different way (brighter overall now), but this also helps make it more readable.
      • Lightmap object capture is disabled as it would have created a file that's too large to be committed on GitHub (which imposes a 20 MB per file limit).
      • HDR is disabled on the lightmap to reduce its file size below 20 MB. Clipping or banding isn't really visible since only indirect lighting is baked anyway.
      • Reflection probes are used instead to provide reflections and improve the appearance of dynamic objects.
      • Reduce SSAO intensity to compensate for the lighting being brighter on average.
    • Add fill lights to dynamic objects with a cull mask set to only impact themselves.
    • Use the cheaper Lambert diffuse mode for materials.
    • Set specular mode to Disabled on materials that don't need specular lighting.
    • Disable shadows for most lights (they made little visual difference). This divides draw calls by 3 on average.
    • Add occluder spheres. Gains are minor due to GLES3 already having a depth prepass and the level only having a few occlusion culling opportunities, but they're present in certain situations.

    The GI setting was removed as it's no longer relevant.

    Disabling shadows for non-essential lights and adding occluder spheres brings down the number of draw calls from 10k-15k to 2k-6k. (Most of the gains are from disabling shadows.)

    Performance

    CPU: Intel Core i7-6700K GPU: GeForce GTX 1080 (NVIDIA 470.74) OS: Fedora 34

    Performance measured at start area (after starting a game and waiting a few seconds):

    | Settings | Before | After | |----------|--------|-------| | High settings* | 60 FPS (16.7 mspf) | 118 FPS (8.5 mspf) | | Low settings* | 135 FPS (7.4 mspf) | 200 FPS (5 mspf) |

    High settings: 2560×1440, MSAA 4×, AO High, Glow High, GI High (if relevant) Low settings: 2560×1440, MSAA Off, AO Off, Glow Off, GI Off (if relevant)

    Note that in certain areas of the level, the performance gains are even greater. With AO disabled but Glow kept to high, it's uncommon to go below 144 FPS during gameplay now. This makes for a much better experience on a 144 Hz monitor :slightly_smiling_face:

    Preview

    Some visual cutbacks were made, but they usually aren't noticeable unless you go looking for them.

    2021-10-13_19 04 08

    2021-10-13_19 04 18

    2021-10-13_19 03 36

    Before

    2021-10-17_17 26 39

    After

    2021-10-17_17 27 28

  • project import errors

    project import errors

    OpenGL ES 3.0 Renderer: GeForce GTX 660/PCIe/SSE2
    WARNING: _createGodotPhysicsCallback: The GodotPhysics 3D physics engine is deprecated and will be removed in Godot 3.2. You should use the Bullet physics engine instead (configurable in your project settings).
       At: servers/register_server_types.cpp:84.
    ERROR: _initialize_and_check_api_hashes: Mono: Core API hash mismatch!
       At: modules/mono/mono_gd/gd_mono.cpp:334.
    ERROR: _load_data: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: scene/resources/texture.cpp:470.
    ERROR: _load: Failed loading resource: res://.import/experiment.hdr-b8c588f778b1bbe816e1780c3767a773.stex
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://menu/experiment.hdr
       At: core/io/resource_loader.cpp:192.
    ERROR: poll: res://menu/menu.tscn:4 - Parse Error: [ext_resource] referenced nonexistent resource at: res://menu/experiment.hdr
       At: scene/resources/scene_format_text.cpp:439.
    ERROR: load: Condition ' err != OK ' is true. returned: RES()
       At: core/io/resource_loader.cpp:155.
    ERROR: _load: Failed loading resource: res://menu/menu.tscn
       At: core/io/resource_loader.cpp:192.
    ERROR: start: Failed loading scene: res://menu/menu.tscn
       At: main/main.cpp:1703.
    debugger-agent: Unable to listen on 23
    ERROR: ~List: Condition ' _first != __null ' is true.
       At: ./core/self_list.h:111.
    ERROR: ~List: Condition ' _first != __null ' is true.
       At: ./core/self_list.h:111.
    WARNING: cleanup: ObjectDB Instances still exist!
       At: core/object.cpp:2081.
    ERROR: clear: Resources Still in use at Exit!
       At: core/resource.cpp:425.
    slapin@slapin-pc:~/tps-demo$ ~/godot/bin/godot.x11.opt.tools.64 -e
    OpenGL ES 3.0 Renderer: GeForce GTX 660/PCIe/SSE2
    WARNING: _createGodotPhysicsCallback: The GodotPhysics 3D physics engine is deprecated and will be removed in Godot 3.2. You should use the Bullet physics engine instead (configurable in your project settings).
       At: servers/register_server_types.cpp:84.
    ERROR: _load_data: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: scene/resources/texture.cpp:473.
    ERROR: _load: Failed loading resource: res://.import/blue_myst.png-a59eaeb96ee90691546f89f775275d4e.s3tc.stex
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/blue_myst.png
       At: core/io/resource_loader.cpp:192.
    ERROR: load_interactive: Condition ' err != OK ' is true. returned: Ref<ResourceInteractiveLoader>()
       At: core/io/resource_format_binary.cpp:997.
    ERROR: _load: Failed loading resource: res://.import/fx_bullet_explodewav.wav-2ec4dd7affd5c245450642b3c823b81f.sample
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/fx_bullet_explodewav.wav
       At: core/io/resource_loader.cpp:192.
    ERROR: _load_data: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: scene/resources/texture.cpp:473.
    ERROR: _load: Failed loading resource: res://.import/blue_myst.png-a59eaeb96ee90691546f89f775275d4e.s3tc.stex
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/blue_myst.png
       At: core/io/resource_loader.cpp:192.
    WARNING: _parse_ext_resource: Couldn't load external resource: res://player/blue_myst.png
       At: scene/resources/scene_format_text.cpp:174.
    ERROR: load_interactive: Condition ' err != OK ' is true. returned: Ref<ResourceInteractiveLoader>()
       At: core/io/resource_format_binary.cpp:997.
    ERROR: _load: Failed loading resource: res://.import/fx_bullet_explodewav.wav-2ec4dd7affd5c245450642b3c823b81f.sample
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/fx_bullet_explodewav.wav
       At: core/io/resource_loader.cpp:192.
    WARNING: _parse_ext_resource: Couldn't load external resource: res://player/fx_bullet_explodewav.wav
       At: scene/resources/scene_format_text.cpp:174.
    WARNING: _png_warn_function: iCCP: known incorrect sRGB profile
       At: drivers/png/image_loader_png.cpp:67.
    WARNING: load_image: Ignoring unsupported header information in HDR : GAMMA=1
       At: modules/hdr/image_loader_hdr.cpp:55.
    WARNING: load_image: Ignoring unsupported header information in HDR : PRIMARIES=0 0 0 0 0 0 0 0
       At: modules/hdr/image_loader_hdr.cpp:55.
    WARNING: _png_warn_function: iCCP: known incorrect sRGB profile
       At: drivers/png/image_loader_png.cpp:67.
    ERROR: _parse_material_library: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'Material.001' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _parse_material_library: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'EvilRobo' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: No loader found for resource: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png
       At: core/io/resource_loader.cpp:192.
    ERROR: _parse_material_library: Condition ' !f ' is true. returned: ERR_CANT_OPEN
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'EvilRobo' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: No loader found for resource: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png
       At: core/io/resource_loader.cpp:192.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'ShadelessBlack' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: No loader found for resource: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png
       At: core/io/resource_loader.cpp:192.
    WARNING: _png_warn_function: iCCP: known incorrect sRGB profile
       At: drivers/png/image_loader_png.cpp:67.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load_interactive: Condition ' err != OK ' is true. returned: Ref<ResourceInteractiveLoader>()
       At: core/io/resource_format_binary.cpp:997.
    ERROR: _load: Failed loading resource: res://.import/player.dae-5611407abdadd55b4ab0ac0830102352.scn
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/player.dae
       At: core/io/resource_loader.cpp:192.
    ERROR: load_interactive: Condition ' err != OK ' is true. returned: Ref<ResourceInteractiveLoader>()
       At: core/io/resource_format_binary.cpp:997.
    ERROR: _load: Failed loading resource: res://.import/player.dae-5611407abdadd55b4ab0ac0830102352.scn
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: Failed loading resource: res://player/player.dae
       At: core/io/resource_loader.cpp:192.
    WARNING: _parse_ext_resource: Couldn't load external resource: res://player/player.dae
       At: scene/resources/scene_format_text.cpp:174.
    ERROR: remove_scene: Index p_idx=1 out of size (edited_scene.size()=1)
       At: editor/editor_data.cpp:564.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    ERROR: load: Condition ' err != OK ' is true. returned: ERR_FILE_CORRUPT
       At: editor/collada/collada.cpp:2538.
    ERROR: load: Condition ' err ' is true. returned: err
       At: editor/import/editor_import_collada.cpp:1397.
    ERROR: import_scene: Condition ' err != OK ' is true. returned: __null
       At: editor/import/editor_import_collada.cpp:1916.
    ERROR: get_multiple_md5: Condition ' !f ' is true. Continuing..:
       At: core/os/file_access.cpp:582.
    ERROR: get_dependencies: Condition ' !f ' is true.
       At: core/io/resource_format_binary.cpp:1047.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    0 
    SHADER ERROR: (null): Expected 'shader_type' at the beginning of shader.
       At: :1.
    ERROR: _update_shader: Condition ' err != OK ' is true.
       At: drivers/gles3/rasterizer_storage_gles3.cpp:1913.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_Normal.png
       At: core/io/resource_loader.cpp:192.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png
       At: core/io/resource_loader.cpp:192.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_loader.cpp:192.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_loader.cpp:192.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_Normal.png
       At: core/io/resource_loader.cpp:192.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_Normal.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: No loader found for resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_loader.cpp:192.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    
  • Cannot clone the repo due to

    Cannot clone the repo due to "repository over quota" error

    I cloned the repo but it fails to checkout the lfs files. If i try a git fts fetch, this is the result:

    git lfs fetch fetch: Fetching reference refs/heads/master batch response: This repository is over its data quota. Purchase more data packs to restore access. error: failed to fetch some objects from 'https://github.com/godotengine/tps-demo.git/info/lfs'

    How can i solve this? Thaanks

  • Disappearing arms and legs when running

    Disappearing arms and legs when running

    These have been seen on a GTX 660 as well as an RX Vega M. Tested on both windows and linux, with both latest build on hugo.pro as well as beta 3: A: Missing left arm padding for player B: Missing left leg padding for enemies C: Particle effects are not visible for orb

    A + B: peek 2019-02-04 22-40

    C: peek 2019-02-04 22-41

  • Enable asynchronous shader compilation and caching

    Enable asynchronous shader compilation and caching

    ~~Do not merge until Godot 3.5.1 is released, as it includes https://github.com/godotengine/godot/pull/64096 which is required for this PR to work well.~~ Edit: 3.5.1 is now released, so this can be merged :slightly_smiling_face:

    This mitigates shader compilation stutter, especially after an initial playthrough thanks to caching.

    This requires Godot 3.5 or later to have an effect.

  • Can't run tps-demo with Godot 3.1

    Can't run tps-demo with Godot 3.1

    I have the following problem:

    $ godot --version
    3.1.1.stable.openSUSE
    
    $ godot-runner project.godot 
    OpenGL ES 3.0 Renderer: AMD CAICOS (DRM 2.50.0 / 5.1.10-1-default, LLVM 8.0.0)
    ERROR: load_interactive: Condition ' err != OK ' is true. returned: Ref<ResourceInteractiveLoader>()
       At: core/io/resource_format_binary.cpp:996.
    ERROR: _load: Method/Function Failed, returning: RES()
       At: core/io/resource_loader.cpp:285.
    ERROR: _load: Method/Function Failed, returning: RES()
       At: core/io/resource_loader.cpp:285.
    ERROR: poll: res://menu/menu.tscn:5 - Parse Error: [ext_resource] referenced nonexistent resource at: res://player/player.dae
       At: scene/resources/resource_format_text.cpp:440.
    ERROR: load: Condition ' err != OK ' is true. returned: RES()
       At: core/io/resource_loader.cpp:208.
    ERROR: _load: Method/Function Failed, returning: RES()
       At: core/io/resource_loader.cpp:285.
    ERROR: start: Condition ' !scene ' is true. returned: false
       At: main/main.cpp:1739.
    WARNING: cleanup: ObjectDB Instances still exist!
       At: core/object.cpp:2095.
    ERROR: clear: Resources Still in use at Exit!
       At: core/resource.cpp:425.
    
  • Mesh merging

    Mesh merging

    Rather than just put this on IRC, I managed to get TPS demo working the other day and did a bit of looking into why I had very low frame rates (12fps). I only have an integrated Intel GPU so not expecting too much.

    Anyway I profiled it: Screenshot from 2020-08-13 07-06-04

    I got some improvements with my octree optimization PR (up from 12fps to 17fps) https://github.com/godotengine/godot/pull/41123

    Then had a look at other things. Textures were all very large, it could do with a mechanism to shrink them for hardware that isn't good with 4096x4096 textures. I hard coded the Godot importer to max size 256 to look at this.

    I also found when deleting the .import folder and reimporting, it crashed in xatlas (with near zero area triangles). I've had problems like this with the latest xatlas. I did a little hack in xatlas to get it to import correctly.

    Next I saw the number of drawcalls and material changes was very high. So I ran it through my mesh merging addon: https://github.com/lawnjelly/godot-splerger

    Doing a split of meshes that have multiple surfaces, then merging the resulting meshes. This reduced drawcalls from over 9000 to around 900. In GLES2 frame rate went from 12fps - 50-60fps. I can't say categorically that this is like for like as I think merging the meshes may have affected the baked lightmaps. But it does suggest that (at least on GLES) merging some of the meshes can result in far better performance.

    Also worth mentioning - for something of this type for the main player, if you aren't already you might get away with just creating a navmesh and using that for physics instead of real physics. The physics was pretty dodgy and tended to get stuck easily.

    If anyone wants to try merged version, hopefully this will work: https://drive.google.com/file/d/14Fs0wjxsK_fb1GE4aZi8AFShiddafBYT/view?usp=sharing

    This is the merged level file. You will need to open level/level.tscn, delete the existing linked level (the dae file) and then add to this scene a link to the tscn you downloaded.

    It also complains it can't find some of the nodes as the names have changed when you run it, but it seemed to run mostly ok. I didn't take a lot of care over the merging this was just a test.

  • Update to 4.0

    Update to 4.0

    I've made a port of this demo to Godot 4.0. It's a bit rough around the edges, with a few inexplicable instances of extremely loud static and specularity disabling at certain angles, but it's basically functional and I don't know how to fix the current issues as of now.

    Probably would be a good idea to add a 4.0 branch for now, seeing as 3.2.3 is the current stable Godot version and it'd make sense for the master branch of this demo to correspond to the current stable version. I couldn't figure out how to do that, though, so I just set it to the master branch in this PR. Hopefully that doesn't cause problems.

  • Errors on import

    Errors on import

    Platform: Linux Arch 5.4.12 Godot version: 3.2 RC3, master e61edd69ea7a447242736e42462bcc4850339c5f

    Godot shows a popup with Load errors after importing everything, but the popup is empty.

    Screenshot_2020-01-25_09-22-13

    I did godot -e > log and these errors were still in the console:

    ERROR: shape_get_data: Condition ' !shape->is_configured() ' is true. returned: Variant()
       At: servers/physics/physics_server_sw.cpp:125.
    ERROR: shape_create: CylinderShape is not supported in GodotPhysics. Please switch to Bullet in the Project Settings.
       At: servers/physics/physics_server_sw.cpp:73.
    ERROR: get: Condition ' !p_rid.is_valid() ' is true. returned: __null
       At: ./core/rid.h:149.
    ERROR: shape_set_data: Condition ' !shape ' is true.
       At: servers/physics/physics_server_sw.cpp:103.
    ERROR: free: Invalid ID.
       At: servers/physics/physics_server_sw.cpp:1400.
    ERROR: set_data: Condition ' !d.has("cell_size") ' is true.
       At: servers/physics/shape_sw.cpp:1640.
    ERROR: get: Condition ' !p_rid.is_valid() ' is true. returned: __null
       At: ./core/rid.h:149.
    ERROR: body_attach_object_instance_id: Condition ' !body ' is true.
       At: servers/physics/physics_server_sw.cpp:671.
    ERROR: free: Invalid ID.
       At: servers/physics/physics_server_sw.cpp:1400.
    WARNING: load_image: Ignoring unsupported header information in HDR: GAMMA=1.
       At: modules/hdr/image_loader_hdr.cpp:50.
    WARNING: load_image: Ignoring unsupported header information in HDR: PRIMARIES=0 0 0 0 0 0 0 0.
       At: modules/hdr/image_loader_hdr.cpp:50.
    ERROR: _parse_material_library: Couldn't open MTL file 'ray.mtl', it may not exist or not be readable.
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'Material.001' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _parse_material_library: Couldn't open MTL file 'part_shield.mtl', it may not exist or not be readable.
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'EvilRobo' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: Resource file not found: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _parse_material_library: Couldn't open MTL file 'part_head.mtl', it may not exist or not be readable.
       At: editor/import/resource_importer_obj.cpp:48.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'EvilRobo' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: Resource file not found: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: _parse_material_library: OBJ: Ambient light for material 'ShadelessBlack' is ignored in PBR
       At: editor/import/resource_importer_obj.cpp:66.
    ERROR: _load: Resource file not found: /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://door/DoorSimple_door_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: value_track_get_update_mode: Condition ' t->type != TYPE_VALUE ' is true. returned: UPDATE_CONTINUOUS
       At: scene/resources/animation.cpp:2003.
    ERROR: value_track_set_update_mode: Condition ' t->type != TYPE_VALUE ' is true.
       At: scene/resources/animation.cpp:1992.
    ERROR: value_track_get_update_mode: Condition ' t->type != TYPE_VALUE ' is true. returned: UPDATE_CONTINUOUS
       At: scene/resources/animation.cpp:2003.
    ERROR: value_track_set_update_mode: Condition ' t->type != TYPE_VALUE ' is true.
       At: scene/resources/animation.cpp:1992.
    ERROR: _load: Resource file not found: res://Desktop/RobotMalo/EvilRoboTri_Redbase_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: value_track_get_update_mode: Condition ' t->type != TYPE_VALUE ' is true. returned: UPDATE_CONTINUOUS
       At: scene/resources/animation.cpp:2003.
    ERROR: value_track_set_update_mode: Condition ' t->type != TYPE_VALUE ' is true.
       At: scene/resources/animation.cpp:1992.
    ERROR: _load: Resource file not found: res://Desktop/RobotMalo/Textures/Pillsbury_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://Desktop/RobotMalo/Textures/Pillsbury_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: value_track_get_update_mode: Condition ' t->type != TYPE_VALUE ' is true. returned: UPDATE_CONTINUOUS
       At: scene/resources/animation.cpp:2003.
    ERROR: value_track_set_update_mode: Condition ' t->type != TYPE_VALUE ' is true.
       At: scene/resources/animation.cpp:1992.
    ERROR: _load: Resource file not found: res://Desktop/PropsNivelGodot/DoorSimple_door_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/columna1_hall_circ1125_column1_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_DefaultMetal_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Trim_MiscTrims2_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_PaintedGunMetal_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_Techpanels2_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/trim_MultiTrims1_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Trims_emissionlights_Emissive.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Set_Asphalt_DefaultMaterial_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_SimpleFloorPanel_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_AntislipMetal_Albedo.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_CarbonFiber_Albedo.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_SciFiFloorPanel_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_RivetPanels_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_Techpanels2wcolor_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://Desktop/Reactoremitterandpieces_ReactorEmitter_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://Desktop/PropsNivelGodot/DoorReactor_door_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://Desktop/PropsNivelGodot/DoorReactor_door_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://DemoLevel/Textures/Tile_MetalPillar_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _load: Resource file not found: res://Desktop/PropsNivelGodot/textures/ContainerCage_container4_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://Desktop/PropsNivelGodot/textures/reactorcorecylinder_reactor_cilinder_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: _create_material: Condition ' !collada.state.material_map.has(p_target) ' is true. returned: ERR_INVALID_PARAMETER
       At: editor/import/editor_import_collada.cpp:361.
    ERROR: get_node: Node not found: ../sfx/step.
       At: scene/main/node.cpp:1381.
    ERROR: _update_caches: AnimationTree: 'running_nogun-cycle', couldn't resolve track:  '../sfx/step'
       At: scene/animation/animation_tree.cpp:581.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_Normal.png.
       At: core/io/resource_loader.cpp:282.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_BaseColor.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_Normal.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_Normal.png
       At: core/io/resource_format_binary.cpp:360.
    ERROR: _load: Resource file not found: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png.
       At: core/io/resource_loader.cpp:282.
    WARNING: parse_variant: Couldn't load resource: res://props/proptextures/cajachica_DefaultMaterial_OcclusionRoughnessMetallic.png
       At: core/io/resource_format_binary.cpp:360.
    

    the content of the generated log file doesn't seem useful in any way. There are a number of

    Adding mesh..
    Generate..
    Final texture size: 268.000000,316.000000 - max 267.500000,315.500000
    Done
    

    and nothing else

  • Out of memory on first opening

    Out of memory on first opening

    During the first opening of the project, RAM 100% full, PC crash. After 2 reboot, all asset where imported.

    Well, I have 16go of RAM but it is not enough to importing assets :thinking:.

  • Not a bug or an enhancement, but a violation of the LICENSE

    Not a bug or an enhancement, but a violation of the LICENSE

    Hey,

    Sorry to bother you with this, but someone stole your work and started selling it on itch: https://epic-virtual-boost.itch.io/space-x-robo-game

    Bests.

  • Disable V-Sync and use optimized FPS limit

    Disable V-Sync and use optimized FPS limit

    This has some benefits over V-Sync:

    • TPS demo is prone to stuttering and unstable frametimes. Disabling V-Sync helps make those issues less noticeable.
    • Reduced input latency is useful for games with mouse aiming.

    This comes at the cost of tearing, but it's usually not too noticeable in the TPS demo. Eventually, an option to re-enable V-Sync could be added to the options menu.

    I recommend testing this PR on your own machine and see how it behaves in practice. Even on high-end GPUs, it often makes the demo feel smoother as you walk around the scene.

  • Main character disappears when global illumination is enabled

    Main character disappears when global illumination is enabled

    OS/device including version: Apple M1 Pro on the latest version of Godot, 3.5

    Issue description: The character disappears when Global Illumination is enabled.

    Screenshots of issue: image

    On

    image

    Both on High and Low option will not show the character's body. But the character shows up just if I disable global illumination, enabling or disabling other options seem to have no effect.

  • Add occlusion via rooms & portals

    Add occlusion via rooms & portals

    I noticed @Calinou had just added a version with poly occluders, and I figured that the level would run better with the central core area as an internal room.

    This is a draft test version, and it may not be worth adding portals as it is quite a major change for those not understanding it, but it is available for testing.

    • I added a RoomManager to the level.tscn, and put the Lights, Structure, Props and Core within a RoomList spatial.
    • The Room_Structure is the outer room, and the Room_Core is an internal room (using the RoomGroup to set the roomgroup priority to 1, which is higher than the 0 default outer room priority). This means that when the camera will be in the outer room unless inside the core room.
    • The bounding points for the core room is very rough, it appears that the player can only enter (due to physics) through the walkway, so that may not be a problem.
    • rooms_convert() is called in the level _ready().
    • Once portals are being used, the portal_mode of the moving MeshInstances and ParticleSystems outside the RoomList had to be changed to roaming to show up.
    • Player meshes / particles I have set to portal_mode global, as they will rarely be portal culled.
    • Additionally, the particle system for the central core sphere is changed to portal_mode dynamic (alternatively the margin can be bumped up).
    • VisibilityEnabler added to red robot, and gameplay_notifications switched on to activate it through portals.

    This leads to quite a performance increase for me, depending where you are in the level and what you are looking at. It varies from about 20% fps increase outside to as much as 100% increase when in the core area. Of course this depends what you are looking at, what your settings are (and hence your bottlenecks).

    • I left in the Occluders, but set them to invisible so they won't be active. Useful for comparison purposes.
    • I added a P key action on the keyboard for turning on and off portals at runtime, to compare fps.
    • Just saving a scene seems to add a bunch of diffs to the tscn files, but I guess that is just changing to new Godot version.
  • Red Robots miss the player at longer ranges

    Red Robots miss the player at longer ranges

    OS/device including version: Linux

    Issue description: When the red robots fire at the player, the beam is consistently off by a slight angle. At longer ranges, this is enough to miss the player completely. The beam should be right on the player, instead of slightly to the left.

    Screenshots of issue: Screenshot

  • Unable to open multiple files when getting project from Godot Asset Library, project doesn't load.

    Unable to open multiple files when getting project from Godot Asset Library, project doesn't load.

    OS/device including version: Windows 10.0.19042

    Issue description: I was importing this project into Godot when I got the following set of errors:

    --- GDScript language server started ---
     Cannot open file 'res://.import/door.dae-7f8548364364a8c72d317db0aac6a97d.scn'.
     Cannot open file 'res://.import/open_close.wav-15c93b82a463a1fe63bbc03e48e48393.sample'.
     Cannot open file 'res://.import/BlastMesh.glb-b73267f06de3a944c01538e9fdef2594.scn'.
     Cannot open file 'res://.import/charge.wav-ca59df8cae0ad5b1fea987f205ca4e33.sample'.
     Cannot open file 'res://.import/explosion.wav-8b1408a92e13f73affdc0326a2858c09.sample'.
     Cannot open file 'res://.import/hit.wav-0382ddf0ec7020fb04e2666fb8b2f72f.sample'.
     Cannot open file 'res://.import/shoot.wav-81aef4aff359235fd45078daadcb9e5e.sample'.
     Cannot open file 'res://.import/walk.wav-9036336121ed9699b9a0fe895306c86a.sample'.
     Cannot open file 'res://.import/LightRaysMesh.glb-7064e2802466cd2578058f8b016cbc85.scn'.
     Cannot open file 'res://.import/BarrelSmoke.glb-8e2d69c4951af8065240d2d52c721128.scn'.
     Cannot open file 'res://.import/red_robot.dae-1b7c21e895639cdfc51b4632e66bc08e.scn'.
     Cannot open file 'res://.import/SparkParticle.glb-e3f6706407f31f2c4028af0147be98dc.scn'.
     Cannot open file 'res://.import/part_head.glb-8de207327aec4b1572370054a7354cf7.scn'.
     Cannot open file 'res://.import/part_shield.glb-d6c233d3d85ae961b022dca28194d5a7.scn'.
     Cannot open file 'res://.import/ray.glb-8e1d5bd28d6e0c01a107a5b661f05121.scn'.
     Cannot open file 'res://.import/flying_forklift.glb-5fc3f6403d54a193b6e3b14c2633d073.scn'.
     Cannot open file 'res://.import/core.glb-6d1fe901749789ad3144bf80da386b2d.scn'.
     Cannot open file 'res://.import/lights.glb-e682766b019cdb9ecca59a07b4749bef.scn'.
     Cannot open file 'res://.import/props.glb-ef7d7320b04a8755385d61edb896d714.scn'.
     Cannot open file 'res://.import/structure.glb-21fe3543c920768091702bd640720751.scn'.
     Cannot open file 'res://.import/level_music.ogg-4afd12677c88b2d2a03f7bd78697bf1a.oggstr'.
     Cannot open file 'res://.import/menu_intro_music.ogg-790ed16894e4b5a52d74fb71b5f5de88.oggstr'.
     Cannot open file 'res://.import/jump.wav-2603877681c9e067c3a9a93e9a4fc8fc.sample'.
     Cannot open file 'res://.import/land.wav-30873fe661744bdc60c0d00d7401aab3.sample'.
     Cannot open file 'res://.import/shoot.wav-8244db64ae3703b75575788340a3a2e5.sample'.
     Cannot open file 'res://.import/step.wav-d0eb4ea2bd4432739110520bfa71a096.sample'.
     Cannot open file 'res://.import/bullet_explode.wav-cb1cff5a50e4c409ec7fc505de7bc81f.sample'.
     Cannot open file 'res://.import/muzzle_flash_particle_mesh.glb-a66d023aa0694204914831451c14f128.scn'.
     Cannot open file 'res://.import/player.glb-4fab3988dc7fd5b74f5ba5057da16803.scn'.
     modules/hdr/image_loader_hdr.cpp:50 - Ignoring unsupported header information in HDR: GAMMA=1.
     modules/hdr/image_loader_hdr.cpp:50 - Ignoring unsupported header information in HDR: PRIMARIES=0 0 0 0 0 0 0 0.
     servers/visual_server.cpp:341 - Octahedral compression cannot be used to compress a zero-length vector, please use normalized normal values or disable octahedral compression
     Resource file not found: res://door/model/doorsimple_d.png.
     Resource file not found: res://enemies/red_robot/model/EvilRobo-BaseColor.png.
    Switch Scene Tab```
    
MadeiraMadeira boilerplate project to build scalable, testable and high performance Go microservices.

MadeiraMadeira boilerplate project to build scalable, testable and high performance Go microservices.

Sep 21, 2022
High Performance Remote Object Service Engine
High Performance Remote Object Service Engine

=============== Hprose is a High Performance Remote Object Service Engine. It is a modern, lightweight, cross-language, cross-platform, object-oriente

Nov 3, 2022
Nano - Lightweight, facility, high performance golang based game server framework
Nano - Lightweight, facility, high performance golang based game server framework

Nano Nano is an easy to use, fast, lightweight game server networking library fo

Jan 1, 2023
A microservice gateway developed based on golang.With a variety of plug-ins which can be expanded by itself, plug and play. what's more,it can quickly help enterprises manage API services and improve the stability and security of API services.
A microservice gateway developed based on golang.With a variety of plug-ins which can be expanded by itself, plug and play. what's more,it can quickly help enterprises manage API services and improve the stability and security of API services.

Goku API gateway is a microservice gateway developed based on golang. It can achieve the purposes of high-performance HTTP API forwarding, multi tenant management, API access control, etc. it has a powerful custom plug-in system, which can be expanded by itself, and can quickly help enterprises manage API services and improve the stability and security of API services.

Dec 29, 2022
Microservice Boilerplate for Golang with gRPC and RESTful API. Multiple database and client supported
Microservice Boilerplate for Golang with gRPC and RESTful API. Multiple database and client supported

Go Microservice Starter A boilerplate for flexible Go microservice. Table of contents Features Installation Todo List Folder Structures Features: Mult

Jul 28, 2022
Fast, intuitive, and powerful configuration-driven engine for faster and easier REST development
Fast, intuitive, and powerful configuration-driven engine for faster and easier REST development

aicra is a lightweight and idiomatic configuration-driven engine for building REST services. It's especially good at helping you write large APIs that remain maintainable as your project grows.

Oct 19, 2022
An example microservice demo using kubernetes concepts like deployment, services, persistent volume and claims, secrets and helm chart

Docker vs Kubernetes Docker Kubernetes container tech, isolated env for apps infra management, multiple containers automated builds and deploy apps -

Dec 13, 2021
Rpcx-framework - An RPC microservices framework based on rpcx, simple and easy to use, ultra fast and efficient, powerful, service discovery, service governance, service layering, version control, routing label registration.

RPCX Framework An RPC microservices framework based on rpcx. Features: simple and easy to use, ultra fast and efficient, powerful, service discovery,

Jan 5, 2022
GSOC-Mentorship - Scripts and Templates used to parse jsons and send mails to students of GSOC Mentorship

GSOC Mentorship The Club of Programmers, IIT(BHU) organizes it's flagship GSoC M

Sep 18, 2022
Connect, secure, control, and observe services.

Istio An open platform to connect, manage, and secure microservices. For in-depth information about how to use Istio, visit istio.io To ask questions

Jan 9, 2023
Design-based APIs and microservices in Go
Design-based APIs and microservices in Go

Goa is a framework for building micro-services and APIs in Go using a unique design-first approach. Overview Goa takes a different approach to buildin

Jan 5, 2023
Netflix's Hystrix latency and fault tolerance library, for Go

hystrix-go Hystrix is a great project from Netflix. Hystrix is a latency and fault tolerance library designed to isolate points of access to remote sy

Dec 28, 2022
Cloud-native and easy-to-use application management platform | 云原生且易用的应用管理平台
Cloud-native and easy-to-use application management platform | 云原生且易用的应用管理平台

Website • Documentation What is NEW! August 24, 2020 ,Rainbond 5.2 Stable version is officially released View Release Rainbond Introduction Cloud nati

Dec 29, 2022
Generates Golang client and server based on OpenAPI2 (swagger) definitions
Generates Golang client and server based on OpenAPI2 (swagger) definitions

ExperienceOne Golang APIKit ExperienceOne Golang APIKit Overview Requirements Installation Usage Generate standard project structure Define the API wi

Aug 9, 2022
Template repository for a Go monorepo, complete with CI and automatic docker builds

Utility Warehouse template Go monorepo This repo is an abbreviated copy of one used by one of the teams inside Utility Warehouse. It's been built for

Dec 19, 2022
Concourse is a container-based continuous thing-doer written in Go and Elm.
Concourse is a container-based continuous thing-doer written in Go and Elm.

Concourse: the continuous thing-doer. Concourse is an automation system written in Go. It is most commonly used for CI/CD, and is built to scale to an

Dec 30, 2022
Sample cloud-native application with 10 microservices showcasing Kubernetes, Istio, gRPC and OpenCensus.
Sample cloud-native application with 10 microservices showcasing Kubernetes, Istio, gRPC and OpenCensus.

Online Boutique is a cloud-native microservices demo application. Online Boutique consists of a 10-tier microservices application. The application is

Dec 31, 2022
Automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio.
Automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio.

Mesh RPC MeshRPC provides automatic Service Mesh and RPC generation for Go micro services, it's a humble alternative to gRPC with Istio. In a nutshell

Aug 22, 2022
Go microservice tutorial project using Domain Driven Design and Hexagonal Architecture!

"ToDo API" Microservice Example Introduction Welcome! ?? This is an educational repository that includes a microservice written in Go. It is used as t

Jan 4, 2023