r_unity3d | Unsorted

Telegram-канал r_unity3d - r/Unity3D

156

News about the Unity engine and project showcases from Reddit. Made possible with @reddit2telegram (@r_channels).

Subscribe to a channel

r/Unity3D

Unity's Job System (IJobFor.ScheduleParallel). On a 6-core CPU, 6 chunks are solving simultaneously. Cross-chunk conflicts at boundaries happen occasionally, and they're handled cooperatively: uncollapse the conflicting edge cells, reopen that chunk, let it re-solve just that boundary area.

# Wall #3: "Backtracking kills everything"

When WFC hits a contradiction (a cell with zero valid tiles), most approaches either restart the entire grid or pop a single snapshot off a stack. At scale, both of these hurt:

Full restart: you just threw away 100K collapsed cells because of 1 bad choice
Single-step undo: can take hundreds of backtracks to escape a real dead-end

What fixed it: Progressive depth + deferred execution. When a contradiction happens:

1. In-job: try undoing the last 1, 3, 7, or 15 steps (escalating depth based on repeated failures), all inside the Burst-compiled job
2. If that fails: flag it for the next job dispatch. The main thread just writes an integer to a shared array, and the Burst worker handles the heavier restore on the next frame
3. If the backtrack stack is fully exhausted: restart just that one chunk, not the whole grid

I profiled this before and after. Before, backtracking was eating 473ms per frame on large grids (mostly from sequential AC-3 + repropagation running on the main thread). After deferring that work to parallel Burst workers, the main-thread cost dropped to basically nothing.

# Wall #4: "Propagation lookup overhead"

When you collapse a cell, you BFS outward and ask each neighbor: "given what I just placed, what tiles are still valid for you?" This requires looking up compatibility rules.

Most implementations use a dictionary or hashmap: rules[(tileID, direction)] returns the set of compatible tiles. That works fine at small scale. But propagation is the hottest loop in WFC. On a million-cell grid, you're hitting that lookup millions and millions of times during a single generation run.

What fixed it: Pre-computed flat array. At startup, I flatten the hashmap into a plain array indexed by [moduleIdx * 4 + direction]. Array access is a single pointer offset; hashmap access involves hashing, bucket traversal, and potentially collision resolution. I didn't profile the exact per-lookup difference, but after switching, my propagation phase got noticeably faster on the profiler timeline. At the volume of lookups WFC does, even small per-lookup savings compound into real seconds.

# Wall #5: "Too many contradictions in the first place"

Even with great backtracking, contradictions are expensive. The best fix is not having them.

What fixed it: Look-ahead selection. Before committing to a tile, I check: "would placing this tile cause any of my 4 neighbors to have zero valid options?" If yes, skip it and try the next candidate. It's a simple 1-hop look-ahead (not deep search), and it prevents a huge chunk of contradictions for well-designed tilesets.

How much it helps depends heavily on your tileset. Look at the benchmark table above: the 25-tile palette and the 331-tile palette are running on the exact same solver with the exact same optimizations. The 10x speed difference is almost entirely from how often contradictions occur. Simpler, cleaner edge rules = fewer dead ends = look-ahead catches almost everything. Complex tile interactions = more situations where even look-ahead can't prevent a contradiction 2-3 hops away.

# How these work together

None of these optimizations work well in isolation. Multi-step execution without Burst compilation would be slow managed C#. Burst without multi-step would still have a million main-thread round-trips. Chunk parallelism without deferred backtracking would stall every time a chunk contradicts. And all of the above without look-ahead would spend most of their time backtracking. They're force multipliers for each other, which is why the combined result is so much better than any single optimization would explain.

# Things I wish I knew when I started

1. Profile before you optimize. My first

Читать полностью…

r/Unity3D

Best tips for making game feel good?

What are your best tips for making game feel good and be visually nice? You can give general tips for other things as well. I like to learn.

What I have learned:

\-Add audio at earliest you can, so you can feel the game better.

\-I recently discovered LUTs. They can really boost the games athmosphere even if your sprites are good.

\-Bloom makes things pop.

\-Animate little things

\-Camera work is important, use cinemachine to make it easier. I don’t follow player in my game but it makes shots so much easier.

I didn’t run this text through chatgpt so there might be grammar errors :D

https://redd.it/1siwl7a
@r_Unity3D

Читать полностью…

r/Unity3D

Game view (Free Aspect) doesn’t scale correctly — background not expanding
https://redd.it/1sit2ty
@r_Unity3D

Читать полностью…

r/Unity3D

Anyone know why it’s showing up like this?
https://redd.it/1sise8f
@r_Unity3D

Читать полностью…

r/Unity3D

Shadow jittering with day/night cycle?

https://redd.it/1sinhoy
@r_Unity3D

Читать полностью…

r/Unity3D

Just released my first ever open playtest on steam! Working on a Monster Train inspired steampunk deckbuilder.

https://redd.it/1silu7g
@r_Unity3D

Читать полностью…

r/Unity3D

This is about 3 months of progress on my Unity game!

https://redd.it/1sihf5m
@r_Unity3D

Читать полностью…

r/Unity3D

please help me about unity 2d

can you guys suggest a best way to create a list of inventory in unity 2d that has a database with firebase . (aside using Prefabs)

https://redd.it/1sib36e
@r_Unity3D

Читать полностью…

r/Unity3D

ForHire Game UI/UX Designer Available for New Projects

Hey! I'm Idris, a UI/UX Designer with over six years of experience under my belt. If you're on the hunt for someone to help create game interfaces that are both fun to use and easy on the eyes, you’ve found the right person! I've spent a lot of time in the gaming world, pouring my passion into different projects.

What drives me? I love making interfaces that aren't just pretty but also super smooth to use. I’m always excited to take on new challenges and see how far I can push things in game design.

Here’s what I’m good at:

Visual Design: I’m all about creating interfaces that look great and work well. I use color, typography, and animation to make sure everything is as eye-catching as it is functional.

User Experience: I focus on making sure the interfaces are easy to use and feel natural. I try to think like a player so I can create something that’s clear and straightforward.

Technical Skills: I'm well-versed in bringing my designs to life in Unity and Construct 3.

Check out my portfolio:
https://h-idris.com/

Here are some of the most recent games I worked on as a UI/UX Designer:

Astro Protocol https://store.steampowered.com/app/3727420/Astro\_Protocol/

Metal Coffin https://store.steampowered.com/app/3551150/Metal\_Coffin/

Horizons of Achaea https://store.steampowered.com/app/3869920/Horizons\_of\_Achaea/

Get in touch:

Shoot me a message or add me on Discord: hidris.uiux
Email: **idris.hadjoudj@gmail.com**

Let’s make something awesome together!

https://redd.it/1si1qsc
@r_Unity3D

Читать полностью…

r/Unity3D

Strategy wargame about managing resistance. | INTRODUCTION DEVLOG
https://redd.it/1shx7mh
@r_Unity3D

Читать полностью…

r/Unity3D

Hey guys, just wanted to show you some new gameplay for my hand drawn metroidvania/soulslike game. The game is called "Endless Night Sonata". Any feedback is very wellcome!
https://youtu.be/C3_R-usZ3Ng?si=YrJc-06L-6oLRRQ6

https://redd.it/1shsxkf
@r_Unity3D

Читать полностью…

r/Unity3D

Waiting for Unity´s code to finish executing

I´m making a collegue task and I´ve run into some problem that I don´t know how to fix. I tried to go to proyect settings and preferences and I am still stuck with this. Any ideas how to fix this? By the way I´m forced to use 6000.3.0f1

https://preview.redd.it/iim8aybdsdug1.png?width=593&format=png&auto=webp&s=e291923e8fdfee173eeb964be7ffb0156bbae1a5



https://redd.it/1shpr3f
@r_Unity3D

Читать полностью…

r/Unity3D

We're two friends making our first game: President Simulator. It's a satirical game in which you are the US President, elected by mistake. We hope you'll like it!

https://redd.it/1shmt91
@r_Unity3D

Читать полностью…

r/Unity3D

Struggling to get the look I want

https://redd.it/1shkhbo
@r_Unity3D

Читать полностью…

r/Unity3D

Working on 2d Puzzle game, how is the visuals?
https://redd.it/1shheov
@r_Unity3D

Читать полностью…

r/Unity3D

Wave Function Collapse at 4 million tiles in 23 seconds. Here's every wall I hit scaling it in Unity.

Most WFC implementations top out around 100×100 before things get painfully slow. I spent months pushing mine to handle grids 400x larger, and I want to share what I learned along the way.

25 Tiles \(Simple\)

# The numbers

I tested with three different tilesets to see how constraint complexity affects generation time. Same solver, same hardware, same grid sizes:

|Grid Size|Cells|25 Tiles (Simple)|41 Tiles (Medium)|331 Tiles (Complex)|
|:-|:-|:-|:-|:-|
|100×100|10K|0.19s|0.47s|1 - 3s|
|250×250|62.5K|0.50s|0.94s|4 - 10s|
|500×500|250K|1.60s|2.49s|30 - 40s|
|1000×1000|1M|5.46s|7.74s|50s - 1m15s|
|2000×2000|4M|22.22s|29.97s|4m 23s|

The "Simple" palette has 25 tiles with clean, predictable edge connections. The "Complex" one is my actual hand-crafted isometric tileset with 331 tiles, multiple terrain types, biome transitions, and tight directional constraints.

A few things jump out. First, the 25-tile and 331-tile palettes are running on the exact same solver with the exact same optimizations, and the complex one is roughly 10x slower. More tiles means more constraint checks per propagation step, more potential contradictions, and more backtracking. Your tileset design is the single biggest performance variable.

Second, the solver gets more efficient as the grid gets larger:

|Grid|Cells|Time|Scaling|
|:-|:-|:-|:-|
|100×100|10,000|0.19s|baseline|
|250×250|62,500|0.50s|6.25x cells, 2.6x time|
|500×500|250,000|1.60s|25x cells, 8.4x time|
|1000×1000|1,000,000|5.46s|100x cells, 28.7x time|
|2000×2000|4,000,000|22.22s|400x cells, 117x time|

At 2000×2000, you'd expect 400x the time of 100×100 if it scaled linearly. Instead it's only 117x. Larger grids have more chunks running in parallel (better CPU utilization), and the fixed startup costs (building adjacency rules, initializing buffers, etc.) get spread across more cells.

41 Tiles (Medium): Full resolution from this link

41 Tiles \(Medium\)

331 Tiles (Complex): Full resolution from this link

331 Tiles \(Complex\)

# The walls I hit (and what actually fixed them)

There are fast WFC implementations out there (fast-wfc in C++ is great for moderate grids, Tessera has a solid AC-4 solver, etc.). The problem isn't that WFC is slow at small scale. The problem is that it falls apart at large scale due to bottlenecks that don't show up until you're past \~200×200. Here's what I ran into:

# Wall #1: "One cell per frame"

Standard WFC works like this:

1. Find lowest entropy cell
2. Collapse it
3. Propagate constraints
4. Return to main thread
5. Repeat

For a 1,000,000 cell grid, that's 1 million round-trips between the solver and the main thread. Each one has overhead: scheduling, memory synchronization, state copying.

What fixed it: Multi-step execution. Instead of collapsing 1 cell and returning, I collapse 50 cells per job dispatch inside a single Burst-compiled function. But the tricky part is that you also need in-job backtracking for this to work. If you collapse 50 cells and hit a contradiction at cell #30, you need to undo and retry without leaving the job. I use a ring-buffer snapshot system for this: save a lightweight snapshot before each collapse, and roll back to it if things go wrong.

# Wall #2: "The grid is one big problem"

WFC seems inherently sequential: collapse a cell, propagate, pick the next. But it doesn't have to be.

What fixed it: Chunk parallelism. I divide the grid into chunks and process each one independently on a separate CPU core using

Читать полностью…

r/Unity3D

Here's an open-source, lightweight, flexible gameplay tagging system for Unity
https://github.com/megastructure-dev/gameplaytags

https://redd.it/1sirm8s
@r_Unity3D

Читать полностью…

r/Unity3D

Sprite Shatter FX

https://preview.redd.it/mtvgg6gvzlug1.png?width=1536&format=png&auto=webp&s=6c4a8054ec8a64f4042761f63054c1c4348f8576



Hey everyone,

I’ve been working on a small Unity tool Sprite Shatter FX that lets you break any 2D sprite into pieces using the built-in particle system. You can control things like shard count, force, gravity, rotation, trails, etc., and then bake it straight into your scene.

I originally made it to speed up destruction effects in my own projects, but ended up polishing it into a proper asset.

Since this community helped me a lot while building it, I’ve got 5 free vouchers to give away for Unity2D devs here.

If you’re interested, just drop a comment or DM me and I’ll send them out.

Would also really appreciate any feedback

https://redd.it/1sirqnh
@r_Unity3D

Читать полностью…

r/Unity3D

Added a shooting range to my game's base hub so you can test different weapons before a run
https://redd.it/1sir9nx
@r_Unity3D

Читать полностью…

r/Unity3D

Made a trailer for my game, any though

https://redd.it/1sijm3l
@r_Unity3D

Читать полностью…

r/Unity3D

🫧 Volumetric, frosty/condensation glass material with bubble particles (URP).

https://redd.it/1sikb43
@r_Unity3D

Читать полностью…

r/Unity3D

You can ask for flowers. Made it Unity Engine

https://redd.it/1sicw94
@r_Unity3D

Читать полностью…

r/Unity3D

Take control of a hungry shark starting its journey near the surface. To survive the crushing DEPTHS, you must consume everything in your path. The more you eat, the larger you grow, allowing you to dive deeper into the darkness where even bigger threats await. Can you become the true apex predator
https://keeper4.itch.io/food-of-the-deep

https://redd.it/1sibugz
@r_Unity3D

Читать полностью…

r/Unity3D

The Challenge Game is Difficult and fun; be the hero and break the Record Of 500 by passing through the Gaps in the Boxes
https://youtube.com/shorts/IubX6gn10PE?si=yzyX4fCXABjXXz_c

https://redd.it/1si04v8
@r_Unity3D

Читать полностью…

r/Unity3D

My retro cash register roguelike deckbuilder Business 98 now has a demo!
https://redd.it/1shvwae
@r_Unity3D

Читать полностью…

r/Unity3D

I made a simple 3-minute video on setting up a 2D Cinemachine camera

Hey everyone,

I’ve been working on my 2D project and noticed how much of a difference a few small camera settings make. I decided to make a really simple, no-fluff tutorial for beginners who want to get away from the "default" camera look.

It’s only 3 minutes long and covers basic tuning like lookahead, dead zones, and how to fix that annoying player jitter.

If you’re just starting out with Cinemachine and want a quick setup guide, I hope this helps: Stop Using the Default Camera! Master Dynamic 2D Cinemachine (Unity 2026)

https://youtu.be/NRSdmsqGCxE

Let me know if I missed anything or if you have a better way of handling 2D follow cameras!

https://redd.it/1shtgr1
@r_Unity3D

Читать полностью…

r/Unity3D

My trailer's footage was captured 100% in Unity and got posted by IGN (GameTrailers)

https://redd.it/1shpeel
@r_Unity3D

Читать полностью…

r/Unity3D

REPTERRA - Solo Dev RTS game coming out on 28 April!
https://www.youtube.com/watch?v=-l9xR0j2TU4

https://redd.it/1shmc1r
@r_Unity3D

Читать полностью…

r/Unity3D

Pixel art is hard. We're developing a 2D Metroidvania. How do you like the visuals? Critique needed.

https://preview.redd.it/5ms6dd4s5cug1.png?width=1642&format=png&auto=webp&s=8e9ae421fe1f03b4336263e4f983742ecff8e5b5

https://preview.redd.it/834r4r2t5cug1.png?width=753&format=png&auto=webp&s=fe1ff398330a4888ee2f70672c39d689b5436d88



https://redd.it/1shi4l1
@r_Unity3D

Читать полностью…

r/Unity3D

Just released "RPM: Next" demo on android store

https://redd.it/1shg3kx
@r_Unity3D

Читать полностью…
Subscribe to a channel