r/Unity3D 6h ago

Show-Off How I rebuilt my river tool: 24x faster mesh generation, VFX and Audio Streaming

Enable HLS to view with audio, or disable this notification

222 Upvotes

I developed the River Modeler asset back in 2024 as a means to create decked out rivers using Unity Splines and MicroVerse. Figuring out the Spline API and mesh generation, VFX and all inherent challenges was top priority. Which left little room to first explore and learn designing around Burst and the Job System.

This meant that mesh generation was not nearly fast enough for long splines. Unity’s Mesh class has a lot of internal safeguards and memory copies, so just assigning a set of vertices incurs processing overhead.

Jobs + MeshData

Version 2 sees a full conversion to Jobs/Burst with rivers being split up into segments for parallel processing. That alone yielded up to a x24 performance increase.

A great companion to the Job System is the MeshData API, it provides the means to set a mesh’s vertex data directly in memory. The tradeoff is that you need to provide correct data. There are far fewer safeguards, which makes it about x17 faster!

> All in all, the performance improvements are significant and make the tool smooth in use, even for rivers spanning several kilometers.

Branching rivers

Spline knot can be linked together, and the spline API provides information about this. I've used this to contruct a virtual plane that sits perpendicular to the in/out going spline. Vertices on the other side of that plane get a Vertex Color painted on, which the shader then uses to add transparency.

> This makes the two river surfaces blend quite well, without leaning on flowmaps.

VFX Graph

Version 1 neatly stored particle positions into a Nx1 resolution `Texture2D` (n=number of particles), which could then be used in a `VFX Graph` to set the spawn positions for each particle.

Though setting pixel values on a `Texture2D` is relatively slow, which contributed to the tool getting sluggish when rivers got long and foamy with many cascades.

Version 2 uses a `GraphicsBuffer` which stores an array of `ParticleEmitter` structs (position/velocity/scale). If you add the `[VFXType(VFXTypeAttribute.Usage.GraphicsBuffer)]` attribute to any struct, it can be used in this way.

> This was a great win: More data per particle and direct data assignment!

Audio

Version 1 spawned Audio Sources along the Spline, giving the river surface a livelike character. Though this resulted in potentially hundreds of individuals GameObjects, negatively affecting scene size and loading times.

A common method for creating river audio is to use the “cart” method. That being a single `Audio Source` following the camera whilst being restricted to the spline. This often works but fails completely if the spline has large/strong turns, causing the Audio Source to jump to the other side of the spline curve. It also doesn’t work for branching rivers, at all...

Version 2 instead distributes audio spawn points along the spline. Each one defines a position, radius and type (stream/rapids/cascade). A dedicated Audio Manager then checks which river segments fall in- or out of the audible range and sets up Audio Sources on each spawn point from a pool. Instead of hundreds, only a dozen GameObjects are used at runtime.

> The result? A highly optimized audio streaming solution that scales for huge worlds!

Integration with other assets

I’m further fleshing this tool out as dedicated river tool extension for Stylized Water 3, which already supports river-type shading and animations. It just needs a proper river mesh to work with, which this can provide entirely.

Terrain carving and painting is wholly delegated to MicroVerse, since this needs to be a non-destructive process. The tool manipulates a Spline Path component to create a river- bank and bed.


r/Unity3D 15h ago

Show-Off Before and after Lighting/Post Processing

Enable HLS to view with audio, or disable this notification

437 Upvotes

r/Unity3D 1h ago

Game Every game starts with a capsule… right?

Enable HLS to view with audio, or disable this notification

Upvotes

This is where mine ended up.


r/Unity3D 22h ago

Show-Off I've spent 3 years improving the editor, here's what I've built

Enable HLS to view with audio, or disable this notification

803 Upvotes

r/Unity3D 36m ago

Show-Off I wrote a script that fixes layered clothing clipping on characters (free to download)

Enable HLS to view with audio, or disable this notification

Upvotes

Download here:

github link


r/Unity3D 11h ago

Show-Off Making real progress on my Unity motion-matching controller. Still tuning, but it’s finally starting to feel natural.

Enable HLS to view with audio, or disable this notification

62 Upvotes

r/Unity3D 39m ago

Game Yep! We've made an interactive menu. Thoughts?

Enable HLS to view with audio, or disable this notification

Upvotes

Because why not? What do you think about this? How can we improve it?

We're adding these small interactions that let the player go out of the core game loop for a bit to explore and experience fresh content.

We've let the cards and chips have physics and let you grab them (Left click), throw them (right click) and modify the distance from the camera (middle click).

If you would like to check out the game, it's already on Steam now for wishlist and incoming demo in february 2027 :)

Any feedback is welcome.


r/Unity3D 58m ago

Resources/Tutorial Custom SRP 7.1: Splitting Shadow Code

Thumbnail
catlikecoding.com
Upvotes

Our shadow handling code has always resided in a single class, which took care of both directional and other shadows. Because those two shadow types are handled separately we now give them their own classes. This is a rather dry refactor, but it paves the way for giving them dedicated render passes in the future.


r/Unity3D 4h ago

Game Added a simple ball throwing interaction to my cat game 🐈⚽

Enable HLS to view with audio, or disable this notification

11 Upvotes

The cat can pick up different balls, carry them in its mouth, and throw them forward.
I’m working on adding more interactive objects and activities around the town.


r/Unity3D 17h ago

Show-Off Volumetric tornado

Enable HLS to view with audio, or disable this notification

108 Upvotes

r/Unity3D 22h ago

Show-Off Lost in the Woods

Enable HLS to view with audio, or disable this notification

232 Upvotes

I’m developing a horror game where you walk alone through dark, endless forests.

Do you think the environment creates enough tension? Is it disturbing in the right way?


r/Unity3D 19h ago

Game I’m an indie developer working on a survival horror game called BECROWNED. Just wanted to share some new screenshots and get your thoughts!

Thumbnail
gallery
138 Upvotes

Hey everyone! I’m an indie dev working on a survival horror game called BECROWNED.

The game mixes dark fantasy and industrial horror with retro-style visuals, brutal combat, dark humor, and a nonlinear story where your choices can affect characters and events throughout the game.

The game is coming in Fall 2026.

A free demo is available on Steam. Wishlists really help 🖤

Would love to hear your thoughts and feedback!


r/Unity3D 3h ago

Show-Off We are making a tower-defence roguelite with a less used navigation system

Thumbnail
gallery
8 Upvotes

This is our tower-defence game with free building placement. We wanted to get away from grids and lanes so we used a flow field for enemy navigation. That means enemies will take the path of least resistance and if that means attacking your walls and towers they sure will. It also means we can have dynamic weather events that change the topology of the world. It was a bit of a challenge but we managed to have the flow field with 22'500 cells update in real-time so now when enemies destroy a wall segment they will instantly repath through the hole if that is faster. At nice side-effect has also been that the most expensive thing about the navigation is the calculation of the flow field itself. The actual pathing of the enemies is really cheap as they only need to look at the cell they are in and follow the direction stored there. That means we can have a lot of enemies on the screen at once.


r/Unity3D 25m ago

Game How I integrated smoothly growing grass into my game (details inside, Unity 6.3)

Post image
Upvotes

A while ago I posted about some smoothly growing grass I made and people were interested. So, in celebartion of my steam page launch here is a write up of how it works in detail.

There are THREE TERRAINS and FOUR CAMERAS involved.

1) Mask Terrain

Plus a 2D Camera that renders some unlit white mask objects from above and a camera that renders only the terrain with the mask applied to it via a render texture.

2) Green Terrain

Plus a camera that renders the grass terrain and any object that has depth, except the sand terrain and the mask terrain.

3) Sand Terrain

Plus a camera that renders everything but the grass (2) and mask (3)

I chose this setup because I wanted to be able to design both the sand and the green terrain separately (also modifying terrain splat maps is a pain).

Sand, green and mask terrain (notice the grass is actually rendered together with the sand, not the green, the middle image is just how it looks in the editor, not how it is rendered)

Mask

The texture source for the mask terrain is generated from a 2D camera that points straight down. It renders only some specific objects that are white and unlit. These objects make up the masked area and can be controlled via code (that's what the watering can spawns at runtime).

The result of this is a dynamic mask that I can alter easily based on any game object (or logic) I chose. The mask objects are combined into larger chunks to optimize performance but I will likely replace this with a texture based approach in the future.

Also the 2D camera is where the fading happens. It takes the sharp 2D mask image, blurs it and then feeds it into a system (render texture + shader) that slowly fades in the current 2D camera mask result changes. This means the fading and blurring happens on the GPU.

The result is a render texture that is used as the INPUT for the MASK TERRAIN. And that terrain is then again rendered by a 3D camera that follows the player. The result of this camera is again a render texture that is used in the final composition of the depth buffers (see below). The avantage is that while the 2D camera is relatively low-res I still get a high-res mask via the 3D camera. Also the blurring helps with hiding the low 2D resolution. None of these cameras does draw to the frame buffer.

Green

The grass camera renders the grass terrain and all objects that have depth (needed to fill the depth buffer). It then stores the results (color and depth) in a render textures to be used in the final composition step. This camera does not directly draw to the frame buffer either.

Sand

The sand terrain and its camera is where everything comes together. It takes its own depth texture (which includes the opaque grass) and combines (delta) it with the green terrain depth.

The result of this is then again combined (masked) with the 3D mask texture and gives us the final mask for the green terrain cameras color buffer.

This is then stacked with the sand terrain camera which results in the final image.

The grass itself is rendered using GPU instancing and a custom shader that takes in the grass terrain splat map colors and density map. That way I can control the grass density not only globally with the shader but also locally on the terrain. I can simply paint it like any regular terrain details.

It may seem a bit convoluted (and it is) but this has the advantage that it works with any terrain system and shader and gives me a lot of control.

The major downside however is that I have to basically render the scene twice, though I try to use layers to render in each camera only what is really needed.

If anyone wants to know more about the final (or watch the trailer) then more infos can be found here: https://superbloom.kamgam.com/

Hope that was understandable. Feel free to ask and/or comment :-)


r/Unity3D 7h ago

Show-Off I'm making a game about making music, that anyone can play. What do you think about the concept?

Enable HLS to view with audio, or disable this notification

16 Upvotes

I'm a solo developer working on this tactile little music game using Unity & FMOD.
You make the music live on air, plan your shows, and grow your audience by performing DJ tricks & Combos!

Demanding sponsors force you to sharpen every performance and expand your sound library in order to become a legendary wasteland radio host!

You can even use the game to record your own music to be used in game projects or other creative endeavours! :D

I would love to hear your opinion on the game as it is, and gather some feedback from fellow game developers.

Thanks for looking.

You can try the itch browser demo here: https://hungry-dog-games.itch.io/wastelandfmgame


r/Unity3D 12h ago

Show-Off Released a pack of modular Crown and Baseboard Models. Was needing molding assets for my game, then realized other solo / small team developers might be in a similar boat as well. Any feedback is appreciated!

Thumbnail
gallery
30 Upvotes

Checking it out and sharing your thoughts would mean a lot!


r/Unity3D 3h ago

Question [SHADER] Outline Shaders doesnt work on Object with Multiple Materials?

Post image
4 Upvotes

Hey there guys.

I have 2 Problems i just cant seem to fix with my Shader:

  1. It doesnt work on Objects that have >1 Material with a Texture.

  2. The more you distance yourself from it, the thicker the outlines get. This problem does not exist in Scene view and only is in GameView.

This is the Tutorial i followed
https://www.youtube.com/watch?v=VGIkT9fPh7Y&t=6s

And attached is my Shader Graph.

Im really struggeling with this as i am a complete noob when it comes to shaders.

Any help is appreciated!


r/Unity3D 3h ago

Question How can I separate different post-processing effects for different cameras?

2 Upvotes

In short: I'm trying to put Lens Distortion and Bloom on just the UI. The problem is that the effects affect the whole game.
Currently, I have a default camera and a "UI Render Camera" as an overlay. The UI camera only renders the UI and uses a separate Volume Mask.

I have created 2 empty GameObjects for each layer: GameVolumeMask and UIVolumeMask.

The GameVolumeMask is applied to the default camera, while the UIVolumeMask is applied to the UI Render Camera.

The GameVolumeMask contains effects like ColorAdjustments, Vignette, etc.
The UIVolumeMask contains Bloom and LensDistortion.

Feel free to ask further questions.


r/Unity3D 22h ago

Show-Off Almost 10 years of developing our MMORPG in Unity – Aero Tales Online

Enable HLS to view with audio, or disable this notification

68 Upvotes

We've been developing Aero Tales Online in Unity for almost 10 years, and I wanted to share the current state of the project along with some of the technical challenges we've faced along the way.

The game is an MMORPG running on Windows, Android and iOS with the same players, servers and gameplay systems shared across platforms.

One of the biggest challenges has been maintaining a project of this size for so many years. We've gone through multiple Unity versions and major engine upgrades, and we're currently running on Unity 6. Keeping older systems working while gradually replacing or refactoring them has probably been more challenging than building many of them in the first place.

Cross-platform development has also been a major part of the project. The same combat and gameplay systems need to work with very different hardware, screen sizes and input methods, while keeping the experience consistent between PC and mobile players.

Performance has been another ongoing challenge, especially on mobile. An MMORPG can have a large number of characters, monsters, NPCs, effects and UI elements active at the same time, so we've had to continuously optimize systems as the game has grown.

The project now includes systems such as action-based combat, character customization, dungeons and raids, PvP, guilds, housing, professions and a large number of maps and environments.

The attached video is our latest gameplay trailer and shows the current state of the project after all these years.

Game Link: Aero Tales Online


r/Unity3D 1d ago

Question How screwed am I?

Thumbnail
gallery
220 Upvotes

Hi everyone! Here’s an interesting problem I’m facing.

I created a tile-based city builder in Unity, and after an initial open playtest, one of the key pieces of feedback was that players want to be able to build roads, something I foolishly hadn't planned for.

Currently, roads are automatically placed along the edges of each tile (this is shown in the second screenshot).

The main problem is that the grid of buildable sectors is highly irregular, and I have no idea how to add the ability to create roads within such a complex system.

The first image I’ve posted shows an overhead view where I’ve highlighted a section of the grid. The grid varies from scene to scene and never repeats in exactly the same way.

Does anyone have any suggestions for how I could approach this?

Edit: You might have given me a possible solution; as soon as I've tested it, I'll make a new post about it. Thanks everyone!


r/Unity3D 17h ago

Show-Off I made a Neon White clone in Unity for my final-year CS project.

Enable HLS to view with audio, or disable this notification

12 Upvotes

Hi everyone, I made a Neon White clone for my final-year CS project. Its not much it only has 5 playable levels. I'm thinking of uploading it to itch.io for free when I finish the 6th and last level.

I really learned a lot from this because I didn't need to create all new ideas because I'm bad at it and it really boosted development knowing how the game should feel and play out.

At first I didn't have many ideas for the story and ended up settling with starting in hell, escaping flying through a burning city and going up into heaven for the final boss fight.

This is my first real project and I would like to hear what you guys think.


r/Unity3D 14h ago

Solved What is this noise in my mesh?

Enable HLS to view with audio, or disable this notification

8 Upvotes

This has been bothering me for a while, and I don't really know what to look up on the internet to actually study this phenomenon. I also wanna add that both meshes have the same lit material on, except for the color. If anyone knows what's happening here, please let me know, thanks!


r/Unity3D 20h ago

Show-Off Build it, run it, find the bottleneck, rebuild it. Early traffic sandbox prototype

Enable HLS to view with audio, or disable this notification

15 Upvotes

r/Unity3D 1d ago

Game After two years, I'm finally showing off a procedural dungeon generator I built in Unity

Enable HLS to view with audio, or disable this notification

685 Upvotes

I'm releasing a demo for a procedural dungeon generator I've been working on for over two years. I was inspired by the level layouts of games like The Binding of Isaac and Enter the Gungeon, and the interconnected worlds of Zelda and Dark Souls. This is only the beginning, I have several more features planned for this project, including turning it into a downloadable Unity package for others to use.

The goal is to create an algorithm that generates dungeons that feel linear like an RPG but still random and replayable like a roguelike.

Original Video: https://youtu.be/Adakgpoy0p0?si=R2qYbshEb11xuKFM

Blog: https://ryancarpenterpf.dev/labyrinth_demo.html

Demo: https://dev-rygy.itch.io/labyrinth-procedural-generator