Hacker News new | past | comments | ask | show | jobs | submit login
Shapez.io: open-source base building game inspired by Factorio (shapez.io)
373 points by smusamashah on Oct 4, 2020 | hide | past | favorite | 114 comments

I bought this game a couple of weeks ago and played it for a few hours. The build system is a lot more relaxed than Factorio, since you have no enemies and you have access to an unlimited amount of elementary building blocks (mines, transport belts, splitters etc...) whereas in Factorio you have to assemble everything from elementary ores.

The advantage is that it makes Shapez a lot more chill to play and a lot more forgiving. The inconvenient is that it's also vastly easier and it doesn't have quite as much depth. Once you reach the level 15 or so it starts getting very repetitive, since you're always doing the same thing over and over, just at an always greater scale.

Factorio is better at varying its gameplay, the game really plays differently as you unlock trains, blueprints, drones, etc...

Of course Shapez is a much younger game, so it's unfair to expect the same level of polish and variety.

At any rate there's no reason not to support a nice open source game at this price, so I definitely recommend giving it a try.

Then I think you'd be excited to know that there is a major content update coming on the 8th of October that adds logic, wires, and some other new components to make the late game more interesting.

That being said, I thoroughly enjoyed the first few hours and I feel like I got my monies worth even without the upcoming update

Interesting, I'll be sure to try it out.

And yeah I actually found the first couple of hours actually more fun than Factorio (at least once you know how Factorio works) because you get started much faster. But yeah, Shapez loses steam a lot faster too, while Factorio keeps ramping up.

I think the main problem of Shapez is not so much that there aren't logic or wires though, it's that (with the exception of blueprints) you only build disposable components. In Factorio with the exception of science packs every production artifact can be useful on its own which means that you build to build to build to build... Whereas in shapez once you're done making your "blue stars in red squares with a purple circular corner" factory then you can forget about it completely.

> Whereas in shapez once you're done making your "blue stars in red squares with a purple circular corner" factory then you can forget about it completely.

I started making generic "color factories" and "slicing" factories that could do things at scale and then just deleting the inputs/outputs and hooking them up to different sources to get the desired outcome.

I think you've hit an important point. Factorio is the widely acclaimed game it is, because it balances "work" with tools that don't make it tedious. Little things like shortcuts to "take half from a box", and "copy factory settings", to bigger things like introducing bots just as things get complex to manage on a big scale.

Everything else in the game has been done before, and will be done again. The key is getting the above right to make the game enjoyable.

Such a sandbox mode is easily setup in Factorio, as well.

You can set the conditions to anywhere from maddeningly hard, to enemies disabled, all tech unlocked from the start, unlimited resources, free construction...

Factorio is a lot more fun for me when I turn enemies off entirely. It stops being a game of extreme panic with that single change, and you can focus on resource collection and construction.

(Valid responses to that approach are valid. I'm not going to try to predict what everyone will say and address those responses before they come. Or at all.)

I had the same issue the first time around. My solution was to spend some time building a massive wall (using cliffs to help provide a natural barrier) around the perimeter with a belt full of ammo that refilled all of the turrets. The defenses rarely engaged the enemy but when they did it helped that they destroyed a segment of the wall instead of my base. Made it far more enjoyable to fight the buggies.

I disable mob griefing in minecraft because some mods caused creepers to explode on their own and they also had bigger explosions so there were holes everywhere. Creeper explosions don't drop all destroyed blocks so you will never have enough material to fill the holes even if you wanted to. Finally, because they very rarely destroy my own structures and I don't want that.

It's not like there is any point in killing creepers in modded minecraft. The vast majority of monster loot in minecraft is worthless.

If it is annoying then turn it off. It's just pointless busywork. I've played a lot of games where adding a few tweaks here and there would have made it ten times more enjoyable.

What exactly are the limitations that prevent this game from working in Firefox to the point where they need a "please download Chrome" banner? Just curious, I thought WebAssembly and WebGL were pretty competitive these days.

I am also wondering. On my Firefox, it seems to run smoothly.

I completely agree - 99% of the time, I play (and test) the game on Firefox. It looks like it runs there even better than on Chromium. I've tried to tell the main developer that it 100% works, but the badge is still there; you can ignore it.

What device are you on? I have an issue which only happens on Firefox on Mac where WebRender is disabled by default, causing massive drops in FPS. I think it works fine on Windows though.

A laptop with Intel Core i5-6200U (Linux, X11).

Chrome seems to have a more full-featured shim layer for handling older graphics drivers.

I have a netbook that Firefox won't even try to launch WebGL on. Chrome seems to run WebGL just fine, though shaders with more than about twelve instructions fall off a performance cliff.

(Add one multiplication operation over the limit, and performance decreases twentyfold. Keep the new line, but delete any other single line of code in the shader, and performance goes back to normal.)

Not sure how true this is, since both Chrome and Firefox use ANGLE as their default WebGL backend (at least on Windows).


I saw this behavior under Ubuntu.

Poking around the Firefox wiki, it looks like it uses it's own native backends on basically every platform except Windows.

I have no idea whether any of this is relevant to the original Firefox support issue.

That’s bananas. I write a lot of complex WebGL shaders, I had never heard that some devices have such a clear (and early) performance cliff.

If you're curious:

I don't have the machine in front of me, but it's an eee PC with I believe an Intel n550 CPU and an Intel GMA 3150 graphics chipset. I saw this behavior under a recent version of Ubuntu, probably 19.10.

(The "fast" framerate was something like one frame very 1-2 seconds, which was acceptable for running an image filter. The slow framerate was one frame every 30-40 seconds, during which Chrome locked up completely.)

I imagine it's doing the SwiftShader fallback, and the JIT tends to have a few specializations for "quick" shaders. Would be curious what's going on, though.

So what is the issue in this game? I presume the banner is there for a reason. I see a lot of complaints about it and if it really was something easily fixed someone should make a PR.

This is one issue making my WebGL app unusable in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=925025

This game appears to be written in JS. I've been working on a browser game recently myself and there is definitely some bottlenecks when it comes JS execution in Firefox, especially on Linux.

Not sure why you're getting downvoted since it's completely true. Making a cross-browser game is hard.

For regular apps it hardly matters but when you need to run complicated logic 60 times a second differences between browsers and even nuances in implementations between platforms (Windows vs Mac, desktop vs mobile) start to matter. And then we have all the rendering and sound caveats.

FWIW I can’t for the life of me get WebGL to work on Firefox anywhere near as good as it works on Chrome. GTS 1050 on Ubuntu.

It could also be more indirect issues not necessary related to performance or rendering. Here are a couple commits for fixed issues in Firefox:



GTX 660 on Win10 here while running Elite Dangerous parallel to it: no issues at all.

maybe because there are a lot of google links on the page: googleoptimize googletagmanager doubleclick

ctrl+left click doesn't allow me mass select stuff. The speed doesn't seem slow at all though

Same, works fine in Safari 14.0.

I gave up on Factorio when I realized that if I was gonna think that way, I might as well just write some code and make something tangible.

But if it's just shapes, and I don't have to memorize as many new concepts, maybe the load will be light enough to be relaxing like Mini Metro.

I found it hilarious how much Factorio and Satisfactory tired me out in the same way that programming does.

I love them, but the difficulty curve that they give the player just strikes too many similarities with my day job. I feel like i want to play a Satisfactory-lite. Something that gives me the fun of programming without the complexity. Help me build an abomination of complexity that i don't have to maintain. Refactoring shouldn't exist in this hypothetical game, maintenance should never be a concern - just forward movement and the joy of unburdened chaos.

> Refactoring shouldn't exist in this hypothetical game

Without refactoring the factory planning phase would be more difficult since I don't want to fill the best places on the map with unmaintainable, non scalable factories. Refactoring should be very easy, e.g. like in Factorio with construction bots: just press ctrl + x and the bad part of the factory is gone.

If you want to build an abomination, try SeaBlock mod [1] for Factorio. You don't have to refactor anything, space and resources are infinite, so just build a new factory next to the old one after you research a new tier of technology.

[1]: https://mods.factorio.com/mod/SeaBlock

I used Factorio to train myself to overcome psychological barriers to progressing my projects. It's easier to do it in Factorio because Factorio is more engaging and problems with overwhelming chaos and complexity and legacy barriers to progress and the needs for refactoring are the same.

Have you tried any of the Zachtronics games? Magnum Opus, Spacechem, etc?

Still scratches the “programming puzzle” itch for me, still complex in the later stages, but more bite sized problems so no refactoring/maintenance to speak of (unless you want to try reimplementing to beat your previous score).

I believe it was spacechem that made me long for testable components in the game, since the stage was conceptually getting several submodules to work, and then orchestrating their outputs into the final product

When I started longing for unit testing in a game, that was the end for me

I've heard Inifnifactory is like Factorio lite

You know what's funny? I'm a programmer and I think the same of XCOM 2. It's a game where everything's always on fire, everything always goes wrong for you to fix, and there's never enough time to sit back and relax. It was a game about grit and perserverance against overwhelming odds... and it felt exactly like my most previous job as as a Senior SE at a small startup.

No fucking thank you.

With factorio you can automate defenses and concentrate on building.

And here I am playing Satisfactory and wishing the fauna would attack my base :/

I wish there were a wider variety of fauna. I imagine if they made them as a moddable component you'd see the mod community add a bunch.

It's actually one of the aspects of Don't Starve that I love. Practically everything in the game is some sprites, sounds, and Lua. That makes it fairly easy to extend the game.

Satisfactory is early access, though I have no clue how close to finished they are. (Though, from what I have played -- just got up into Tier 4 -- it feels really complete)

I came to the same conclusion. But every once in a while I pop in and clear an area of bugs with spidertron and copy/paste a factory.

When I'm clearing spidertron wears many exoskeletons and I wear many lasers. When I'm building, I put spidertron back in my pocket and switch to wearing many roboports and exoskeletons.

I have put about 100 hours into the game and hitting about that same wall. But I am now learning sequential circuits, because my familiar algorithms and constructs don’t map well to the signal system in the game. So even though it’s programming, it’s a different kind.

The refactoring thing is up to you, it’s pretty easy to give up on a base and build one next door. Space is pretty much infinite.

Stretching your brain in similar but new ways in not always a waste.

Also, Factorio looks ugly as sin.

That depends on how you "code" your world. Sure, individual sprites aren't pretty, but then again it's supposed to be industrial.

Regardless, you can optimize your builds for symmetry or some other aesthetic goal and come up with some really beautiful designs. Though just like real world programming, lack of planning will result in spaghetti code.

Alrighty, what design philosophy would you apply to get millions of animated, individual objects to interact with an astonishingly high and constant tick rate on everything down to absolutely shitbox-laptops? Because that is what Factorio does!

Wow people are missing the forest for the trees. I wasn't talking about resolution or texture quality, it's the colour choices that are inherently ugly.

Mindustry is another great open source game with factory-building mechanics to get upgrades.

One great thing about mindustry is you can play on mobile. Shapez says “mobile coming soon” and Factorio would be just about impossible to play mobile

I didn't know that was open source. It is such a well made game, I recommend it for anyone who liked factorio. The campaign is a bit repetitive, though.

Side note: It runs so smoothly, I'm surprised it was made in Java as I didn't really notice any gc stutters.

Why would you expect to perceive GC stutters?

Much as I loathe Java-the-language, it continues to amuse me that the game that sold for $2.5B (and that's after extracting revenue from 60 million sales) was written entirely in Java.

I continue to suspect that GC concerns are mostly (but not entirely!) FUD. Can GC pauses cause some impact, certainly, but how much?

Console certification standards are very gruelling, so for a studio with a huge budget, no price is too high to avoid failing certification because two frames go bad in ten minutes. Otherwise, how big an issue is it really?

Minecraft's java version has (or had, back when I played it) noticeable stutter issues (not necessarily caused by the gc). The Bedrock version (written in C++) is much smoother in comparison. The Java version is only for pc/linux/mac. Bedrock is used for modern consoles and mobile. I believe they also had a separate C++ code base for older consoles.

Re: the Java version having stutter issues, hmn, fair enough. I didn't notice any, way back when I last played Minecraft.

Re: a rewrite to C++ for consoles and mobile, yeah, when you've got hundreds of millions of dollars for a game whose prototype took about two human-years to write, seems like a good choice to rewrite it for a few-percent perf gain. And, repeating myself, console certification standards being what they are, it makes sense for a company trying to ship to console to be terrified of gc stutter, even if GC only drops one frame a minute. So yes, if you have a console goal, or yes if you have almost infinite engineering money, writing or rewriting in C++ is probably a good idea.

Do you know anything about why modern console and older consoles allegedly have separate codebases?

    $ git clone https://github.com/tobspr/shapez.io.git
    Receiving objects: 100% (16655/16655), 534.19 MiB | 2.09 MiB/s, done.
wowzers, 535MB for an in-browser game? But it seems it's the res_raw, and the sounds subdir specifically, that's the source of pain:

    168K res_raw/sounds/sfx/dialog_ok.wav
    236K res_raw/sounds/sfx/place_building.wav
    280K res_raw/sprites/belt/built
    352K res_raw/sounds/sfx/destroy_building.wav
    728K res_raw/sounds/sfx/badge_notification.wav
    1.2M res_raw/sounds/sfx/level_complete.wav
     17M res_raw/sounds/music/menu.wav
     44M res_raw/sounds/music/theme-short.mp3
     80M res_raw/sounds/music/theme-full.mp3
With a 535MB clone size, how many times have those files changed?! It seems LFS was jettisoned with the explanation "Get rid of lfs files" https://github.com/tobspr/shapez.io/commit/f12cae7bd3fc3b51f... so there goes my suggestio for how to keep game binaries outside of the clone pain

What do you suggest here? Git surgery to rebase through all 1700 commits looking for large files, or blowing away the repo and starting from scratch? Neither seems particularly appealing for the benefit of saving a few hundred megabytes of developers' disk space.

If there are a finite amount of large files:


Have you considered using —depth to reduce the size of your clone?

Add a link or something to not completely turn away mobile browsers. I can't play now, but would love to see what it's like with screenshots or something...

Yeah. The mobile page is rather hostile. I went to the site with no intention to play on the phone but just to find out more about it. Instead I got turned away.

This feedback seems to be incorporated already. Quick!

I love when a game unlocks a new genre that further refines and perfects the formula... Dark Souls, Factorio, etc.

Well, to be technical, it says in the Factorio about page that it's heavily inspired by a Minecraft mod called Buildcraft, so you could trace the genre back to there.

That's super cool, I never knew this but I always thought that it was very similar to Buildcraft.

Buildcraft is a Minecraft mod that is completely different from the vanilla game. Saying Factorio can be traced back to Infiniminer is a stretch.

Bought the full version and played it for a good few hours - lovely game!

After a while it did feel slightly too similar to work though (programming), as once you unlock copy pasting of structures it's really all about optimising. Still some good fun, and definitely worth the price :)

This game costs 3,50 Euro and it took me around 15 chilled hours to play the "main missions" (up to level 19 right now). I think I never had that much fun from a game that cheap.

I also like how the game evolves over time. First you are mainly thinking about how to create specific shapes, while in the end it's all about optimization and how to get more output from your "machines".

Love it, clear recommendation!

For a game that's open source and written in JavaScript, it's a shame that the packaged, downloadable version is only available through Steam on Windows. I'd pay the $5 for a DRM-free Mac version.

You can get a DRM-free version from itch.io [1]. There is also a statement regarding MacOS, which reads:

> Mac users: I currently don't do builds for your OS since it got much harder with the recent policy changes from apple. Feel free to make a PR!

[1]: https://tobspr.itch.io/shapezio

It's also available for Linux. If the developer doesn't already own a Mac and have a paid Apple developer account they are probably not going to make back their money buying those things in order to make a Mac build.

That's a very fair point! I didn't realize there was a Linux option.

In that case, I'd also pay to be able to unlock all of the features on the web version.

Developer can certainly make build using Travis CI if someone decide to test it and contribute build configuration. It's open source after all.

The latest (as of this comment) change to package.json was a PR to turn on macOS builds: https://github.com/tobspr/shapez.io/pull/687 but unknown if the reservation was more political than technical

There are a few sites that show step by step how you can run Mac on a VMWare on a PC. Yes it disregards some T&Cs but the dev will avoid the $1000 apple-tax.

Great game. In about 4 days the wire update will be released, which includes logic gates into the game: https://shapez.io/wires/

Not even a screenshot for visitors on mobile.

Exactly. The impression was .. What a complete crap?!

To clarify. The game looks terrific!

The “what a complete crap” belongs only to the shapez.io (mobile) home page. I just can’t believe that it was designed this way.

I presume no-one has gotten around to fix it yet. Maybe they didn't have any screenshot that was a good representation when they put up the mobile warning. It's not going to happen magically by itself so feel free to send a PR: https://github.com/tobspr/shapez.io/blob/5a3807883e44640bb8a...

My point is that this is an open source effort. It's not like someone intentionally omitted a screenshot to annoy people. It needs a contributor who cares about changing the mobile prompt for it to be fixed.

I have a similar useless prompt in one of my open source games and it's just a boring issue to fix and I rather focus on the game itself.

It's a game, open source and free. This is not some SaaS trying to maximize conversions.

Doesn’t mean the mobile page couldn’t be improved upon.

No, but it doesn't warrant a "What a complete crap?!".

True true

Very fun game. One thing I liked about Factorio that I'm not sure if this has in the main version (or possibly just somewhere I haven't discovered yet - ~1 hour in), is the stats feature.

I'd like to see how many blocks of each kind I'm producing. I loved driving those metrics up in factorio, and it felt immensely satisfying to raise production to orders of magnitude higher than I previously had them once I was done with some refactoring.

Likewise, I feel it would help gameplay to understand the relative throughput of each of each of the pieces. For example, when painting it seems a few extractors are enough to provide all the paint I need compared to many extractors to get the shapes. What are the ratios here? Is painting faster than cutting? How long does rotating take, etc.

It broke the back button and insulted my browser....

“I’m sorry but this game is not available on mobile devices”

What a short sighted approach to making a website. Just because I am on a phone I don’t get to even read about the game on the site? Fuck me for using a mobile device I guess.

There is no website. What you see is a warning in the game. If someone is up to the task there's room to render more information for mobile users here: https://github.com/tobspr/shapez.io/blob/5a3807883e44640bb8a...

This website broke my browser back button. :(

Not sure about the big warning I got upfront about performance in my browser (Firefox) urging me to switch to Chrome. I ignored it and everything ran just fine.

To make the upgrades and building more interesting, it would be more of a challenge when upgraded structures require certain parts. Parts that you have to build yourself.

Fun for a while, but quickly devolves into make work.

Offtopic, I've opened the game on my macbook pro 15" 2018, the one with touchbar. I picked the web version and opened it in chromium. After about 10 minutes the laptop got unbearably hot and the fans were audible. This is a popular problem so I wanted to gather more data, are others experiencing thermal issues now as well?

Neat game. I like that it's not as heavy as Factorio.

I love that it's open source software. Games are usually challenging programming tasks. I had fun looking up how tiles are moved on bands =)

Maybe a mini-shapez game would be a nice addition for digitization consultancies, so business prospects can experience the pros of automation.

Small feedback:

I did not initially realize that the upgrades are different from the "main quest" and was wondering why all my upgrades required parts that I could not produce. Not sure if it could be clearer than having the thing I was missing smack-dab in the middle of the screen, but just sharing some experience.

There's some overlap between the upgrade and the "main quest" shapes (often main quest shapes enter upgrade recipes, as not to be immediately useless as the objective is reached). The current objective is always displayed on the left of the screen (and you can pin additional recipes there if you want).

Would be good if the website would feature a description and screenshots when accessing it on mobile.

This is a great game. My only wish is for the dev to add something to keep players continue playing. After a few hours of playing, I unlocked all levels and then I don't see a point to continue to play anymore.

I'll play it again once the wire update come out though.

I'm assuming the standalone Steam version is also using Electron?

I've never thought of it being possible to release games with Electron on Steam. I wonder if one could also wrap SVG based game into Electron and put it up to Steam

Startup Company and Game Dev Tycoon are both packaged with Electron iirc

That website is very wrong. The links aren't links and right-clicking is disabled.

Links are anchor tags and right clicking works for me on Firefox.

Bought this a while back and have so far played it for 23 hours.

Sometimes I left it running in the background just for the music :P

No belt merging, that's surprising

It's an upgrade you earn in a later level.

Anyone have any idea how much the the video ads that play on the web version pay per view?

Great stuff. I just browsed your work. Can you share what technologies are you using?

Really smooth gameplay, nice art style, satisfying sound effects -- Nice work!

This by the same guy who made diep.io? Looks like very similar style.

This game is made by Tobias Springer, author of YORG.io and YORG.io 3 (and other contributors).

Factorio seems like a nice UI to program FPGAs

Maybe for CPLDs, the abstraction level of Factorio is a bit too low for FPGAs unless you want to work entirely at the transistor level.

Does anyone know why ffmpeg is a dependency?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact