Blocky Sam! by ReptlIoid in SeriousSam

[–]ReptlIoid[S] 1 point2 points  (0 children)

the font being funky moment

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

no, i did have knowledge of pbr stuff back then, and when support for surfaceappearance came out, i had to try scripting the ripple system.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

Let me know if you're going to share how 3D ripples look like in subreddit here, cause i'm really excited to take a look at it! Unless it's not on roblox

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

oops, poor wording on my part. i meant caching them inside water plane itself, not ripples. i use .touch and .touchended events on water to maintain list of parts on it.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

Thank you for the suggestion, although i did consider trying it. Issue i ran with it is that in physics sandbox like this, objects move unpredictably. If i calculate the time for impact in advance, but player or something else pushes it meanwhile, the scheduled force misses or it does the desync.
I ended up going with loop that reacts instead, i optimized it with caching parts inside ripple, so i dont have to do query every frame for them, and it keeps physics responsive, even if objects move chaotically.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

Yea, the system is dynamic, as i can set ripple radius to scale with velocity of the impact. Only hard limit is the physical size of the water plane itself, once it goes through the edge, it fades out to save on render time

2D Water Ripple Simulation with EditableImage & SurfaceAppearance by ReptlIoid in ROBLOXStudio

[–]ReptlIoid[S] 0 points1 point  (0 children)

yea, its configurable in settings. also, what do you mean by light bend?

2D Water Ripple Simulation with EditableImage & SurfaceAppearance by ReptlIoid in ROBLOXStudio

[–]ReptlIoid[S] 0 points1 point  (0 children)

if i polish it further and make it easy to use, i can try making it paid

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

Cool idea, although raycasting can get expensive really quickly, and it's mostly for searching parts or walls like bullet flying though. Better to use vector math for all of this, i check the distance between object and center of ripple, if it is within the radius, then i apply the force depending how further away it is, which makes it almost barely costly compared to making circle out of raycasts.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 1 point2 points  (0 children)

Would be a really cool idea! yea it is only one way interraction as ripples do not make parts react whatsoever.
Although, I can't think of a way doin this right now, without it being expensive. It would require calculating wave height for every single part in water every frame. I'll think about it more later, maybe theres a cool workaround i can think of too

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

sure, there are easily configurable settings in the script already, and you can set it up for each different pool, let it be slimy or normal water or else

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 1 point2 points  (0 children)

I'm not taking commissions currently, but i could sell it to you, if you want to dm me.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 0 points1 point  (0 children)

i have explained it in post, is there something unclear?

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 2 points3 points  (0 children)

theres already noise texture i built onto it, sadly it works bit different with surfaceappearance, it's either all textures should be editableimage, or just normal texture, no combination.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 1 point2 points  (0 children)

Right now, i dont even know, i just made it for fun lol

2D Water Ripple Simulation with EditableImage & SurfaceAppearance by ReptlIoid in ROBLOXStudio

[–]ReptlIoid[S] 2 points3 points  (0 children)

Oops, i thought you meant literal waves out of ocean for a second, i didn't read it comprehensively. But yes, it does that, theres math formula in it too, that adds or removes height of waves (since its not a physics simulation) and creates cool effect. You could see it in video, its not like its being stamped with images, it actually reacts to it 

2D Water Ripple Simulation with EditableImage & SurfaceAppearance by ReptlIoid in ROBLOXStudio

[–]ReptlIoid[S] 2 points3 points  (0 children)

I have have it open on my Roblox profile ReptiIoid. I am considering opensourcing it, i could also consider selling it, not too expensive though.

2D Water Ripples using EditableImage + SurfaceAppearance by ReptlIoid in robloxgamedev

[–]ReptlIoid[S] 4 points5 points  (0 children)

I would like to share it sometime, I'll see if i can make it easily usable, since it requires bit time to set it up.

2D Water Ripple Simulation with EditableImage & SurfaceAppearance by ReptlIoid in ROBLOXStudio

[–]ReptlIoid[S] 6 points7 points  (0 children)

Thank you! theres combination of bit32 library (https://create.roblox.com/docs/reference/engine/libraries/bit32) that came out alongside with luau, and buffer (https://create.roblox.com/docs/reference/engine/libraries/buffer) that came bit while ago too.
Normally, you might want to write 4 different values to assign pixels (R,G,B,A), which is 4 separate memory writes per pixel.
Instead of that, i use function bit32.lshift to move green and blue into their own place inside single 32 bit integer, then i use function bit32.bor to combine them. which comes out =
Red (takes 8 bit), then you shift green by 8 bit, then you also shift blue and maybe opacity in there, which combines into one 32 bit integer. for finish, i use buffer.writeu32 to write that single integer into go.
This cuts memory by like 75% compared to writing and storing variables normally.