Part-Based Rain System

(This project is based on @buildthomas ’ rain module, which is amazing by the way, I’ll be linking it to this post)

Thanks to some recent updates to the Raycasting API I have managed to create a prototype part-based rain system that realistically simulates collisions by raytracing each individual raindrop while still being fairly stable.

While it is not nearly as customizable and versatile as It’s inspiration, I am fairly satisfied with the result, which means, it will move onto the next step and be posted here. If you have any thoughts or ideas on how I could improve this, I would be grateful if you could share them.

(This was made on an alternate account, hence why my avatar is different, if need be I can provide solid proof that I own said account)

(Outdoors)

(Going Indoors)

Do note that I am on max graphics in both of these clips and the framerate is pretty stable (Choppiness is mostly from Gyazo). I do not expect it to be this smooth on mobile devices which is why I have made the casting rate scale with the player’s graphic level.

at the moment, the game is published on my alternate account, I’ll link it below if you want to check it out for yourself.

I’m open to any feedback on this as long as it isn’t insulting it just for the sake of being mean.

game: Part-Based rain test V0.3 - Roblox

Inspiration(Which is definitively a million times better than what I did in terms of literally everything but physics): Rain Module + Plugin

v0.3

4 Likes

It is cool, but in my experience, this is better done using particle effects. Creating new instances of parts can create performance issues especially if this is done on the server side.

If you still would like to use parts, I would recommend spawning parts on the client side to reduce server lag and also only within proximity of the player.

3 Likes

Very nice. I quite enjoy the nature of the rain (quick, long droplets). The muffling effect is also quite good, but I’d like to see it only trigger when the player is in a fully enclosed space rather than simply under a roof.

I personally don’t like particle rains since there’s a hard limit to the authenticity you can achieve with a 2D image (it’s obvious in most cases that it lacks perspective, which cheapens the feel). In my opinion, you’re better off rendering the parts on the client than making visual compromises.

1 Like

If you haven’t noticed yet, the whole thing runs on client and is a relatively small part that tracks the camera, if it wasn’t on client I wouldn’t be able to scale droplet count with the graphics level.

Also, The whole point of this project was to get a rain effect working without relying on the usual particle-based method

Noted, thanks for your thoughts, I’ll try to have that work along with some greater customization in v0.3

“v0.3 changes:
Added a “Rain Settings” gui with some customization features
Randomized direction
A little particle effect(does not seem to work at the moment)
M o r e d r o p l e t s.”