TC93DEV
Posts
-
-
Solved this one after enough coffee and cigarettes. It ended up being daft. The offending function:
func buffer_from_2d_array(array_2d: Array ) -> PackedByteArray: var img_buffer: PackedByteArray = [] img_buffer.resize(width * height) var idx: int = 0 for x in range(width): for y in range(height): img_buffer[idx] = array_2d[x][y] * 255 # *255 to make the values sensible for the image idx += 1 return img_buffer
Which now, correctly, does not iterate for size of the image in either axis but the actual count of elements that the byte array building the image depends upon:
func buffer_from_2d_array(array_2d: Array, size: Vector2i) -> PackedByteArray: var img_buffer: PackedByteArray = [] img_buffer.resize(size.x * size.y) var idx: int = 0 for cell in array_2d: for value in cell: img_buffer[idx] = value * 255 # *255 to make the values sensible for the image idx += 1 return img_buffer
@TC93DEV said in 4.1.1 stable: noise generation; rectangular dimension issues:
I am pretty sure I'm screwing up in either accessing the 2D array or populating the PackedByteArray for the Image.create_from_data() function.
/aggressivenodding
-
@Семён-Дружинин said in Problem when exporting a c# project:
Forgive me, I am very bad at English and the translator does not work very well with such texts.
It's all good. I will try to be more concise instead of rambling!
Hopefully we have found the issue, or at least we have found two issues.
This issue is related to rcedit.
modules/mono/glue/runtime_interop.cpp:1324 - Failed to export project: Failed to build project. Could not create child process: rcedit D:/Godot/Proxima-B2/Build/Proxima-B.exe --set-icon C:/Users/Семён/AppData/Local/Godot/_rcedit.ico --set-version-string CompanyName beta-for-leath0r --set-version-string ProductName beta-for-leath0r --set-version-string FileDescription beta-for-leath0r --set-version-string LegalCopyright beta-for-leath0r --set-version-string LegalTrademarks beta-for-leath0r editor/export/editor_export_platform.h:175 - Изменение ресурсов: Не удалось запустить исполняемый файл rcedit. Настройте путь rcedit в настройках редактора (Экспорт > Windows > rcedit) или отключите "Приложение > Изменить ресурсы" в пресете экспорта. Could not create child process: rcedit D:/Godot/Proxima-B2/Build/Proxima-B.console.exe --set-icon C:/Users/Семён/AppData/Local/Godot/_rcedit.ico --set-version-string CompanyName beta-for-leath0r --set-version-string ProductName beta-for-leath0r --set-version-string FileDescription beta-for-leath0r --set-version-string LegalCopyright beta-for-leath0r --set-version-string LegalTrademarks beta-for-leath0r editor/export/editor_export_platform.h:175 - Изменение ресурсов: Не удалось запустить исполняемый файл rcedit. Настройте путь rcedit в настройках редактора (Экспорт > Windows > rcedit) или отключите "Приложение > Изменить ресурсы" в пресете экспорта.
Godot is missing rcedit. To set custom icons among other things in the build process you need rcedit installed.
docs.godotengine.org/en/stable/tutorials/export/changing_application_icon_for_windows.html
github.com/electron/rcedit/releases
Point to the rcedit.exe at Editor Settings -> General -> Export -> Windows -> rcedit.
The second, different issue:
There is a resource in the project using a Cubemap Array which is not supported in Compatibility mode; this will need to be removed or you'll need to use Forward+ rendering.
Internal rendering architecture
This page is a high-level overview of Godot 4's internal renderer design. It does not apply to previous Godot versions. The goal of this page is to document design decisions taken to best suit Godo...
Godot Engine documentation (docs.godotengine.org)
Starting with these two things will get you on the right track mate. Rcedit is the easier of the two to fix so perhaps start with that.
Good luck, let me know how you go!
-
Sorry it didn't help mate.
Just found an interesting and possibly related bug that has been raised for 4.1.1 and a cursory look might imply some connection between .net/godot localisation and building.
Unable to Build Project with c# solution (Godot 4.1.1) · Issue #81790 · godotengine/godot
Godot version 4.1.1 Stable System information Windows 10 - Gotot 4.1.1 Stable Issue description Run Game failed if i have c# solution in project with these errors editor/editor_node.cpp:6468 - An EditorPlugin build callback failed. Trans...
GitHub (github.com)
Some env vars might not be getting set properly when launching Godot from the exe, but if they call it from a terminal it has the right sauce. Couple more things based off reading that issue:
Launch the godot editor from command line. Open up a terminal, cd to the godot directory, run it from shell. This might well fix the problem entirely.
If that doesn't work, check the dotnet -> build area of the Godot editor. Make sure console output is on and try increasing the verbosity to get some output.
If that doesn't work, you might be able to get an actual useable error report by, again in the windows cmd/pwsh, go to the project directory and run:
dotnet build
This isn't expected to succeed but might give us some sensible output.
If those things fail I'm afraid I might be out of ideas. It would be worth adding any details you can provide to the issue I linked, or (hopefully) details of any solution/fix you find!
-
It'd be worth checking that the dotnet SDK is correct. In your windows cmd/pwsh:
dotnet --info
6.0+ is required for 4.1.1.
If there isn't an obvious issue with the SDK another thing worth checking would be that the .csproj
and .sln resources are present at the root of the project.After that I'm not truly sure what the correct next step to be, though I know what I would do. I would backup/clone my project safely elsewhere and then I would delete the .godot/mono folder in the project working directory with the editor closed and none of the resources opened in other applications. This folder will be regenerated when you open and run the project next.
This last thing is actually recommended in the docs, and has fixed a few .net/mono things for me in the past when things get... stuck?
"https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_basics.html"
-
@MSI-Emperium It might help if you can explicitly describe the error you're getting, as in, copy and paste it here, or perhaps a screenshot.
@MSI-Emperium said in Missing Signal Connection Warning:
I do my training through Godot docs.
If you mean https://docs.godotengine.org/en/stable/index.html, it contains documentation for every version of the engine so we don't really know whether you're using the current version or not. What version pops up when you go to Help -> About Godot from the editor?
-
@arcaneenergy Looks neat as. It reminds me of MarioMaker levels in the best possible way; I could imagine an in-game repository for sharing and playing levels created by others being super popular.
-
This site looks excellent; keen to see it grow and I look forward to being a regular participant.
A minor feature in the scheme of things but one that I think has the potential to bolster engagement: a recent posts bumps/activity feed at the https://godot.community/ landing page.
This functionality is already provided by the https://godot.community/recent area, but I think it could be better utilised as a condensed scroll box style or fixed length (most recent X posts?) widget that is front and center to the user.
This would not replace the categorised view of the forum at the landing page but could supplement it as an adjacent widget, either above or beside it, and would be global as opposed to displaying only the most recent thread in each category as provided currently.
Lowering the barrier to entry on any given thread might encourage folks to engage in categories they otherwise might not if something in the feed takes their fancy.
Whether this feature is accepted or not, excellent job @sepTN (and anyone else involved), look forward to seeing where ya take the place.
-
Hey all,
Thanks for taking a look!
In summary: I'm trying to roughly reproduce and eventually extend some functionality that Godot already provides via the noise library found below, but from within a Godot editor plugin and using GDscript.Godot's Noise class that I'm using for design reference:
https://github.com/godotengine/godot/blob/f2ba8ec6ca2e4ff493cba11f95621d10ab8bb363/modules/noise/noise.cppHere's a cleaned up and stripped down reproduction of my project with the issue and tool setup as I'm using it:
https://github.com/TC93DEV/noisytool_brokenIf you import the repo as a Godot project you'll see in the main editor window a new tab called "NoisyTool". This window is provided by the noisy_scene.tscn and all the logic is contained in the script noisy_cfg.gd attached to the CFG node in the scene. If the "NoisyTool" tab doesn't show maybe just check that the plugin is enabled in Project Settings -> Plugin, though, I've exported it enabled in the project so I expect it will be.
It works and as far as I can tell it works well when the given dimensions for width and height are equal - when I'm producing a square image.
Problems arise if I double the width and try to produce a rectangular noise map. The produced image is instead a stitched together copy of the one image occupying double the space. If you quadruple width verse height, you get four images stitched together, and so and so forth. Instead I'm trying to replicate contiguous noise values produced by the noise.cpp::get_image method; one big contiguous chunk regardless of the height/width.
I am pretty sure I'm screwing up in either accessing the 2D array or populating the PackedByteArray for the Image.create_from_data() function.
I'm confident that the issue does not lie in any part of the rendering process be that viewport/scene setup or shader - you can save a png of the image produced by the Image.create() function before we ever make it to the viewport, texture conversion or shader and the duplication is already present. Substituting an image using the noise.cpp::get_image function on the very same FastNoiseLite object and handing it to the same shader gives the expected good result with no duplication using rectangular dimensions.
I'm not going for a line for line conversion of the Godot Noise class to GDscript and I know there are handy functions in Noise class to abstract away this stuff but I'm interested to learn, and so that I can extend parts of the generation process from the comfort of the Godot editor and GDscript, maybe build a fancy compute shader pipeline later and so on.
I've tried a fair bit of troubleshooting; different ways of populating and accessing the 2D noise values like a flattened 2D->1D array using row first indexing (x + y * y), an actual 2D array, a single index value incrementing and so on. Printing the raw values checking for duplication - I can't see any. All manner of inspection of the raw values when crossing the middle boundary of the w*d for any irregularity and I'm just not spotting what I've cooked.
Any advice anyone might have would be greatly appreciated.
Learning problem for beginner
4.1.1 stable: noise generation; rectangular dimension issues
Problem when exporting a c# project
Problem when exporting a c# project
Problem when exporting a c# project
Missing Signal Connection Warning
Introducing Sandbox Elements! A sandbox game where you can play with elements.
Feature Request: Recent Active Threads Widget
4.1.1 stable: noise generation; rectangular dimension issues