Status
SteamPeaks
ChartsSalesUpcomingPatchesNewsCalculator
New on SteamEvery app, DLC and depot the minute Steam creates itAppsEvery app on Steam, newest change firstPackagesSubs and bundles, and what each containsDepotsDepots, manifests and install sizesTagsSteam's user tags and the games under themDevelopers & publishersCompanies and their cataloguesTechnologiesEngines, SDKs and anti-cheat found in the filesChange historyEvery PICS changelist as it lands
SignalsNineteen readings of the whole catalogueCompareAny games side by sideRecordsAll-time peaks and the days they were setReportsWeekly and monthly write-upsAlerts & newsroomWatch a game, get told when it movesSteam statusIs Steam up, right nowWeb API explorerTry the endpoints in the browser
NewsSteam's own announcements and the sales calendarCalculatorWhat a Steam account is worth, and its pile of shame
/
Sign in
/
SteamPeaks
The ultimate resource for Steam data.
ExploreChartsSalesSales and festsUpcomingPatchesNewsRecordsTrendingSignals
DatabaseAppsPackagesDepotsTagsDevelopersTechnologiesChange history
ToolsCalculatorCompareSearchAlertsSteam statusAPI
SiteMethodologyFAQDiscordSupportSign in via Steam
Not affiliated with Valve or Steam. Game names and artwork belong to their owners. All times UTC.
PrivacyCookiesFair useStatus
DROSSNewsDROSS - an Overdue Mandatory Update
In-game event

DROSS - an Overdue Mandatory Update

DROSS · published 9 Feb 2026, 10:53 UTC

All newsPlayers around this dateRead on Steam

TLDR: Pure DOTS ECS + ECS NETCODE, CO-OP started (Hosting, Joining) 5000 enemies @ 120FPS

//

It’s been a year. I can’t believe it’s been over a full year.

Honestly it’s all kind of a blur. I haven’t really done much of anything other than reworking the game.

I’ve gone full goblin mode. And I haven’t really shared any progress either, not here or on Twitter.

But since people seem to worry if me of the game is dead, we are all ok. I may have gone a little crazy, but it wasn’t really too far to go.

So, here’s an update on DROSS. When I first pulled down the last demo, I hadn’t planned to keep it offline for so long. I started by refactoring everything, and was focusing on the core gameplay, movement, combat etc.

A few months pass, and I start looking into what’s next. Using the entity component system, since I knew no one, not you or I, anyone, would be happy with only a few hundred enemies on screen. It’s rather important element to the game.

Surely ECS shouldn’t be too tough to learn. After all I managed to figure out C# and mono behaviours and all that.

Let’s just say there’s a reason most people do not work with pure ECS, and I had a rough time. It was a really bad time…

Then I read something about using netcode. And ECS Netcode. Apparently it’s nigh impossible to just switch from a fully realized single player game to a multiplayer game. But of course, it needs to be multiplayer.

So in the effort to get all this done sooner (no really I’m being serious) I restarted AGAIN, writing all of the DROSS systems to work in ECS Netcode and most of the major systems are all fully burst compatible Dots ECS. I didn’t know what any of this meant when I started this.

So after many many sleepless days, nights. Weeks, months. I still cannot believe it’s been a year… I have finally poked my head out just to say, it’s not ready yet.

Yes I know. Very anti climactic. But currently I am only now able to share any amount of visible progress. And as for an update to the demo, I won’t be having one available until it is good. Until it’s ready.

It’s not ready, and not all good. But..

What I have so far is really good.

😎

At the start I created a super performant spacial hashing grid. This would handle all distant culling and quality updates. And all future systems would be built around this. How it works:

The player character has their current position checked infrequently. When moving it is checked more frequently. At start their current region is saved within the grid. Upon leaving a region of the level grid, thus having a different region currently than the saved region, this triggers updating quality and culling. What is visible or not. Etc. All the cells use a Manhattan distancing check, so very easy on system. And any changes such as quality level from 0 to 1, update the regions with these quality changes. Mind you, only the regions the player is moving toward and the edges they are moving away from need changing, so a lot of early exits saving calculations.

All art, rooms, corridors, infestation, props, enemies hold or more compress their positions into these regions for quick lookup. Regions hold quality level. A low cost distance check. Enemies far from the player play their animations with far fewer frames, less frequent LOS checks, and as LOD meshes do not work in ECS, art mesh quality changes with this too. Remember this only updates / changes when the player had moved from one region to another.

Very boring but I’ve got nothing else really to talk about. And this is important, I don’t want my computer to overheat with a dozen enemies on screen.

Also meshes are all batch rendered with these.

RESULTS:

Generating a level, including floor plan, all art. Nests being created and growing. Infestation spreading. Ensuring keycards for any locked doors are reachable by player (plans out possible paths to complete level, ensuring it’s possible) item placement. Looking for oddly shaped corridors or too cluttered parts of the level. Takes about 10-20 seconds. And now there’s 3 levels of height for the paths. With tall rooms with upper mid and lower floors. As well as corridors generating on these lower main and upper floors. As well as corridors that ramp up or down floors. Stairwells. Etc.

It took about 1-2 minutes to create a single far worse level previously.

It works so quickly, if ever the layout is too difficult or impossible to complete. It just generates a fresh layout.

And as these floor layouts are on a grid they can and are converted to bits, compared to positions and values. This is what’s used to save and load the game mid run. (Yes this works) as well as generate the level and send the blueprints to the second player if playing online (yes this also works)

And how about the bugs? Well. I’ve managed to get a few more running smoothly on screen than before.

As is, i have a testing area that stress tests the system and checks how many bugs can exist at once. As is, 5000 bugs run smoothly, capped at 120 fps, on a 2019 iMac.

On SteamDeck, recent test had this same test getting only 11 fps average, so I still have a lot of optimization to do. But 11 fps for 5000 enemies is pretty decent all things considered.

Anything that I can make burst compatible, is. Anything that would work better with ECS, does.

Sometimes it feels like nothing is getting done, or I’m very close to finally having something worth sharing. But most of the time I am struggling with one error for s few weeks, only to figure it out and uncovering the next issue buried underneath.

It’s been an interesting year.

My goal is to have something playable. Soon. Something that can try out the large numbers of enemies, with working Co op. I need to get all the new stuff done, working  and in game. And then I have to get all the older stuff done and working in game too.

But I mean, what else really do I have to do? And I’ve put enough time into this, im not going to just stop. I’m getting through it, and it’s looking pretty decent too.

I could talk more about more. Such as art and more things I have learned. It’s a lot of learning, making all of this. I’m not sure if knowing any of it ahead of time would make it easier, but I guess I manage.

And I am done typing. I’ve got stuff to do, and I’d rather share it once complete that talk about what I would like it to be, I’ll just show you. Thanks all again for hanging tough. And if you’re still here looking forward to DROSS, I don’t plan to disappoint. And I don’t plan to fail. And certain not giving up.

And I also want it done already so I can play it. So thank you all for reading, and no I’m not dead. Neither is DROSS. Just antisocial. Grinding. But I appreciate the concern.

Cheers, 🍻

~SALT_

More from DROSS

Other announcements

All news
In-game event22 Feb 2026DROSS Devlog: How To Spawn 5K Enemy Bugs Without Killing Your PC> *"The swarm worked perfectly at 100 bugs. At 500, the game caught fire."* DROSS is a sci-fi horror game built in Unity 6 with ECS (Entity Component System) and Burst-compiled code. One of its core features is a **swarm AI system** — hundreds to thousands of alien bugs that move through procedurally generated levels, following leader-follower hierarchies, flanking the player, and reacting to t…Community19 Jun 2025DROSS Development Update: Progress ReportHey everyone, SALT_ here. I’ve got a fresh update on DROSS! This isn’t an announcement for a new demo release, but a deep dive into what I’ve been grinding away on to make the game better than ever. We’re not quite ready to drop the next update, but the demo is coming along quickly and smoothly. More enemies have been added, core systems are clicking better, and everything—lots of everything—ha…Community14 Mar 2025Paying Off Tech DebtHey everyone, I know it’s been a while—about three months since my last update—and I want to kick things off by saying I’m really sorry for the silence and for taking the Dross demo offline. I didn’t plan for it to be down this long, and I feel bad about leaving you all hanging. Your patience means a ton to me, and I’ve been working my butt off behind the scenes to make this game better than ev…