Who is UIWS for?
UIWS is for anyone who like me, wants beautiful interactive water in their games (players and developers alike), duh. But I’ve taken special care to ensure a great experience for users throughout all areas of the dev pipeline. It’s also super easy to learn how to use with convenient online documentation!
UIWS is written in C++ for maximum performance, and is easy extensibility. It doesn’t rely on custom a sdk so should (theoretically) compile for any target platform - I know one user is packaging it to their switch as I write this! UIWS is also fully blueprintable – create custom water bodies for your in-game environments each with their own settings, if you want, and manually interact using straight forward blueprint nodes and events (which are all documented online!)
As designers, we just want the pretty water (well, speaking for myself at least haha). We don’t want to have to manually script interaction, or stuff around configuring settings and painting verts. UIWS is drag and drop and (optionally) fully customisable to get the right look and feel for your game.
UIWS comes with a pretty nice default shader, but I know you can do better, which is why all you need to do to add UIWS interaction to your own beautiful materials, is drop in the UIWS material function, and blend in the outputs (you guessed it, this process is all documented online too!)
Based on some of the easier questions I’ve been asked around the internet.
Q: Can I customize how the caustics look?
A: Yes! If it can be done in a shader graph, you can do it to the caustics
Q: Are caustics based directly off the ripples made on the water surface or are they projected from a generic texture?
A: Caustics are based directly off the water surface, but only because they can take the same surface height data and work with it (you could, optionally, have caustics un-linked to the tiling surface material). The player/object interaction ripple caustics are directly linked automatically regardless.
Q: For foliage interaction, is it the ripples that cause the foliage to move or the character?
A: Any ripples caused by anything will interact with foliage. Even if a player isn't there to see it happen.
Q: Is it easy to integrate into existing projects?
A: Super easy! Install the plugin, drop a water body in, tick a box on your character mesh and bob’s your uncle, interactive water.
Q: Do you handle buoyancy?
A: Currently I’m not handling buoyancy, but it’s definitely something I want to do for future releases. I’ve ensured it’s straight forward to work with the UIWS water body/volume programatically, so if buoyancy is a feature required before then, there's nothing blocking custom implementation. I’d definitely love to include it out of the box.
I hope you’ve found this blog post interesting or at least informative! If you have any other questions hit me up, I love talking about this stuff!
Till the next wall of text I feel compelled to write; may your waters be rippling, and your caustics interactive.
Water enthusiast, big graphics nerd.