Skip to content

Procedural 2D Clouds #1755

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Procedural 2D Clouds #1755

wants to merge 2 commits into from

Conversation

github-actions[bot]
Copy link
Contributor

Description

Procedural 2D Clouds Extension

Generate and control dynamic, procedural 2D cloud layers in your GDevelop 3D scenes.

Features:

  • Procedural Generation: Unique, non-repeating cloud patterns using advanced noise.
  • Customizable:
    • Visuals: Adjust color, transparency, density, sharpness, and edge softness.
    • Animation: Set independent horizontal and vertical movement speeds.
    • Pattern: Control unique cloud shapes with seed, tiling, and FBM (Octaves, Persistence, Lacunarity) parameters.
  • Multiple Layers: Create distinct cloud layers with unique IDs and properties.

Limitations:

  • Clouds doesn’t cast shadows.
  • Suitable for the game that camera stays at ground level.

Why I didn't use custom object and let the player set the dimension in the action

Object dimension of the custom object in Gdevelop scene doesn't matches to the runtime scene. No matter what I tried it didn't worked. There was a huge dimension difference between object dimension (threejs plane geometry) and how it was shown in the game preview.

How to use the extension

There are two actions in the extension.

Create Cloud Plane, creates a plane with all the transform, dimension and parameter values that control the FBM noise and animations.

Destroy Cloud Plane, removes the created plane when it is not needed anymore to release the resources it takes.

Checklist

  • I've followed all of the best practices.
  • I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
  • I am aware that the extension may be updated by anyone, and do not need my explicit consent to do so.

What tier of review do you aim for your extension?

Community (Unreviewed)

Example file

Procedural 2D Clouds - Github.zip

Extension file

Procedural2DClouds.zip


Extension by @Eldarduil

You can update the extension on this "Pull Request" by commenting the update command: in the comment field, type !update, then drag and drop a zip file with your extension file in the commenting field, like how you initially submitted the extension. It should look like this:

!update [MyExtension.zip](https://github.com/GDevelopApp/GDevelop-extensions/files/12709661/MyExtension.zip)

It can take a few seconds for the file to fully upload and show as the above. Once it is like shown above, click "Comment" and let the bot do the rest!

@github-actions github-actions bot added the ✨ New extension A new extension label Jul 23, 2025
@github-actions github-actions bot requested a review from a team as a code owner July 23, 2025 09:52
@github-actions github-actions bot added the ✨ New extension A new extension label Jul 23, 2025
@Eldarduil
Copy link
Contributor

!update
Procedural2DClouds.zip

Copy link
Contributor Author

Can't update the extension, as it doesn't pass automatic tests:

❌ 1 Error found in extension 'Procedural2DClouds':

  ⟶ ❌ [JavaScript disallowed properties]: Found disallowed properties in extension 'Procedural2DClouds':
{
  allowedProperties: [
    'makeUuid',
    'rgbToHex',
    'rgbOrHexToRGBColor',
    'rgbToHexNumber',
    'hexNumberToRGB',
    'hexToRGBColor',
    'rgbOrHexStringToNumber',
    'hexNumberToRGBArray',
    'copyArray',
    'staticArray',
    'staticArray2',
    'staticObject',
    'toDegrees',
    'toRad',
    'random',
    'randomFloat',
    'randomFloatInRange',
    'randomInRange',
    'randomWithStep',
    'evtTools',
    'Variable',
    'RuntimeObject',
    'Logger'
  ],
  disallowedProperty: '_Procedural2DClouds',
  objectName: 'gdjs'
}


❌ 1 Error found in extensions - please fix it before generating the registry.

@D8H
Copy link
Contributor

D8H commented Jul 26, 2025

I made a change in the bot. Please, try to update the extension again.

@Eldarduil
Copy link
Contributor

!update
Procedural2DClouds.zip

Copy link
Contributor Author

Can't update the extension, as it doesn't pass automatic tests:

❌ 1 Error found in extension 'Procedural2DClouds':

  ⟶ ❌ [JavaScript disallowed properties]: Found disallowed properties in extension 'Procedural2DClouds':
{
  allowedProperties: [
    'makeUuid',
    'rgbToHex',
    'rgbOrHexToRGBColor',
    'rgbToHexNumber',
    'hexNumberToRGB',
    'hexToRGBColor',
    'rgbOrHexStringToNumber',
    'hexNumberToRGBArray',
    'copyArray',
    'staticArray',
    'staticArray2',
    'staticObject',
    'toDegrees',
    'toRad',
    'random',
    'randomFloat',
    'randomFloatInRange',
    'randomInRange',
    'randomWithStep',
    'evtTools',
    'Variable',
    'RuntimeObject',
    'Logger'
  ],
  disallowedProperty: '_Procedural2DClouds',
  objectName: 'gdjs'
}


❌ 1 Error found in extensions - please fix it before generating the registry.

@D8H D8H force-pushed the extension/Eldarduil/1754 branch from d5d62c7 to f9fb269 Compare July 27, 2025 11:11
Copy link
Contributor Author

Errors were detected in this submission:

❌ 1 Error found in extension 'Procedural2DClouds':

  ⟶ ❌ [JavaScript disallowed properties]: JavaScript usage of the extension 'Procedural2DClouds' must be checked by the reviewer:
{
  allowedProperties: [
    'makeUuid',
    'rgbToHex',
    'rgbOrHexToRGBColor',
    'rgbToHexNumber',
    'hexNumberToRGB',
    'hexToRGBColor',
    'rgbOrHexStringToNumber',
    'hexNumberToRGBArray',
    'copyArray',
    'staticArray',
    'staticArray2',
    'staticObject',
    'toDegrees',
    'toRad',
    'random',
    'randomFloat',
    'randomFloatInRange',
    'randomInRange',
    'randomWithStep',
    'evtTools',
    'Variable',
    'RuntimeObject',
    'Logger'
  ],
  disallowedProperty: '__Procedural2DClouds',
  objectName: 'gdjs'
}


❌ 1 Error found in extensions - please fix it before generating the registry.
No fatal error found the extension can be updated but still need fixes.

@D8H
Copy link
Contributor

D8H commented Jul 27, 2025

Sorry, it needed to be rebased for the fix be used. You should now be able to update it.

@Eldarduil
Copy link
Contributor

!update
Procedural2DClouds.zip

Copy link
Contributor Author

Extension updated with errors:

❌ 1 Error found in extension 'Procedural2DClouds':

  ⟶ ❌ [JavaScript disallowed properties]: JavaScript usage of the extension 'Procedural2DClouds' must be checked by the reviewer:
{
  allowedProperties: [
    'makeUuid',
    'rgbToHex',
    'rgbOrHexToRGBColor',
    'rgbToHexNumber',
    'hexNumberToRGB',
    'hexToRGBColor',
    'rgbOrHexStringToNumber',
    'hexNumberToRGBArray',
    'copyArray',
    'staticArray',
    'staticArray2',
    'staticObject',
    'toDegrees',
    'toRad',
    'random',
    'randomFloat',
    'randomFloatInRange',
    'randomInRange',
    'randomWithStep',
    'evtTools',
    'Variable',
    'RuntimeObject',
    'Logger'
  ],
  disallowedProperty: '_Procedural2DClouds',
  objectName: 'gdjs'
}


❌ 1 Error found in extensions - please fix it before generating the registry.
No fatal error found the extension can be updated but still need fixes.

@D8H D8H added the ⌨ JavaScript Uses JavaScript code, and thereby needs a reviewer who knows JavaScript. label Aug 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⌨ JavaScript Uses JavaScript code, and thereby needs a reviewer who knows JavaScript. ✨ New extension A new extension
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants