Sandustry
Sandustry is a mining and automation game with pixel-based physics.
Wishlist on Steam | Join the Discord server
Falling sand
Everything in the game is part of a falling sand style simulation and it's up to you to curb the chaos.
Mining
Use various tools and weapons to mine and dig deeper and deeper for sand and raw materials.
Base-building
Setup your base and build a logistics network for transporting and refining sand.
Automation
Create an automated factory with increasingly intricate processing lines.
Exploration
Explore and discover temples and structures from an ancient civilization.
Bosses and puzzles
Fight bosses and solve puzzles to acquire key items.
Upgrades and tech
Unlock new refining methods and tech such as drones, new buildings and multistep processing. Upgrade your weapons and equipment.
Updated | 10 days ago |
Status | In development |
Platforms | HTML5 |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | Lantto |
Genre | Simulation |
Tags | Automation, base-building, mining, Sandbox |
Links | Steam |
Development log
- 0.0.4 - Pipes, drones and much more13 days ago
- 0.0.3 - Fluxite38 days ago
- 0.0.2 - QoL updateSep 21, 2024
Comments
Log in with itch.io to leave a comment.
I am also unable to run in firefox (tested with a fresh, empty profile, no addons, in Firefox Dev Edition 135.0b2). After clicking "Run game", the new window opens and starts loading, but eventually fails with `Error: can't access property "fg", w is undefined` on the loading screen. Clicking "Try anyway" doesn't fix the error.
Based on the stack trace from the console (pasted at the end of this comment), and some poking around, it looks like your "Unknown color in blueprint" check is erroring when checking for a foreground color (w = w.fg) when w is undefined because the array of blueprint colors(?) doesn't contain an entry for '255, 255, 254' at all, so w is undefined.
i'm not 100% sure, since i'm working from the minified source, but it looks like, for some reason, firefox is getting different rgb values from the ImageData of menu_blueprint.png
Thank you! Impressive debugging skills considering you're working with the minified source. I think you're onto something regarding the RGB values, which would explain the discrepancies and why I can't replicate it myself (e.g. due to different color profiles). I wonder if manually setting the colorSpace when getting the context would be a solution.
My game drops to 15-20 fps whenever im underground. :( love the game though.
Thank you very much! You're being too kind but I'm really glad you're enjoying it. The whole save system definitely needs some love. It's basically serializing the entire state, creating massive save files for no reason, when a fraction would be enough. Thanks for reporting!
Nice factory btw! :)
I'm unable to start in Firefox since the update; just repeatedly shows |X Error: w is undefined| during loading and "try anyway" just starts over and gets stuck again. I've got a clean install of FF on this computer so idk what the root cause could be. Works fine in chrome/edge though.
Since someone posted their console log before, here's an abreviated version of what I'm getting.
/*
Error getting store: TypeError: w is undefined
a https://html.itch.zone/html/12226665/2024-12-11/js/bundle.js:2
promise callback*l https://html.itch.zone/html/12226665/2024-12-11/js/bundle.js:2
bundle.js:2:1021401
*/
(There are a dozen or so lines with some sort of letter prefix and the exact same bundle.js reference, and a couple lines of promise callback sprinkled in)
Thank you very much for reporting and for providing the details and console logs! It's very helpful, especially since it's the second time someone reports that exact error and thus confirms a suspicion I have. Just to confirm: it worked fine in Firefox for you before the update?
Unfortunately, I'm only about half sure, I generally run everything on firefox by default on my laptop (desktop has a heavily modified version of ff and is always goofy so I can't compare the results) and only switch off if I can't otherwise do something. Usually it's a Unity compatibility fault, so I can't remember anything that would have gone wrong here before. That being said, I don't know for a fact that I wouldn't have not thought twice and just switched off if something didn't work the first time around.
OMG PLEASE GIVE ME A DOWNLOAD
Yessir! Coming next update, so in like a week.
YESS!! I LOVE THIS GAME BY THE WAY
it's been a week 😭🙏
Decided to add some other stuff but it's out now. Haven't really tested the installer though since I'm on a Mac and only play in the browser. :)
Yess!
where's it out..? -_-
I don't understand, how do you set a filter setting on the filters
I just realized you need to select the filter from the build menu (Q) in order to get the settings popup. When you use it from the hotbar so I need to do something about that. Thanks for reporting!
Maybe add an option to disable the lighting shaders when entering a cave? (WEB version) its a massive hit on performance
Hey! Yes, good idea. Disabling shaders should be trivial to implement and I definitely need to add more options like that. Are you on a laptop with both integrated GPU and a dedicated graphics card? On my gaming laptop it defaults to the integrated GPU, so I need to manually set it to use the dedicated one. Otherwise I get similar performance issues.
Thank you for your reply!
I don't believe I have a dedicated graphics card or GPU on my laptop, just the ones that came with it when I bought it
still get stuck on starting :(
Here is the console log. Can you find anything here?
Violation] Forced reflow while executing JavaScript took 54ms
js?id=G-36R7NPBMLS:539 [Violation] 'setTimeout' handler took 57ms
sandustry:1 Unchecked runtime.lastError: The message port closed before a response was received.
lib.min.js?1733736929:2 Unrecognized feature: 'monetization'.
xe @ lib.min.js?1733736929:2
He @ lib.min.js?1733736929:2
replaceWith @ lib.min.js?1733736929:2
(anonymous) @ game.min.js?1733736929:1
Deferred @ lib.min.js?1733736929:2
i.load_frame @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ bundle.min.js?1733736929:1
dispatch @ lib.min.js?1733736929:2
v.handle @ lib.min.js?1733736929:2
lib.min.js?1733736929:2 Unrecognized feature: 'xr'.
xe @ lib.min.js?1733736929:2
He @ lib.min.js?1733736929:2
replaceWith @ lib.min.js?1733736929:2
(anonymous) @ game.min.js?1733736929:1
Deferred @ lib.min.js?1733736929:2
i.load_frame @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ bundle.min.js?1733736929:1
dispatch @ lib.min.js?1733736929:2
v.handle @ lib.min.js?1733736929:2
lib.min.js?1733736929:2 Allow attribute will take precedence over 'allowfullscreen'.
xe @ lib.min.js?1733736929:2
He @ lib.min.js?1733736929:2
replaceWith @ lib.min.js?1733736929:2
(anonymous) @ game.min.js?1733736929:1
Deferred @ lib.min.js?1733736929:2
i.load_frame @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ game.min.js?1733736929:1
(anonymous) @ bundle.min.js?1733736929:1
dispatch @ lib.min.js?1733736929:2
v.handle @ lib.min.js?1733736929:2
index.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
bundle.js:2 createWorld 199.8200000000652
bundle.js:2 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
(anonymous) @ bundle.js:2
mf @ bundle.js:2
(anonymous) @ bundle.js:2
(anonymous) @ bundle.js:2
(anonymous) @ bundle.js:2
o @ bundle.js:2
bundle.js:2 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
(anonymous) @ bundle.js:2
mf @ bundle.js:2
(anonymous) @ bundle.js:2
(anonymous) @ bundle.js:2
(anonymous) @ bundle.js:2
o @ bundle.js:2
bundle.js:2 setupSession 145.53000000002794
[Violation] 'setInterval' handler took 317ms
Hey! Thank you. This is very useful. The error about ports closing seems like a breaking issue (since the game needs multithreading to work) but I'm not sure. Searching for it online brings up a lot of issues related to Chrome Extensions. Do you have any extension installed that could be the culprit?
I am writing this from a school Chromebook, but very, very few websites are actually blocked, and fewer in a way that might affect this. I even tried disabling adblock.
Interesting game, played through what is there so far. The sand physics is fun, the components to build from feel fitting together well to create interesting and functional contraptions. What I imagine would be challenging is to make the game mechanics (sand physics) fast enough for a solid, smoothly going game, it struggles a fair bit already for the later goals (was playing on Chromium).
Thank you! Yes, performance will definitely be challenging. In retrospect I've made many dumb choices when building the engine but hopefully I can mitigate it. Would be really sad if I had to add artificial restrictions just because the engine can't handle scaling a big factory.
Just a bit of curiosity - what this is programmed in? Seems like a fun bit of challenge to figure out how to push that core mechanics to be able to go far and beyond!
Hey! (Didn't see the reply until now.) It's all JavaScript. The biggest problem is that I can't share arbitrary memory between threads so I have this convoluted solution that would be completely unnecessary in other languages. The simulation wouldn't be possible without multithreading so it's kind of frustrating but still fun to work on!
Very good game, love to see more, but can there be a way to get the save code, for example: if someone was to change the device they were playing on, they would have to restart, or was in incognito mode, or cleared cookies, but otherwise, good!
Thank you! Yeah, I totally agree. This version is an early playtest so it lacks a lot of Quality of Life features that I really need to fix. Let me know if you have any other feedback!
Are moving contraption planned?
Hey! Depends on what kind of contraptions you had in mind but I'm open for ideas and suggestions.
Like cars and rockets maybe even mechanical arms
Very fun already! I look forward to the rest of the game :]
Thank you! :)
Interesting concept. Love the physics simulation.
How can you make water vapor condense if it is trapped in caves?
Thank you!
You've actually highlighted an issue for which there's currently no good solution. I should probably add to the Itch page that this is a playtest of the alpha, so a lot of stuff is still missing. The idea is that you will eventually have a "freeze gun" that you can use to condense steam back into water manually.
I was kind of expecting it to cool off after a while and condense by itself. Similar to how it behaves outside. I also tried to put snow there. Just sharing my thoughts.
guess the part with the teal colored wall is demo how to do off limits in the alpha. i was able to clip by moving objects. :-)
That makes sense to have it automatically condense by itself. Good suggestion!
Yup, that was supposed to be off-limits, so nice catch! :D Let me know if you find any other bugs—I'm sure there are plenty.