A downloadable tool

Download NowName your own price

If you've spent a long enough time in game dev, you've probably been interested in generating Perlin noise at least a few times. It's useful for quite a number of things:

  • Anything to do with procedural generation
  • Terrain generation
  • Texture generation
  • Actual clouds
  • Probably a ton of things I haven't thought of yet

Here's a nice little system I wrote for doing exactly that!

Features

  • Generate noise
  • Control the number of octaves used in generation (more iterations means the noise is smoother)
  • Control the amplitude of the noise (eg if you're generating a sprite you probably want the noise to have a range between 0 and 255)
  • Works in either native GML or via a DLL
  • Helper function to convert the raw noise data to a sprite (see screenshots)
  • Helper function to convert the raw noise data to a vertex buffer (this is probably not very useful to you)

Performance

The project comes in both native GML (cross-platform) and DLL (Windows-only) forms. The native GML implementation performs reasonably well. Here are some numbers:

  • 64x64: 40 ms
  • 256x256: 700 ms
  • 2048x2048: 48,500 ms ("reasonably" is relative)

Obviously, the YYC improves things rather dramatically.

  • 64x64: 10 ms
  • 256x256: 150 ms
  • 2048x2048: 10,000 ms (better)
  • And the DLL version, which lives in the nether realm of blazing fast C++, blows GML out of the water.

  • 64x64: 0.34 ms (lol)
  • 256x256: 5 ms (not bad)
  • 2048x2048: 310 ms (omg)
  • For small noise-related tasks the native GML version is perfectly fine, although if you're doing anything exotic you probably want to use the DLL.

    If you want to use the DLL on something that isn't Windows, let me know and I'll see if I can work something out. I might demand money.

    Documentation

    is available here.

    Price

    As usual, the asset is free as-is. I'll fix simple or game-breaking bugs but more involved support requires payment via either Itch or Patreon.  I get the final say in what constitutes "game-breaking."

    Credits

    • The demo makes use of Emu (also by me), which uses Scribble by @jujuadams
    • Macaw by Lars Meiertoberens from NounProject.com

    Download

    Download NowName your own price

    Click download now to get access to the following files:

    Macaw demo.zip 2 MB
    macaw.yymps

    Development log

    Leave a comment

    Log in with itch.io to leave a comment.