Falling Sand Game Template - Pixel Simulation

Links: Manual | Support Forum


A falling sand simulation template. It allows you to simulate thousands of pixels at once by using DOTS.


🟪 Pixel Simulation

Each pixel can be simulated and has individual properties. There are predefined materials like 🟥 Lava, 🟧 Oil, 🟨 Sand, 🟦 Water, ⬛ Rock, 🟫 Wood, 🟩 Acid, ... .


💫 Smooth Sub-Pixel Camera Movement

No jumpy camera. Your camera will move smoothly even if the movement is on a sub-pixel level.


DOTS for speed

Being multi-threaded by default makes things super fast.


The only downside is that if you want to extend it you will have to be familiar with the Jobs system and BURST.


😺 Easy image based level generation

Draw your levels into a png and then configure them with scriptable objects in the Editor.


🌈 Mix pixel and no-pixel content

The pixel world is rendered onto a simple quad in your scene so you can easily mix it with your scene objects and apply any post-processing.


Pixel based collider generation

Have your character walk on the sand with ease.


📚 Demo level included

Check out Kamgam/SandGame/Addressables/Level1.


✔️ Full Source Code

I publish this asset with full source code because as a developer I know how annoying it is to not have source code access. If you like it then please remind others to purchase the plugin. Don't just copy and paste it everywhere. Thank you ❤️


✔️ Supports Unity 2021.3+, 2022, 2023, Unity 6, ... LTS

It may work with earlier versions too but those are not tested anymore.


😎 Works on any platform

Yes, it works on mobile and WebGL too though you will need a relatively modern phone (runs with 30 fps on 5 year old devices, 60 fps on current mid-level phones).


✔️ Works with any render pipeline

Built-In, URP and HDRP


Try before you buy!

PC Demo: https://kamgam.com/unity/SandGameDemos/PcDemo.html

Android Demo: https://kamgam.com/unity/SandGameDemos/AndroidDemo.html



👇 Things you should know 👇 (Read this before you buy)

There is an intro section in the manual. Please read it first. Actually, it's probably best to read the whole manual first. You will have a much easier time adapting the template if you do.


⚠️ Please notice that this is NOT a fully featured game like Noita. It’s a template (basis) for you to build your game upon. There is still lots of stuff you will have to implement yourself (rigibodies, particles, lighting, world streaming, savegame).


⚠️ Required Packages (all freely available):

Please install these before importing the package.

* Addressables (an official Unity package)

* BURST (an official Unity package)

* Collections (official Unity package for BURST)


⚠️ The code in the template uses JOBS and the BURST compiler. If you want to extend the code then you will have to be familiar with these concepts. Programming for a multi-threaded environment is NOT beginner friendly. If you do not yet have a firm understanding of Jobs and BURST then the code will be very hard for you to extend.


Unity did a lot of the hard work with the Jobs system and I tried to make it as easy as possible to extend. However, if you are a beginner you will most likely struggle. That does not mean you can't use it. It only means you will have a hard time adding complex features as these will most likely require some custom coding in the multi-threaded environment. Ya have been warned ;-)


⚠️ Physics (2D Rigidbodies) are NOT included. If the asset gets popular and demand is high enough then I might add it.


⚠️ The default simulation resolution is 320x180. You can change the resolution. How high you can go depends on your target hardware. However, be cautios when increasing the resolution. You may find it hard to design levels if you have to place millions of pixels.


The pixel simulation resolution does not constrain your overall game resolution. All your UI, effects, animations etc. will still run on the default resolution.




✍️ Usage

1) Please go read the manual first. This is a complex system and you will struggle if you do not understand the setup.

2) Open the Demo level under Kamgam/SandGame/Addressables/Level1

3) Hit Play

4) Enjoy


😎 HINT 1:

Think hard about what resolution your pixel world should have. Hint: Games like NOITA have about 300 x 150 pixels and they do a lot with these.


🧐 HINT 2:

Not everything should to be in the pixel world. You can still use the Unity scene objects. Just because your graphics have a pixel aesthetic does not mean they all have to be simulated in the pixel world.


🤠 HINT 3:

Go wild!!!




☎️ Support


If you have any questions please write to office[at]kamgam.com. Please be patient, replies may take a few days. Please include your Asset Store Order Nr and the exact Unity version in your request. Please also try upgrading to the most recent LTS version before asking. Thank you.




❤️ If you like this asset then maybe you'll like these too:


🚴‍ 2.5D Bike Racing Game

A complete racing game template.


Settings UI Generator

One Settings UI + API for all render pipelines.


Mesh Extractor

Separate your assets into useful parts within seconds.


🚧 Exclude from build

Exclude any files and directories from build.