GameMaker (all)

Water Physics - GMS 2 and 1


You must be logged in to obtain assets


Click here to download a demo

Click here to download a simplified demo

Forum thread

This asset provides you with realistic water physics and water visualization for your 2D game. It includes a guide, a well-commented example, and documentation for each script making it easy to implement it into your game. The physics and visualization are done with shaders, making the water simulation very fast. You can have more than a million blocks of water simulated simultaneously with great frame rates. The asset is highly customizable, letting you tweak the water extensively. Development and testing has only been done with the windows VM target and the windows YYC target, you might run into problems if you use this asset with other targets.

The asset is compatible with GM Studio 2 and GM Studio 1.

Note that the asset is a custom physics engine; it's not built upon the integrated GameMaker physics, so the two systems won't interact out of the box.


  • Water currents (water can push objects around).
  • Water pressure (water can be pushed up through e.g. pipes).
  • Highly customizable reflections (reflections are optional in case you prefer no reflections).
  • Light source reflection (letting e.g. the sun and moon have longer reflections in water).
  • Textured water.
  • Adjustable colors (for water bodies, water surfaces, and falling water).
  • Refraction (making the water's background look distorted through the water).
  • Reflection displacement (different types of distortions to apply to reflections).
  • Customizable waves.
  • Waterfalls.
  • Four gravity directions.
  • Choose between two shader languages (if you're using GM Studio 1), HLSL 9 and GLSL ES. GM Studio 2 has GLSL ES only.
  • Reading/writing of volume and velocity, allowing e.g. a player to swim and splash the water around.
  • Reading of pressure (e.g. to damage a player if he has dived too deep without diving equipment).
  • Synchronization system between GPU memory and RAM.
  • Saving/loading of water from files.
  • A guide for implementation.
  • Commented and organized code.
  • Fast and optimized, made with efficiency in mind.
  • Supports logic and display separation.
  • Irrespective of room speed, dependent on delta_time (and easily convertable to other game loops if need be).
  • All in GML and GLSL ES, and HLSL 9 if you're using GM Studio 1.

Note: You might run into some shader errors after importing the asset in GM Studio 1 due to a GameMaker marketplace import bug, but this can easily be solved by following the instructions in the "before you start" section of the "guide" script provided with the asset.

Remember to read the asset's EULA:

End User Licence Agreement (EULA).

Age Rating: 4+


GMS2 - Version 1.0.5. Published August 18, 2017

Fixed a bug where tex_filter wasn't set to true at the beginning of the simulation script.

GMS1 - Version 1.0.6. Published October 20, 2017

Some improvements to how the asset handles the volatility of surfaces.

GMS2.3 - Version 1.1.0. Published October 23, 2020

GM v2.3

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait