Show HN: I made a game where you build a CPU from logic gates

select.supply

73 points by laurentiurad 10 hours ago

I built ChipBuilder to make computer architecture more approachable through interactive puzzles.

You start with basic logic gates like AND, OR, and NOT, then gradually combine them into adders, multiplexers, memory, an ALU, and eventually a complete CPU. Once you've built the hardware, you can write assembly programs that run on the processor you created.

The game is inspired by courses like Nand2Tetris, but everything runs directly in the browser with a visual circuit editor, simulations, and progressively harder challenges.

ura_yukimitsu 6 hours ago

That's a cool idea for a game, but the UX feels quite unintuitive and unpolished to me which discouraged me from playing past the first couple of levels. A few suggestions, if I may:

- You should be able to drag/drop elements from the sidebar onto the canvas

- Wiring shouldn't be a separate tool, and you should be able to drag/drop wires instead of having to click on the two endpoints separately

- You should be able to delete the currently selected gate with the delete key, and the "delete" button in the toolbar should delete the currently selected gate instead of it being a separate tool

- There's not enough contrast between the grid pattern and the background of the canvas

- There seems to be some problems with moving overlapping components

- There's no way to move around the canvas

- The progress doesn't seem to save and there's no way to skip levels

  • artemonster 6 hours ago

    pretty interesting that such lazy slop vibecoded into existence by "a software engineer passionate about well-crafted products."

    • orphea 6 hours ago

      Oh, I recognize the author's nickname. The guy is using HN to promote his vibe-coded projects.

      It is such a shame that the words "passion" and "well-crafted" are being actively devalued.

  • laurentiurad 6 hours ago

    Thanks a lot for your time in providing the feedback! I think every point is valid so will try to implement them.

    • Sohcahtoa82 5 hours ago

      At least for the early levels, the input and output nodes should start already laid out.

      I'd also like the ability to skip levels. I already know how gates and full adders work. It's just drudgery to get through them.

      • laurentiurad 5 hours ago

        Thanks! Just added the possibility to skip between levels. Also you can wire without manually switching between wire/select buttons.

      • Joker_vD 3 hours ago

        > I already know how gates and full adders work.

        But do you know how an 8-bit Kogge-Stone adder works? Most of the sources I've read are quite unhelpful. I particularly "like" the ones (e.g. Wikipedia) that use some random pictures/diagrams from who knows where that either 1) have completely different symbols from each other and from what the text claims the symbols on the pictures are (e.g. the text talks about black and grey boxes, the pictures have red and yellow triangles); 2) shows a different kind of adder — the article about Brent-Kung adder has a Kogge-Stone diagram instead; 3) very obviously doesn't work the way the text claims it works/does what the text claims it does.

  • danbruc 5 hours ago

    To add to this.

    - allow drawing wires backwards from sink to source

    - allow connecting inputs

    Also there is a problem with the tests and the simulator that showed up in the SR latch level. Despite having the correct circuit, the tests failed until I swapped the two NOR gates. I can not reproduce it, but I would guess it has something to do with the component placement order, the update order of the simulator, and how the tests are executed. As the NOR feedback loop has no well-defined initial state, it probably settled in a placement order dependent way that made the tests fail. Maybe Q was already 1 and the test looks for a 0 to 1 transition when enabling S?

sk1pper 7 hours ago

I went through Turing Complete up to a working CPU and found it incredibly fun. I then went on to build my own RV32I (simplest RISC-V instruction set) core in Verilog - if you keep a simple single-cycle design, it doesn’t end up being super complicated and not a ton of code. I’d recommend the exercise for anyone wanting to learn about how CPUs work.

Also, for people interested in this type of thing, look up Ben Eater’s 6502 videos. Wiring up a 6502 (old microprocessor) to ROM and RAM on a breadboard; later he builds a “world’s worst video card” - more like a VGA display output card, still pretty cool.

  • XorNot 6 hours ago

    +1 for Turing Complete, it's absolutely marvelous.

  • octobus2021 2 hours ago

    My 14 year old son went further in the Turing Complete, where the game shows you how to "invent" Assembly language, and he completed couple challenges after that (like writing Assembly program to make a robot controlled by the computer you built in the game solve a randomly generated maze).

    FYI the author started publishing updates again; looks like he took 2 years to rebuild the game from the ground up and instead of launching it as "Turing Complete 2" he chose to simply publish it as breaking update, and is now continuing with updates to add features.

octobus2021 2 hours ago

I have no comment about this particular product, its features or its author, you can read other comments if you want.

I advise the readers to check out not only Nand2Tetris but also Turing Complete game on Steam (and hopefully back on GOG at some point). The author came back to it and started posting updates a few months ago after almost 2 year silence. He rebuilt the engine with a huge performance boost and is now adding more and more features.

Not affiliated with him in any way, just think the game is great and his dedication to it deserves respect.

ksdme9 7 hours ago

Since I don't see it mentioned here, Turning Complete is also a game along the same lines and really fun. https://store.steampowered.com/app/1444480/Turing_Complete/

I have gotten my nephew into it with some success as well.

  • prologic 7 hours ago

    That links has an invalid or expired cert. EDIT: Thanks for fixing the link!

    • dahart 6 hours ago

      Works for me without issues. Unless it was edited, I assume the Steam Store is pretty unlikely to have expired or invalid certs.

  • dahart 6 hours ago

    Turing Complete was super fun and is amazing. It felt like a years worth of computer engineering class packed into a week’s worth of well designed gameplay. IIRC someone built a working 32 bit RISC-V CPU with it. (Maybe this one? https://github.com/BenjaminSchaaf/turning-complete-riscv)

    My child just informed me that Turing Complete has just released a major redesign and that the engine is even faster than before.

sebastiansm7 8 hours ago

I wasn't able to wire the inputs to the gate, so my career at ChipCorp ended at level 1.

Also it would ne nice to have a level zero where you create the gates from transistors.

  • azatom 8 hours ago

    -1: build transistor from atoms

    -2: ...

    :)

    (ofc the UI could be more simpler but I've found the wiring)

    • karolist 7 hours ago

      -4: initiate a Big Bang to generate the spacetime substrate

  • Elorth 7 hours ago

    Want transistor logic? Hard Chip on Steam. Starts you at NMOS and PMOS and lets you build up from there.

agent_z 7 hours ago

I wonder how people go through building such a project without ever hearing about NANDGame or Turing Complete.

  • baron3dl 7 hours ago

    For the lazy, here's a link https://www.nandgame.com/

    When I played through this last year it was surprising how much came back to me from the courses I took in college, and haven't touched at all in 20 years.

  • dirkc 7 hours ago

    This immediately made me think of nand2tetris.org, but as a game. Is that what NANDGame is?

    • falcor84 7 hours ago

      Yes, pretty much, but stopping at the cpu level (about the first half of the course).

  • ChickeNES 1 hour ago

    Or Silicon Zeroes, or MHRD, or a bunch of other games that do the same thing.

vitorfblima 6 hours ago

Forgive me if I'm wrong, but I just can't look at "AI aesthetics" anymore.

  • laurentiurad 6 hours ago

    Thanks for the feedback! I am curious what made you think it's AI? My experience with using LLMs is that they usually use dark mode + neon + gradient a lot, but nothing like the design you see on my website. I'd highly appreciate if you share what elements you thought as being vibecoded or made with AI.

AspisAiantos 6 hours ago

I like this idea a lot! I think that there are a few small details that would improve the user experience if you're looking for feedback.

1. Please please please apply `user-select: none;` to everything within the circuit canvas. Almost more often than not I would end up dragging text that had been highlighted rather than any of the actual gates or inputs.

2. Having to switch between 'select', 'wire', and 'delete' modes is a bit cumbersome.

3. Absolutely no progress seems to be saved on navigation or page reload. I've completed the first level several times and if I go anywhere else or reload after completing it, the site shows zero levels completed and shows the tutorial again.

jodacola 3 hours ago

Really cool. I'm enjoying this.

One bit of feedback: I'd love to be able to stare at the tests while I'm playing around with the logic gates; every time I switch to the tests tab then click around on the "board," the tabs switch back.

Kirby64 6 hours ago

> You start with basic logic gates like AND, OR, and NOT, then gradually combine them into adders, multiplexers, memory, an ALU, and eventually a complete CPU. Once you've built the hardware, you can write assembly programs that run on the processor you created.

No you don’t. Once you get to memory you no longer have any tests that do anything and it’s impossible to actually progress.

rsprinkle 4 hours ago

Wow, sounds identical to "Turing Complete".

prologic 7 hours ago

To the author of this; Are you able to make it save your progress so you can come back and continue playing?

splittydev 7 hours ago

Cool idea, but having to switch between select and wire makes this incredibly tedious to use. Just use wire mode from dragging from a connection and let people draw "away" a wire from a connection and let go to delete it? Would be much more intuitive imo.

aappleby 2 hours ago

Why does "Browse" at the top take me to what looks like a scam shopping site?

The "Pipelining" level is completely broken - big completely empty grid, no components to place, and you actually think you're going to learn _pipelining_ in a _schematic editor_?

This is a vibe-coded slop project. Not interested.

  • aappleby 2 hours ago

    Oh lord, I went to the "ALU" example, did absolutely nothing, clicked "Run Tests" - YOU WIN

    You didn't test this thing at all, did you?

    • laurentiurad 1 hour ago

      I really don't appreciate this Reddit-like snarky attitude and I usually do not respond to people like you and to ill-intentioned messages like this one, but this time I will, since you accuse me of scamming people, which is a big deal.

      The post is about the game. When clicking on the Browse button and assuming you can read, you will see a collection of well-crafted products. I am not selling those myself. The website does not process payments, does not ask for donations, nothing like that.

      Saying that the ALU example does not have tests is just a lie. I am not sure if you are a liar, or just frustrated about something, or maybe you're having a bad day, but for a person bragging about being an ex-employeeID at a big-tech firm and a GH-contribution-green-dots chaser, you should be more humble and think twice before accusing someone of doing illegal stuff.

wateralien 7 hours ago

Very nice. Tips: You don't need the different design states (select, wire, delete) just have one and make it work contextually. Also remove the play button. Just have it always playing.

  • laurentiurad 6 hours ago

    Thank you for the feedback! Will implement it today

1718627440 7 hours ago

Would be nice to be able to skip the first levels, because learning an AND gate is not necessarily what everyone needs as first steps, regarding their skill level.

  • laurentiurad 6 hours ago

    Noted. Will add a skip mechanism too.

shadab_khan_127 9 hours ago

I like it, it's fun Why you decided to keep wire button on top ? can't we do something like clicking on the dot will trigger wireing

prologic 7 hours ago

This is cool! I like it! Let's see if I can get past the NAND level!

  • prologic 7 hours ago

    I got all the way to a Full Adder and got stuck, then lost my progress :/

rho4 6 hours ago

3 next clicks in missing a back button

azatom 8 hours ago

you maybe not select accidental but others do:

user-select: none;

drob518 7 hours ago

Doesn’t handle drag and drop on iPad.

mrkO99 8 hours ago

Got stuck at the NAND gate level.

  • prologic 7 hours ago

    Stick with it! Hint: A NAND gate is an AND + NOT circuit. It outputs a 0 when both inputs are a 1, otherwise outputs a 1.

  • namero999 7 hours ago

    Same, I built a correctly-working AND gate made only of NAND gates but the tests don't pass.

    • Kirby64 6 hours ago

      The SR latch logic is also incorrect. Cross-coupled NORs had to be configured illogically to actually pass the tests and output correctly.

      Also, the later puzzles (starting with memory) don't have any real tests. Seems like it just doesn't really exist past that point.

      • asterisk_man 6 hours ago

        What configuration did you use to pass the test? I guess I couldn't think illogically enough.

        • Kirby64 6 hours ago

          I removed one of the cross coupled outputs (only one NOR was connected to the other, not both outputs cross coupled) and magically it worked. Didn’t make any sense from a logic perspective though.

serhack_ 7 hours ago

wasn't there recently another game that was starting with mosfet/pmos?

  • uranoxyd 7 hours ago

    I'm not sure if this is what you mean, but Zachtronics has a minigame in its game "Last Call BBS" where you have to build ICs at the silicon level.

    www.zachtronics.com