Sandastray Procedural Dunes Sandbox Game

Hey Panda3D enthusiasts, we’ve just completed our first Panda3D game jam of 2022 and we’re excited to share the results.

Behold Sandastray, a game about windsurfing on procedural quicksand dunes and collecting resources in the desert. The goal of this game is to surf and glide around to find hovering coins which mark resource collection areas for your dune-crawling city ship.

Project repository: entikan/Sandastray: Panda3D Game Jam 2022! - Sandastray -

itch io page: Sandastray by Simulan, entikan

We built this procedurally generated sandbox game with physics based windsurfing and gliding in just two weeks! This was enabled by the awesomeness of Panda3D and the not insufficient code-slinging capacity of our dev team.

Credit goes to:

@janEntikan (procedural dunes, 3D modeling, graphics, animation, sound effects, concepting)
@Simulan (physics, gameplay, concepting)
@Maxwell175 (particle effects)
Tael (music)
Schwarzbaer (panda3d-keybindings, concepting)
Nica (concepting)

Feel free to download, play, complete, and study Sandastray!

We encourage users to submit Issues on the repo page in lieu of posting gameplay complaints here. There are a few bugs and some built-in-two-weeks rough edges; we may push fixes time permitting.

As it stands, the game is a fully playable prototype of the somewhat ambitious concept we set out to achieve. Many thanks to all those involved.

Requirements: panda3d, panda3d-keybindings


Well done and congratulations to the members of the team on this! It looks pretty neat–and I’m impressed by those procedural dunes! :slight_smile:

Indeed, if I may ask, what were the principles behind the dunes? (I’m not asking a full tutorial, mind–just the generalities.)

I hope that you’ll forgive me, but I don’t want to sign up for another website just to report what is likely a minor issue. So, let me put it here: On attempting to run the program (via “python3”) I’m getting the following error:

Traceback (most recent call last):
  File "", line 7, in <module>
    from keybindings.device_listener import add_device_listener
ModuleNotFoundError: No module named 'keybindings'

[edit] I see now that I can apparently sign in with GitHub, but I’m inclined to leave this here for now, if I may.

I’ll defer to @janEntikan for a technical description of the dune creation process, but as I understand it, they are made from Perlin noise heightfields which become ShaderTerrainMesh.

panda3d-keybindings can be found here: GitHub - TheCheapestPixels/panda3d-keybindings: Abstract keybindings for Panda3D – it provides input context handling for some of the game.

Thanks for your kind words. :slight_smile:

1 Like

Ah, that got it working–thank you! :slight_smile:

Ahh, fair enough! Thank you for the explanation. :slight_smile:

1 Like

Random generation of dunes is disabled in the release. If someone is interested in randomly creating dunes. add fix file: replace line:


by this:

make_perlin_dunes(seed = random.randint(0, 128000))

good work, but the camera is horrible though
Would it be possible to improve it (maybe by zoom to the hero) ? Or to add a first person camera view?

Yeah, the camera rig was never my favorite aspect of the game either. I’ll see about putting an update together sometime soon for the repository. I discovered a significant performance improvement in the meantime as well that I’d like to upload, related to physics.

Hey Panda3D enthusiasts, here’s a major update to the Sandastray game:

  • An entire Sandastray music album now loops for your enjoyment. 5 original tracks by Tael.

  • Implemented threaded physics for a major performance boost. This should also smooth out the intermittent startup performance.

  • Added a Sandastray application icon.

  • Added a to the source code so you can build this game into an executable yourself, and study how this is performed for a Panda3D game with assets and external dependencies.

  • Slightly deferred addition to to pick up the .wav files. I’ve updated the executables on itch as well for that.

Feel free to check it out at itch: Sandastray by Simulan, entikan

Or browse the source here: entikan/Sandastray: Panda3D Game Jam 2022! - Sandastray -