Hacker News new | past | comments | ask | show | jobs | submit login
Awesome Engineering Games (github.com/arcataroger)
340 points by solardev 11 months ago | hide | past | favorite | 142 comments



Kerbal Space Program gets high marks for giving me a great intuitive sense of orbital mechanics, aeronautical design, and space mission architectures (‘to get to space you need to go sideways, not up’), even if the actual rocket building is simplified to Lego-like to keep it fun

My light bulb moment was when I looked at the Apollo 13 orbital paths and mentally considered a few alternatives they could have done too.

https://store.steampowered.com/app/220200/Kerbal_Space_Progr...


Agreed, here's a sentiment that basically sums it up for me: https://xkcd.com/1356/

And for anyone frustrated with the premature release of KSP 2, I recently discovered Juno New Origins which scratches a similar itch. It works on both Android and PC, and SyncThing or the like can transfer saves/crafts between.


I'm not sure where Human Resource Machine would belong,

https://store.steampowered.com/app/375820/Human_Resource_Mac...

might be worth adding this and 7 Billion Humans

https://store.steampowered.com/app/792100/7_Billion_Humans/


You can get them on gog too:

https://www.gog.com/en/game/human_resource_machine

https://www.gog.com/en/game/7_billion_humans

also gog has WHILE TRUE: LEARN()

https://www.gog.com/en/game/while_true_learn

because how many games expose you to machine learning?


I disagree that While True: Learn() is a game about ML. It's _themed_ as a ML game, but it's mere a share-sorting puzzle game where you are routinely load-balancing things until it works precisely as the task expect. Driving minigame was bugged at that time I was playing the game, but from what I seen on YT videos, the whole thing is about clicking "Evolve" button.


I don't know, last I looked I haven't gotten to rosenblatts perceptron part yet, so I'm not that far.

What I do know is that it was making me solve problems - at a high level - differently than looping/if-then-else kinds of things I did in other games.

Personally, it is entertainment to me, and I won't point the finger because it was fun.


HRM was personally disappointing because of both the lack of depth (no appeal to programmers) and the sudden difficulty hike (no appeal to non-programmers). Also it had (or still has?) some game-breaking interpreter bug that made me lost my code and ultimately give up.


Both have been added, thanks!


Surprised not to see “Baba is You” on the list! Great puzzle built around programming logic. https://store.steampowered.com/app/736260/Baba_Is_You/


"Baba is You" destroyed my ego. 10/10 Great game


Or Recursed [1] if you have Scheme-stained glasses.

[1] https://store.steampowered.com/app/497780/Recursed/


What category do you think this would best belong in? I watched the trailer but it wasn't super clear to me how the gameplay worked. Looks like you can move chests and keys around, but not the room itself? What's the logic/programming angle?


So you enter a room via a chest, but can also move a chest around and even take it out of the current room. And the state of room is (mostly) reset once you enter the same room again, so you can duplicate a chest provided that it was once in some other chest. Crucially, some chest refers to the existing room---you can often infinitely recurse into the same room again and again (hence the name of the game). Each level of recursed room keeps its contents until the exit, and is distinct from other levels even though they all share the same room structure.

Scheme-stained glasses will translate these mechanics as follows: a chest is a function and a visible room is a scope formed by a function invocation. So it is obvious that entering the same chest again won't (mostly) keep existing objects and nested rooms have distinct states. As the game progresses, you will find various objects that interact with typical function scopes, and many of them have analogies in Scheme or similar languages. For example, I think there was an object that corresponds to an one-shot continuation!


Added!


Under the category of "Rube Goldberg Machines", I'd add this classic retro game for the kids:

The Even More Incredible Machine: https://playclassic.games/games/puzzle-solving-dos-games-onl...


I enjoyed The Incredible Machine as a kid, the modern equivalent (though still 10 years old) is 'Contraption Maker' - https://store.steampowered.com/app/241240/Contraption_Maker/ - which was designed by the same person. Glad to see he's still going all these years later!

This is not 'Incredible Machine' related, but while I'm here, I'm working on an engineering-adjacent game where you build and automate a zoo full of spooky monsters. Might be of interest to some! https://store.steampowered.com/app/654960/The_Eldritch_Zooke...


Currently, the list only has Steam games (not for platform favoritism, but for "Very Positive" reviews as a minimum threshold).

However, I'm not sure if it should stay that way. Maybe it'd be good to have some older games, etc.? Discussion here: https://github.com/arcataroger/awesome-engineering-games/dis...


RoboCo is a nice vehicle building game. https://roboco.co/ https://store.steampowered.com/app/1067220/RoboCo/

It has one of the best mechanism simulators I've seen in a game with all sorts of gears, differentials, slider joints, springs etc. I've found it handy for virtually prototyping, you can mock up and test machine concepts much faster than CAD software.

Oh and it has a python API: https://docs.roboco.co/latest/


Awesome, thanks! I'll add it.

May I please cite your comment as a recommendation and link to this?


Sure.


Added, thanks!


Sim Tower would deserve a spot on the list if it was more modern. It was originally built as an elevator simulation and then turned into a game, and it shows. Unfortunately, it's a 16 bit application and thus not well suited for modern systems. It was unstable even back then, time was tied to CPU speed, and playing with DosBox and corresponding bad mouse behavior (no acceleration) isn't fun.

Project Highrise seems to mostly omit the fine-grained elevator control that was at the core of Sim Tower, so the most recent successor that I'm aware of is Yoot Tower, which I didn't get around to trying yet. Unfortunately neither SimTower nor Yoot Tower seem to be available legally.


If you want pure elevators you can play https://play.elevatorsaga.com/


There's a current discussion about whether we should also make room for non-Steam games, especially older but great titles: https://github.com/arcataroger/awesome-engineering-games/dis...

If that doesn't happen, there could very well be an sibling list of "Oldies but goodies DOS-era engineering games"?


SimTower works fine in PCem with a period-accurate config.


This list lacks most of Zachtronics games, which are all related to engineering, and my favorite game dev.

I really think Exapunks, Shenzhen I/O, SpaceChem and TIS-100 should be there, in fact, Zachtronics created his own puzzle genre, "zachs-like"

https://www.zachtronics.com/


They're definitely there, just near the bottom: Under https://github.com/arcataroger/awesome-engineering-games#hac...

I think they were the first games I added while building the list, and a heavy inspiration for it to begin with :) I added a thank-you for them just now.


They are there.


I have two suggestions :

TerraTech (https://store.steampowered.com/app/285920/TerraTech/) for the vehicle building category. Very streamlined and surprisingly deep, although the campaign gameplay can be frustrating.

Workers & Resources: Soviet Republic (https://store.steampowered.com/app/784150/Workers__Resources...). A planned economy city builder. It's apparently an extremely deep game with a steep learning curve. Seems to have developed a cult following.


Added, thanks!


I didn't expect my descriptions to be included verbatim hahaha


Feel free to change them! Or I can include the default Steam descriptions


I wish that there was a separate list/category of games involving coding (block or actual).

One game that I really got into for a bit was Autonauts [1], but ended up falling a bit short of what I was really looking for (due to very awkward UI and controls).

But would really love to see more games with automation (like Factorio) but where the automation was coded. Or tower defense/RTS games (like Mindustry) or simulation (like Rimworld) where you could automate the AI.

I see some games involving coding, but mostly look like hacking games, which I think are more puzzle games, vs. sandbox.

Like I said, Autonauts would have been this, but it’s just too awkward, and not quite as deep as I was hoping.

I was excited this was such a list, until I realized it wasn’t software engineering.

(My very first experience with something close to this was FFXII, which I loved, but fell flat for many because they didn’t want to automate the battles, which was my favorite part!)

[1] https://store.steampowered.com/app/979120/Autonauts/


Look at Screeps: World [0] for depth in a programming base-builder RTS.

You write the code for each of your units, either natively in Javascript or Typescript, or via WASM you can run Rust, Python, etc. You use a private server or join a shared MMO world. There's a free sim [1] to try out the basics, though the actual game has much more depth. And an active Discord for help [2].

There's also a variant Screeps: Arena [3] that focuses on 1:1 PVP battles with ranked ladders if you prefer short-lived matches to a long-running world.

[0] https://store.steampowered.com/app/464350/Screeps_World/

[1] https://screeps.com/a/#!/sim

[2] https://discord.com/invite/RjSS5fQuFx

[3] https://store.steampowered.com/app/1137320/Screeps_Arena/


I knew about this one, but was turned off by the review talking about the base CPU isn't enough, requiring a subscription.


I get that, but IMO it's not an issue.

On one shard you can't use more than base CPU, so there's no advantage to a subscription there.

Other optional shards are almost entirely people who subscribe. Do that too if you decide to, or ignore them.


Bitburner is in the list, and it's an excellent game where you have to code (JS/Typescript). The date 2021 is wrong like many others in the page: it's probably the introduction on Stream, because the game goes back to 2016. It's an open-source game (reading the source code is sometimes recommended) and can be played in the browser at https://bitburner-official.github.io/

It's a long and rather hard game, but I liked its learning curve. You'll need to understand the way the "world of the game" works, then define and code a strategy. Then other "worlds" appear, where other strategies are required. I enjoyed playing it and I have 5k lines of TS code in my Git repository for bitburner.


Oh, thanks for that correction! I changed the date on Bitburner. If you know of any other errors, please let me know (here or as a PR/issue in the repo). Appreciate it!


> But would really love to see more games with automation (like Factorio) but where the automation was coded.

> I was excited this was such a list, until I realized it wasn’t software engineering.

SpaceChem is a programming game, and it's on the list, but it's not categorized under Hacking, Computer Science, Logic, and Automation, which would have been the correct category. It's listed under Puzzle & Casual instead. Opus Magnum has the same problem.

SpaceChem is more "programmy" than Opus Magnum. Do you like writing Befunge?


Making a new category is easy, but as you said, I don't think there are a whole lot that could go in it? I'll at least add Autonauts for now, though!

Do you think Bitburner, Exapunks, while true: learn(), TIS-100, and Screeps would belong there too, or do you think a category specifically for "Production automation via code" would be more helpful?

PS That category just sounds like work you can get paid for, lol :)


I've heard about Screeps which is close to what you describe: https://screeps.com/


It's already been shared in the comments, but look into Human Resource Machine. It's a fun little game that tricks you into learning to solve problems in assembly.


Note that it’s a very short game.


Fortunately there is 7 Billion Humans, its sequel.


What do you think of elevator logic?

https://play.elevatorsaga.com/


Civ VI (more precisely all Civ series games) should be on this list. There is a whole category of Great Engineers and the game mechanics allow these real life Engineers to aid in the construction of Wonders and triggering a win condition. City planning is a big part of the game.

Poly Bridge is also a game that is focussed on building bridges.

Kerbal Space Program is focussed on constructing a Rocket and launching it.


While making the list, I debated this in my head for quite a while and couldn't come to a good conclusion either way.

On one hand, if we add Civ, that would probably open up all 4X games (Stellaris, Sins of a Solar Empire, maybe even Age of Empires, etc.). That might be a lot of games, and arguably the "engineering" isn't a huge focus in those games. From what I remember, those games don't have a whole lot of automation/assembly lines going on, or focus on route-building (Civ has roads, but it's only a minor part of the game), infrastructure, etc. It's a pretty big-picture view nations, rather than the day-to-day nitty-gritty of running individual cities/settlements.

On the other hand, it could also be argued that settlement games are similar too, just a matter of degree or "zoom level".

I'm on the fence about it. Any thoughts?

-----

Oh, and Poly Bridge and KSP are on there already :)


>I'm on the fence about it. Any thoughts?

Discuss the thoughts at the top of the GitHub page so that your thinking and criteria are clear of why certain games are included an others are not. It's completely fine to exclude Civ -- it is kind of a unique game that aims to include many aspects of ancient and modern Civilizations from military conquest to scientistic research to engineering achievements. You could argue it's an aspect of the game but not a central game mechanic which the list aims to promote.

Don't over think it though -- it's just a list of games that supposed to be useful to whatever audience you have in mind. I'm just trying to rattle off suggestions anyhow and that makes the list better given many games were 'considered'.


Lists can't be Show HNs. Please see https://news.ycombinator.com/showhn.html.

I've taken "Show HN" out of the title now.


Oops, sorry about that! Thanks for fixing the title :)


I think Hardspace: Shipbreaker belongs somewhere on this list. (https://www.focus-entmt.com/en/games/hardspace-shipbreaker)


As much as I like the game, the engineering depth isn't that deep compared to "work fast and always know what's behind your cutting surface." (Especially since you are dismantling, rather than constructing.)

I mean, it boils down to stuff like: Systematically depressurize, get fuses before removing generators, shut off fuel before removing thrusters, have an exit path for the generator before you disconnect the coolant, etc.


Else Heart.Break()

> Else Heart.Break() is a reimagination of the adventure game – a fantastic story set in a fully dynamic and interactive world. Instead of rigid puzzles you will learn (with the help from other characters in the game) how the reality of the game can be changed through programming and how any problem can be solved in whatever way you find suitable.

https://store.steampowered.com/app/400110/Else_HeartBreak/


Thanks! Added.


I feel like it's kind of unfair to put Factorio's release date as 2020. Yes, that's what Steam says, and that's it's 1.0 release date. But Satisfactory is listed as 2020, and that is still in early access. So maybe note on the list when a game is still in early access?


What does “early access” even mean nowadays? Seems like devs can label (or not label) a game as “early access” whenever they want. I’m guessing most do it as a way to set lower expectations to minimize bad reviews.

I think Factorio was early access longer than necessary, and Satisfactory also feels like it’s well beyond “early access”.

E.g. it’s not like “early access” means that they’re still making changes to the game, and stop making changes once the label is gone. I’ve seen “early access” games get abandoned (or even never see another update), and I’ve seen games out of “early access” still continue getting several updates.


Satisfactory feels like it's absolutely Early Access: Recent Satisfactory patches have changed the tech tree, broken existing production lines due to recipe changes, and even changed the geography of the world (one of my power plants is now inside a mountain, which makes it very difficult to change anything). They're also planning to add a plot involving the alien artifacts you find across the world, although so far nothing further is known.

That seems to be the clear line between "early access" and "Updates past 1.0": are you backwards compatible? Before 1.0, you don't have to worry about that, but I'd be very annoyed to find a new mountain in the middle of my base come 1.1


Satisfactory does often feel feature-complete, they could release the game as-is and I don't think it would feel particularly unfinished.

However it is unfinished by virtue of the fact that they have a lot more planned, and it's early access by virtue of having resources in the world with "WIP" in their tool tips.


I changed it to 2016, which is when Wikipedia says it entered early access. I also added an early access tag (thanks to a PR).

Sorry, the dates weren't meant to be a competition, and I just pulled whatever Steam listed it as! If you know of any other games that have an unfair date, please let me know :)


My original favorite engineering "game" was Garrys mod, which is basically just a playground using the Half Life 2 physics and game engine. I had great fun slapping wheels on something like a bathtub and making a makeshift car, or making silly Rube Goldberg style machines using levers, ropes, thrusters, etc. Not a typical game since it didn't offer any typical goals or levels outside of have fun and be creative, but that IMO only heightened the inspiration to engineer stuff to play with.


Added, thanks!


An old old one worth mentioning https://robotodyssey.online/

It’s abandoned and available for dos box as well but the web version is easy to get started with.


The list currently only has Steam games, but this is up for debate: https://github.com/arcataroger/awesome-engineering-games/dis...

If these older games don't get added there, it might be worth creating a sibling list that this one can link to?


ahhh, I didn't realize steam only. I don't think you'd find many dosbox games that really fit the theme. Robot odyessy is coming up on 40 years old.

but this ``` I say keep it to just Steam games. That way if nothing else it has the focus to be an amazing utility and still has plenty of items to curate. Once the criteria becomes "everything under the sun" it becomes so huge that it's likely to have a low signal to noise ratio for usefulness. ```

seems like a pretty reasonable stance. Completely fair to say if people want old games, go look for old games.


Brilliant! I remember playing this as a kid on my Apple II+. I can’t remember how many hours it took me, but I eventually managed to make it through the entire thing. Many happy memories of this game helped lead me to a career in software engineering.


And its simpler predecessor (IIRC) Rocky's Boots.


HN, can you help me find a game I played in the early 2000s?

It was a browser game. You had a grid (pretty small), and components to put in like conveyor belts.

Each level had a winning condition, of course increasingly complex.

The goal of the game was, as much as I can remember, teach you some basic programming concepts (like boolean gates).

I faintly remember some red and yellow lights? I might be wrong.

I remember getting addicted to this game, then lost track of it forever.



It is! Thanks!

I see there's also a 2022 remake, uh.


Honorable mention: tech-focused Minecraft (Java!) mod packs (don't laugh), if that floats your boat


The Factorio founder stated on Reddit that "Modded minecraft, mainly buildcraft/industrialcraft, was huge inspiration to create Factorio." (A link to that Reddit post is the first citation in Wikipedia's article on Factorio.)

The entire factory game genre owes its existence to Minecraft mods.


Java MC industrial mods have been the granddaddy of industrial games since 1.4.7. Nothing scratches the itch quite like a 4 story chemical plant with hundreds of regulated processes.


That sounds rather interesting. Link to some examples of said chemical plants?


I don't have any I can personally vet on the public internet. Most of what I've seen is on the GTCEu discord. Image searching "nomifactory" yields some stuff that looks about right. "Lawn base".

https://i.redd.it/dpcixz3z60d81.png

Back in the 1.4.7 days the biggest packs out there were kitchen sink packs like MindCrack with GT3 being the biggest single mod. The gregtech family tree has grown substantially and the largest branches are much more intricate than what used to be around. On par with Krastorio2.


Even unmodded Minecraft would belong on this list. Redstone contraptions and production automation can be part of base building in the basic survival game. The list has a section for Open-World Survival Sandboxes - Minecraft is one of the originators of that genre.


Yeah, the page says "The game that created the genre" about Factorio, which isn't really true - the factorio-style gameplay was preceeded and inspired by tech mods in Minecraft.


And the Minecraft mod packs have a much higher complexity than Factorio. See https://m.youtube.com/watch?v=jYSfDcbY0w0


Thank you. Corrected this.


Included in most of the tech mod packs but deserving of a special mention is ComputerCraft, which allows you to program computers and robots in Lua that can interact with the Minecraft world!


CC is the reason I can write some Lua, at least after the initial intro when I was fumbling around in the TES 3 editor. I went down that rabbit hole and build some far too complex one-off things. One of them even called out to a PHP backend for a shared database. I think I started hacking on a system that could propagate updates between CC nodes in a sort of mesh network (wireless CC networks) before just using the database backend. Luckily I lost interest before writing a whole network layer.


The list currently only has Steam games, but maybe it shouldn't? Up for discussion right now: https://github.com/arcataroger/awesome-engineering-games/dis...


Does anybody know of any good spiritual successors to Robot Arena 2? I loved this game growing up and it very much fits into this awesome list somewhere.

https://en.wikipedia.org/wiki/Robot_Arena_2:_Design_and_Dest...


I haven't played that particular one, but I think many of the games in the category "Vehicle Builders" might be similar? https://github.com/arcataroger/awesome-engineering-games#veh...

My personal favorite was Robocraft, but it didn't make the list because its reviews were only "Mostly Positive":

https://store.steampowered.com/app/301520/Robocraft/


It's not a computer game, but Car Wars up to version 4.

https://boardgamegeek.com/boardgame/13354/car-wars-compendiu...

Players spend some "homework" time designing vehicles, then they test them in turn-based combat, then it's back to the drawing board to revamp designs. For every hour of combat play, it's probably at least one hour of design time, tweaking designs within constraints . . .

Starting with version 5, they started dumbing down the rules and focusing more on faster combat and moving around larger toy cars instead of designing anything. Because who wants to play a geeky engineering game, anyway? (me)


Possibly add the Incredible Proof Machine (https://incredible.pm)


So far the list only includes Steam games, but there have been many requests for older games, browser games, mobile games, etc.

There is a discussion about it here: https://github.com/arcataroger/awesome-engineering-games/dis...

Maybe there could be a sibling list that compiles all the non-Steam ones?


along these lines, the Natural Number Game ( https://adam.math.hhu.de/#/g/hhu-adam/NNG4 )

(the ceiling on the game this is an installment of is pretty high, eg https://terrytao.wordpress.com/2023/11/18/formalizing-the-pr... )


Less math-focused, but same idea: https://nandgame.com


incredible.pm is also a skin on a theorem prover.

I had a lot more fun with incredible.pm; a lot of the difficulty in the Natural Number Game was in the UI being unclear. For example, I ran into a case where I had y <= d and I wanted y <= d + 1.

The two relevant theorems here are the transitivity of the <= relation and the fact that n <= n+1 for all n. Both of those were in my "inventory". But I had no way to apply them.

In incredible.pm, you'd have a block for "n <= n+1 for all n", you'd run that through a universal instantiator, and you'd get d <= d+1 as a result. Then you could use that as input to the transitivity theorem.

But in the Natural Number game, where I had my hypothesis y <= d and my goal y <= d+1, there was no way that I was aware of to introduce the result d <= d+1, even though I had access to a theorem proving that specific fact. The solution turned out to be to say "apply le_trans" [to the goal y <= d+1], which gave me the intermediate goal y <= ?succ.inr.h.y . Hovering that upper bound then says "[This] Parses a synthetic hole [...] This syntax is used to construct named metavariables."

Then, guessing something that might work but that the game certainly doesn't teach you to do, I closed that goal by calling "exact" on my hypothesis that said y <= d.

This works† and unifies the value d with the named metavariable ?succ.inr.h.y . But I would not consider it a triumph of user experience.

incredible.pm is also better in that it provides a playground where you can set up your own proofs of arbitrary theorems.

† Well, the call to exact works. The call to apply le_trans split my goal "y <= d+1" into three goals, which were "y <= ?succ.inr.h.y , ?succ.inr.h.y <= d+1, and, for no reason I can imagine, ℕ. However, proving the first two goals completed the overall theorem, so I still don't know what it meant to have a third goal of "ℕ".


I agree that incredible.pm is much better as a game; the NNG feels more like "as thin a veneer over Lean as they could get away with". Also, I was much less frustrated with the Lean 4 NNG because I'd already played "guess the verb" with the Lean 3 version, and I consulted the Lean docs at times; it's definitely not self-contained the way incredible.pm is.

(that said, I liked NNG better because (a) the sequence felt more like actual theory* building than figuring a few cool puzzles, (b) I much prefer the textual input —even with the "guess the verb" problem— to clicking and dragging wires and blocks, and (c) I feel like I've learned something about how to use Lean, while it seems unlikely I'd be able to transfer much from the UX of incredible.pm — maybe if I'd tried 'modding' it I'd feel differently?)

Maybe a fair way to put it is that the NNG is like ice hockey: for it to be fun at all you must first enjoy skating?

* the old, Lean 3, NNG had as its crux "trichotomy for ℕ"; that was very satisfying to finally prove!


> (a) the sequence felt more like actual theory* building than figuring a few cool puzzles

There is some of this in incredible.pm, and there's some of it in NNG. I made very little use of previous results in either one, except for a few levels of NNG that shame you for not generating simple proofs from immediately previous results.

incredible.pm's "gameplay" element where you're challenged to prove the theorem in as few statements (blocks) as possible works against the idea of developing a bank of theorems and then applying those theorems to prove other theorems. I'm not so fond of it.

> (b) I much prefer the textual input —even with the "guess the verb" problem— to clicking and dragging wires and blocks

That's fair. The bigger issue I have is that in incredible.pm you're free to make statements if you think those statements will be useful to you, while NNG is very strict about making you work with only the statements you're given.

In fact, there is one level in incredible.pm where I solved it in what was listed as the minimum number of blocks, but one of those blocks was a label. The label block is not doing any logical work, but sure enough, if I deleted the label block, incredible.pm was unable to unify the output that I had routed into the label block with the input that I had routed the label block into. So it would appear that at least one of the levels in incredible.pm specifically expects you to introduce your own statement with your own phrasing as an aid.

> (c) I feel like I've learned something about how to use Lean, while it seems unlikely I'd be able to transfer much from the UX of incredible.pm

I should be fair to NNG: I had extreme difficulty using existential statements correctly in incredible.pm, and more moderate difficulty managing to correctly use universal generalization. I think solving those levels gave me at least a decent mental model of how the theorem prover was handling quantifiers internally, and that should have transferred to a textual interface -- although it hasn't really stuck in my mind.

> the old, Lean 3, NNG had as its crux "trichotomy for ℕ"; that was very satisfying to finally prove!

That's still present in the current NNG. It is the proof I spent so much time complaining about above, the final level of Inequality World. (Or rather, that level wants you to prove that any two natural numbers are comparable, but you must use the trichotomy in order to do that, and you can't use what you haven't proved.)

--------

I think NNG would benefit a lot from including more difficult proofs. (And from letting you introduce your own intermediate goals!) I was proud when I finished the proof that ∀x.(r(x)→⊥)→r(f(x)) ⟹ ∃x.r(x)∧r(f(f(x))) . I had to think about what the theorem was saying and write down a plan of attack. NNG doesn't really have anything like that.

--------

Something I really did like in NNG was the remarks about (and eventual proof of) injectivity of the successor function. It's very interesting to me that the proof is based on, as NNG describes it, "the mathematically pathological pred[ecessor] function" - but only on cases where the pathology doesn't exist. (The proof involved introducing the function, making it inaccessible to the player, and instead giving the player the theorem "pred succ n = n", which is true without any exceptions.)


> [Trichotomy]'s still present in the current NNG

Cool; it wasn't there yet 6 weeks ago: https://news.ycombinator.com/item?id=37880788

"pred succ n = n" reminds me a lot of def'ns of the form "(left p, right p) = p"; I'll have to think about that a bit. Injectivity of succ is, I guess, what distinguishes ℕ from similar constructions with different characteristic? (did I just think that, or am I parroting NNG?)

> ∀x.(r(x)→⊥)→r(f(x)) ⟹ ∃x.r(x)∧r(f(f(x)))

I think I gave up on incredible.pm too early (although I did skip ahead for SKI) ... I'll have to go back and try that. It seems to have a bit of the flavour of "all people who claim to be Sir Anthony Charles Lynton Blair KG are liars"


I've been thinking more about succ_inj and I keep thinking Peano was right (injectivity of the successor function must be an axiom) and the NNG is wrong (it's not a theorem).

NNG gives you the pred_succ theorem, and calls it a theorem, but I don't see how it's supposed to be proved. Suppose the successor to 9 were 3. What's stopping that from being the case?

I don't see that pred_succ ("pred succ n = n" for all n) is a lemma from which succ_inj can be proved - it looks to me like pred_succ is logically equivalent to succ_inj. Each is true if and only if the other is.

Here the problem is not so much that the pred function is mathematically pathological as that the axioms, without the axiom that the successor function is injective, do not allow us to define a predecessor function at all. The guarantee that when, you call succ on nine, you don't get a number that is also the successor of some other number -- which is necessary in order for pred_succ to be a valid theorem -- is precisely the statement that succ is injective.

Am I missing something?


The equivalence sounds reasonable to me; it ensures that 0 is the start of a unique head. Does it also prevent a forward fork, to two separate tails?

I was very wrong earlier: characteristic is taken care of by 0 not being a successor; injectivity of succ also allows circular pseudo-nats.

PS. found Peano (1889): https://archive.org/details/arithmeticespri00peangoog/page/n...

  his:
  7.  a,b ∈ N .Ↄ: a = b .=. a+1 = b+1
  8.  a ∈ N .Ↄ. a+1 -= 1
  are our:
  7.  a,b ∈ ℕ ⇒ (a = b ↔ S a = S b)
  8.  a ∈ ℕ ⇒ S a ≠ 0


> Does it also prevent a forward fork, to two separate tails?

This is prevented by saying that the successor function is a function. If a = b, then S(a) necessarily equals S(b). (The other half of axiom 7, the statement that when S(a) = S(b) then a = b, is the definition of an injective function. It's what prevents us from saying that the successor to 9 is 3.)

There is a fun image of dominos on the wikipedia page for the Peano axioms that explains how the structure of the natural numbers is constrained by the axioms.

A backwards loop from a number in the chain of succession from zero to an earlier number in the same chain can't happen because the successor function is injective.

A backwards fork (two chains meeting) can't happen for the same reason.

A forwards fork would be invisible to us as long as our only available tool is the successor function, which will always choose the same branch of the fork. This essentially means that forwards forks don't exist. There could be a larger structure in which it is true that e.g. the "9" node has one outgoing edge pointing to "10" and another one pointing to "green", but only one of those edges can be the edge picked out by the successor function, so our structure would only include one of the "10" or "green" nodes.

A loop parallel to the chain of succession from zero [imagine the normal chain "0, 1, 2, ..." alongside the three special elements 甲 乙 丙 arranged in a three-element circle] is ruled out by axiom 9, which says that any set that contains the chain of succession from zero contains all the natural numbers.

thinking out loud...

we are free to define a predecessor function by saying it is the inverse of the successor function. That definition would immediately prove the pred_succ theorem, as long as the successor function is invertible. Half the definition of being invertible is being injective, so this doesn't let us prove succ_inj in a non-circular way.

I don't know how else we would attempt to define the predecessor function, given the algebraic structure we're working with where all values take the form "0" or "succ n".


FWIW I just plug'n'chugged le_total without needing le_trans:

  induction y with d hd
  right
  apply zero_le
  cases hd with hdl hdr
  left
  cases hdl with e he
  use succ e
  rw [add_succ,he]
  rfl
  cases hdr with w hw
  cases w with z nz
  left
  use 1
  rw [hw]
  tauto
  right
  rw [hw,add_succ,← succ_add]
  use z
  rfl


i'd recommend ComPressure (https://store.steampowered.com/app/1528120/ComPressure/) and Infinite Turtles (https://store.steampowered.com/app/1952740/Infinite_Turtles/), though the latter still lacks enough reviews to fit the Steam rating requirement.

I'm also not sure on where something like the Poly Bridge series would fit.


Thank you! I added ComPressure. Polybridge is already on there, under -- waddya know -- Bridge-Building :)

FYI, there is a discussion about whether we should expand the list inclusion criteria: https://github.com/arcataroger/awesome-engineering-games/dis...


Not a Steam game, but an amazing programming puzzle game that I keep looking for a modern version of.

Year: 2001

Title: Colobot

Link: https://colobot.info/

My description: Use code to direct wheeled, hover and flying bots to construct, combat and explore.

Description: Colobot (Colonize with Bots) is an educational, post apocalyptic real-time strategy video game featuring 3D graphics, created by Swiss developer Epsitec SA. The objective of the game is to find a planet for colonization by the human race by establishing a basic infrastructure on the surface and eliminating any alien life forms endangering the expedition. The game takes place on the Earth, Moon, and seven fictional planets. The main feature of the game, which makes it educational, is the possibility for players to program their robots using a programming language similar to C++ or Java.


Missing from Open-World Survival Sandboxes: Astroneer.

Incidentally some of the best sound design and music I have ever heard in a video game.


Shapez.io is a great introduction to factory building games. It’s basic and visual enough to be immediately understandable but there’s a lot of room for advanced builds. It is getting a sequel soon, too.


It's in there! (as Shapez) I should add the free demo at shapez.io though.

Can't wait for the 2nd one :)


Is there a mobile app version of this list? Someone should create it?

Mobile apps , I'm tired of playing bridge builder.


> (2022) Dwarf Fortress

I feel a little attacked by the 2022.

Nevertheless this list is awesome.


Humbly suggesting “Automation” (https://en.m.wikipedia.org/wiki/Automation_(video_game)) for the cars category, because not only is the engineering side of things relatively in depth, you can export your designs and drive them in another game which is heavy on physics simulation, BeamNG.


+1, Automation+BeamNG combo is very, very playable!


There are two trends I'm tracking:

1. AI agents getting better and better at increasingly complex games

2. Simulations and games get increasingly closer to real engineering

It'll be an interesting when these lines intersect. It'll be possible to cast real engineering challenges as games to enable AI agents to play them

With AIs consistently beating humans at games, it's only a matter of time before games become a valid UX for real engineering.


There seems to be a fair bit of overlap with "base-building games" (a genre I'm fond of), including base-building games which I wouldn't necessarily describe as engineering games but just more generally management/simulation/strategy games (e.g. Evil Genius, Prison Architect, etc.) - Rimworld is on the list but feels a lot less engineering-oriented than say, Factorio, but on the other hand, (Open)RCT2 is missing which is surprising.

Basebuilders seem to divide into two rough categories: ones where things you build appear immediately (e.g. RCT2), and ones where minions have to go and install what buildings you command to be installed (e.g. Evil Genius, Factorio's robots).

Recommendations for interesting basebuilders are always of interest.

While we're on the subject: games with level editors (particularly those with some kind of scripting system) are kind of interesting as even if the gameplay isn't "engineering", you can get sucked into level design. DROD comes to mind. A list of games with level editors would also be interesting.


Not sure if its exactly relevant, but I would also add From the Depths as well.

It has a very steep learning cliff, but once you learn it you can build all kinds of war machines, from ships to robot walkers and spacecraft. And you create the individual systems which your vehicles use as well, such as steam engines, weapon systems, AI, etc.

Its a game I've spent many hours in.


I wish there was a list of non-unity sim games. I hate hitting the performance wall so soon on most of these games


> Theme Parks & Dungeons

> A genre started by RollerCoaster Tycoon back in the 90s

No love for "Theme Park"?

https://en.wikipedia.org/wiki/Theme_Park_(video_game)


For Demolition category, there's this old N64 game which has stuck in my memory: Blast Corps


Hey folks, this blew up way more than I expected :) Glad so many are interested.

I've merged all the PRs on Github and addressed about half the comments here on HN. I'll go through the rest ASAP. Thanks so much for all the contributions!


I feel like this extends to other genres but in a more abstract way. I have spent a long time engineering a build order in an rts or a load out in an MMO (I'm thinking EVE Online as an example)

Either way, thank you for putting this list together


A suggestion under factory automation: Techtonica https://techtonicagame.com/

If you like Factorio or Satisfactory, this will scratch a similar itch.


No mention of "Core Wars" (http://corewars.org/) or "Robot War" (https://www.mobygames.com/game/12059/robot-war/)?


Human Resource Machine and 7 Billion Humans are great on iOS.


Check out Modded Minecraft Expert Modpacks like "Create: Above & Beyond", "Project Ozone", "Nomifactory" and so on.


The most recent Zelda game (Tears of the Kingdom) has a pretty fun vehicle builder component. People have made all sorts of crazy things using it.


Oxygen not included is very cool by actually requiring logic gates to do anything sophisticated and also teaching a lot of scientific concepts

The systems you can design in ONI can be crazy complicated and it is just a joy when it works. I derive a lot of satisfaction from just optimising systems in that game even though it is not really required difficulty-wise to do optimisation


Not exactly "engineering", but I might add an adjacent category of puzzle games that hurt your brain:

- Baba Is You

- Stephen's Sausage Roll

- Jelly no puzzle + Yugo puzzle (sequel)

- Braid

- Snakebird


Snakebird's trailer reminds me a lot of Room to Grow.


- Patrick's Parabox


It's missing RuckIngenur, for those who like electronics and hardware hacking.

https://www.zachtronics.com/ruckingenur-ii/


A few recommendations from my library:

Wrench (mechanic simulator similar to Car Mechanic Simulator, but more realistic)

Tank Mechanic Simulator (similar to Car Mechanic Simulator, but with tanks)

Retro Gadgets (build, code and customize old school gadgets)


Great list, thanks! Does anyone have a recommendation of a semi realistic house building game for a teen?

My daughter loves Minecraft and the house building games on Roblox, but trying to find something a little deeper but still fun..


If it’s the interior design aspect that’s enjoyable, we’ve gotten a lot of mileage out of the Animal Crossing expansion pack

https://animalcrossing.nintendo.com/new-horizons/happy-home-...


Depends how realistic you're looking for, but The Sims 4 has a pretty comprehensive home-building aspect. You can also pick up the original The Sims or The Sims 2 for extremely cheap at thrift shops (since the series is so popular).


Does oldie classic like Core War belong to the list? https://corewar.co.uk/


For the city builder genre

Urbek City Builder

It has a pretty interesting style of how things sort a 'fit' together. Its kinda almost puzzley at times, but I think it'd fit on that list.


Detroit should be on this list. I've been trying to find it for years, had it when I was young. It was a car design and car company simulator.


It looks like it exists on myabandomware.com [0]. I opened it in dosbox and it seemed to work.

[0] - https://www.myabandonware.com/game/detroit-1ln


Thank you!!!


Timely as there’s a Steam sales starting on the 21st :)


Not sure where Railgrade fall there, might not be abstracted enough for the puzzle section. Maybe the route management section?


Universal Paperclips and Adventure Capitalist are more about finance, but that’s still a key part of engineering right?


Transport Fever 2 if you like choo-choos.


Very happy to see OpenTTD on this list. It's been loads of fun since the original in the 90s.


Add Cosmoteer, where you build and fly a starship: playing it makes me think of John Boyd


First person puzzle games are missing, especially Antichamber.


Suggestion: Hydroneer


I would have added the Portal games to the list.




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

Search: