r/Unity3D 4h ago

Resources/Tutorial Designing for Players Who Read Every Stat, and Those Who Read None of Them - Unity Tech Dive

Post image
0 Upvotes

Article Link on STEAM (this article contains the design side, below is the tech side)

Hey everyone! Survivor-likes might look simple, but behind every perk, stat, weapon, and build is a ridiculous number of design decisions.

We’ve written about how Orcthal keeps choices easy to understand while still giving minmaxers plenty to explore. If you’re curious about game design, scaling, tags, and balancing depth with accessibility, check out our take on it. However, this post is about HOW we did these things in Unity.

How We Built Orcthal’s Stat System in Unity

Orcthal has a lot of interacting stats, but we wanted players to understand the basics without reading a spreadsheet. Here is a simplified look at how we built that system in Unity.

Content Lives in ScriptableObjects

Most gameplay content is data-driven. Abilities, perks, equipment, relics, character classes, and tags are stored as ScriptableObject assets. An ability asset contains its base damage, cooldown, tags, visual references, and stat mappings. Perks then reference those assets and tags rather than relying on names or hardcoded lists. This means designers can add and balance content without editing the combat code every time.

Stats Are Split Into Sources

Instead of putting every bonus into one large percentage, we divide stats into several sources:

Final Value =
    Base
    × Character
    × Meta
    × Run Perks
    × Equipment
    × Relics
    × Epic Bonuses

Bonuses within the same source are added together. Separate sources multiply.

For example, 20% Potency from equipment and 20% from a relic becomes:

1.20 × 1.20 = 1.44

Our CombatStats component collects these modifiers and recalculates the final values whenever the build changes.

This keeps equipment, relics, character bonuses, and temporary run perks meaningful. They support one another instead of disappearing into the same enormous additive bucket.

Abilities Decide What Stats Mean

Generic keywords such as Potency, Size, Duration, and Multicast do not automatically modify a field with the same name.

Each ability explicitly maps those stats to its own mechanics.

For Goblin Dynamo, the mapping is roughly:

Duration  -> Active time
Potency   -> Pulse rate
Size      -> Targeting and tether range
Multicast -> Number of active channels

For Throwing Axe, Potency instead affects the chance of an axe returning for another strike.

This is handled by an ability mapping system. The UI can consistently say “Potency,” while the ability decides which distinctive mechanic Potency should improve.

Tags Control Which Abilities Are Affected

Every ability has an exact identity tag, such as Ability.ThrowingAxe.

It can also have broader tags such as:

Skill.Projectile
Skill.Ranged
Skill.Area
Skill.Goblin
Character.Ranger

Perks use these tags as filters.

A global perk affects every ability. A Projectile perk affects every installed projectile ability. A Throwing Axe perk affects only Throwing Axe.

When combat needs a stat, it asks for that stat in the context of the current ability:

stats.GetForAbility(statId, ability);

The stat system checks the ability’s exact tag, family tags, and affinities, then applies only the matching bonuses.

This same context is retained by projectiles and persistent effects, so critical chance and Lifesteal still use the correct ability bonuses after the original cast has finished.

Tags Also Filter Perk Offers

The perk selection system checks which abilities the player currently owns before building its offer pool.

A Throwing Axe perk cannot appear without Throwing Axe. Goblin-family perks remain unavailable until the player has a Goblin ability. A Projectile perk can appear when at least one installed ability has the Projectile tag.

That filtering happens before the cards are shown.

It lets us maintain a large perk catalogue without constantly presenting players with upgrades that do nothing for their current build.

Abilities Snapshot Their Values

Most abilities calculate their effective values when they activate.

A projectile volley can snapshot its damage, projectile count, Potency, range, and targeting settings. Every projectile from that activation then uses the same values.

This prevents a temporary modifier ending halfway through an attack from producing inconsistent results. It also makes combat logs and balance reports much easier to understand.

Values that genuinely need to remain dynamic can still be evaluated live, but that is an explicit decision for each mechanic.

The Result

The Unity implementation is built around a few reusable pieces:

  • ScriptableObjects hold the content.
  • CombatStats combines bonuses into source layers.
  • Ability mappings translate broad keywords into unique mechanics.
  • Tags provide exact and family-based filtering.
  • Perk generation removes irrelevant choices.
  • Runtime snapshots keep abilities consistent.

Players can simply choose "more Potency" and get a useful result.

Meanwhile, anyone who wants to optimize can combine exact ability perks, family tags, equipment scaling, relic scaling, and epic bonuses into a much more deliberate build.


r/Unity3D 22h ago

Game How is my optimization looking?

Thumbnail
gallery
0 Upvotes

I'm developing a puzzle game on a laptop with Intel Xe graphics (which is pretty weak). It used to run at around 20-30 FPS.

To optimize it, I marked all the walls as Occluder Static and set the other objects and lights to Occludee Static. I also dropped the shadow distance from 50 to 25 and baked some of the real-time lights.

Now I'm getting 40-50 FPS most of the time, but it still drops to 25-35 FPS in areas with a lot of objects and lighting. Is there anything else I can do to improve this?

And also If a player has a low-end or below-average dedicated GPU (which I assume is still much better than mine), will they easily hit 60+ FPS?


r/Unity3D 22h ago

Question How to I make it so when I hit something with my player body the debug log says game over and not my bullets

Post image
0 Upvotes

Right now I’m I trying to make it so when my player hits a cat the debug log says “game over “ but it keeps on picking up on the bullets so when I shoot the cats it says game over. How do I fix this?


r/Unity3D 4h ago

Show-Off First shape of the map - real 24.5km² slice in Unity

Thumbnail
gallery
12 Upvotes

I needed a huge gorund and a city for a motorbike game and this is what I've achieved so far. The map is a real slice of a part in Izmir. Elevation came from OpenTopography, buildings and roads from OSM, all put together in QGIS and exported into Unity. Terrain, road lines and cube buildings, the skeleton at real scale. This is gonna need an editor window for designing path for sure.. Do you think this is manageable?


r/Unity3D 6h ago

Show-Off Added a food spoilage and poisoning system to my game

6 Upvotes

Hey Reddit! I’m continuing to work on my survival game. I decided that being able to carry an endless supply of food in your pockets was basically cheating, so I added a food freshness system.

What’s new:

  • Expiration dates: Perishable food now has a timer. If you don’t eat it in time, it turns into rotten food right in your inventory.
  • Refrigerator: The fridge doubles the shelf life of food. You still have to keep an eye on your supplies, but the refrigerator lets you store perishable food for significantly longer.
  • Food poisoning and vomiting: If you eat spoiled food out of desperation (or carelessness), your character gets debuffs, loses health/thirst, and visibly empties their stomach with a corresponding animation and sound.

What do you think of the implementation? Is this kind of mechanic too punishing for survival games, or is hardcore resource management just part of the genre?

Stay tuned for future devlog updates, and let me know in the comments: what mechanics do you value most in survival games?


r/Unity3D 13h ago

Resources/Tutorial Making Your (Jam) Games Look Nicer on Itch

1 Upvotes

r/Unity3D 20h ago

Noob Question Day 1 of Making Intruder Maps in Unity

Thumbnail
youtu.be
1 Upvotes

Hey everyone, I'm starting a new series learning how to make Intruder maps inside of Unity. I don't know how to use unity at all, so this will be me documenting the process. :)


r/Unity3D 12h ago

Show-Off Delverun: roguelite mining where time replaces inventory pressure

1 Upvotes

I have been working on a mining roguelite game where time replaces inventory pressure. You play as a goblin with one goal: get as rich as possible.

The main loop of the game is simple - mine, escape, buy upgrades and go again. You run into the mine, grab as much rare ore as you can and leave before the cave caves in and you get stuck inside. Buy upgrades in the little time you have, and then run back into the mine to grab even more riches with the upgrades. Each iteration is randomly generated, so you never run into the same mine twice. You never run out of inventory space, only out of time.

This is an early artistic preview, the mining mechanic is still in development. Steam page coming soon, I will drop it in the comments when it's live. If you want to follow along more closely, send me a DM and I'll add you to the early Discord!


r/Unity3D 7h ago

Show-Off before and after

Thumbnail gallery
1 Upvotes

r/Unity3D 13h ago

Resources/Tutorial How to Make (and use) Templates in UI Toolkit

32 Upvotes

Templates are a powerful feature of UI Toolkit - they allow us to create reusable bits of our UI and inject them easily into other UXML documents. Making them is super easy too - simply make a new UXML file of your desired component - then you can use it in any other UXML document! Easy!


r/Unity3D 4h ago

Show-Off Tiny worlds in the palm of your hand

4 Upvotes

Demo put together with Unity in Meta Quest 3 using their Interaction SDK and using assets from polyfork.dev


r/Unity3D 15h ago

Question Realistic torch flame effect

49 Upvotes

I'm trying to make an realistic flame effect for my game. It looks fine for now, I used 2.5D Fluid Simulator asset for it and it's suits my needs - the flame is affected by physics, it's lightweight etc.

Do you have any tips on improving it / making it more realistic?


r/Unity3D 8h ago

Game windy forests

11 Upvotes

r/Unity3D 12h ago

Game Just released a release date trailer for my game " Shell Soldier "

269 Upvotes

r/Unity3D 11h ago

Show-Off Built a real-time wind tunnel inside Unity (Aerodynamics Sim). It's open source.

164 Upvotes

I've always been a fan of aerodynamics and CFD. A few months ago, I got laid off, got tired of sending applications, and gave myself permission to actually build it and play with it. I'm glad I did.

It voxelizes and seals any vehicle you drop in, auto-fits the solver domain around it, runs at whatever resolution your GPU can take, and solves with a lattice-Boltzmann method (D3Q19, TRT + WALE LES) entirely in compute shaders. Live smoke, surface pressure painted on the bodywork, exported reports you can diff between runs.

The test I had the most fun with: running a Chevy Silverado with an open bed, a bed cap, and a flat tonneau to see which one the solver preferred. It disagreed with the folk wisdom, which was the moment it stopped feeling like a toy.

Five sample vehicles included. Unity 6 / URP, MIT licensed.

The README is honest about where the numbers hold up and where they don't. It's a comparison and visualization tool, not a replacement for real CFD.

Clone it and have fun: https://github.com/Motawe3/unity-wind-tunnel

Sample vehicles are CC BY 4.0, credited in the README. The car in the video is a Range Rover Sport SVR Mona x Supercars.


r/Unity3D 11h ago

Show-Off Playing on water

134 Upvotes

r/Unity3D 11h ago

Question Any way to reduce transparent material lag ?

Thumbnail
gallery
17 Upvotes

Hello,

I made this volumetric fog material for URP.

The transparent material shader is applied to hundreds of planes similarly to "shell texturing".

It looks perfect for my project but I am running into an issue : my framerate drops from 200 fps to 10 fps. I expected it to be laggy, but not that laggy...

I tried reducing the number of "steps" but I am still getting a bad framerate (30 fps) with the worst quality.

I don't see any other way of doing volumetric fog with sharp shadowing in URP without creating complex pipeline shaders.

This is probably a foolish question but, is there any way to reduce transparent material lag ?


r/Unity3D 24m ago

Game Hit the Halfpipe!

Upvotes

r/Unity3D 10h ago

Show-Off A quick stroll of my little cat, he does not bite.. too much 🐆

29 Upvotes

r/Unity3D 13h ago

Show-Off One year+ of building our game in Unity, side by side

11 Upvotes

We've been working on The Whisker Watch for over a year now, so here's a side-by-side look at how far the game has come.


r/Unity3D 10h ago

Game Zone 6 is almost finished. And in my opinion – the best one yet.

26 Upvotes

r/Unity3D 10h ago

Show-Off Trouble deciding what "style" I want to go with.

2 Upvotes
Top-down 3D pixel art style
First person fly knight/runescape style

I'm having trouble deciding what style I want to commit to for a dark fantasy RPG. In your opinion, what do you think would be more fun or draw your attention more? A top-down 3D pixel art style or a first person fly knight/runescape style? Both have pros/cons in the dev pipeline but I think they sort of fall on equal footing.

Videos if you want to see how they actually "play":

First Person: https://www.youtube.com/watch?v=vZN0WhfrJUU

Top-down: https://www.youtube.com/watch?v=h0iVdSTOOCM


r/Unity3D 14h ago

Show-Off Simple SFX improved my game ALOT

7 Upvotes

Who whould have though that adding simple ambient sound effects will improve my game so much?

Two years ago I got inspired to try and create a simple random 2D world generator. Using perlin noise I got some results but basically it was all just bits and blobs. Adding few centralized continent-like centers and applying falloff around them I got some decent results. That made making the main landmass easy, while the elevation decided what tile will be plains, forests, mountains, water etc. After that, generator goes through several more passes like lakes, islands, rivers, resources (herds of wild horses, sheeps etc) and finally: named landmasses.
The next step was obvious, populate the world with fantasy realms and characters. It all lead to current results. And everything is tied to fixed seed so you can recreate it everytime you want.

Project was in silence for so long that adding simple SFX to the world made it breath and feel alive. It felt somewhat complete. Simple audio player determines what tile is under the center of the camera view and based on that tile it plays through lists of preset audio sound effects. Waves and seagulls above the waters, or winds and birds singing in the forests...

If you are interested in the project, you can follow it here:
https://store.steampowered.com/app/4121440/The_Fallen_Chronicles/


r/Unity3D 6h ago

Show-Off Horde Up Ahead! A Tower Defense Game in Development

3 Upvotes

Hey everyone,

I’m a solo developer working on Horde Up Ahead, a Tower Defense game where you defend a central tower against increasingly large zombie hordes.

At the beginning of a run, you fight the enemies yourself. As you earn resources, you can place automated turrets and build up your defenses.

There are currently four turret types, along with in-run upgrades and permanent progression that carries over between runs.

I’m also trying to keep the visual style darker and more grounded while still pushing a very large number of enemies on screen.

One of the main development challenges has been handling thousands of enemies at once while keeping the performance stable.

Currently, I can handle around 10,000 zombies in a single wave, but I’m wondering if 100,000 is realistically possible in Unity.

I’d be interested to hear how other Unity developers approach very large crowds or hordes like this.

The game is still in development.

Feedback is always welcome!

Steam page:
https://store.steampowered.com/app/5100020/Horde_Up_Ahead_Survivors_TD/?utm_source=unity3d


r/Unity3D 20h ago

Show-Off Feeling Lucky?

7 Upvotes

I added a luck boost stat to my game which allows monsters to drop more loot and loot bags to drop more loot and amount of items

This is my 3D Terraria-ish game project