| ▲ | Show HN: I made a game where you build a CPU from logic gates(select.supply) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 99 points by laurentiurad 3 days ago | 69 comments | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 3 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | sk1pper 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | ksdme9 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | agent_z 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I wonder how people go through building such a project without ever hearing about NANDGame or Turing Complete. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | sebastiansm7 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | vivzkestrel 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- added to my list of stier blogs, here are some entries from it - https://jaso1024.com/mvidia/ same thing but done differently - https://nandgame.com/ everyone knows this one - https://radarlaboratory.com/ shows how radar works like your game | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | octobus2021 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | vitorfblima 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Forgive me if I'm wrong, but I just can't look at "AI aesthetics" anymore. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | hddambo a day ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is SO cool! What a great way to learn. I agree with some comments that it has a bit of a learning curve, and feel a little more "game like"? Still very cool though. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | tda 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reminds of Digital Logic Sim by Sebastian Lague, which I really like as you start with just a NAND gate and go from there. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | AspisAiantos 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | anonymousiam 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Last year I remember playing a similar game where you design a CPU beginning with SSI gates, building flip flops, registers, adders, multiplexers, etc. It was fun doing this because I hadn't done any digital design for a few decades, but near the end it became frustrating because it forced you to use only certain variants of modules, which you had to adapt for the final integration. It would have been more fun if it was flexible enough to let you create your own variants and use those. This game seems to have a similar limitation. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | Kirby64 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | prologic 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
To the author of this; Are you able to make it save your progress so you can come back and continue playing? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | splittydev 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | jodacola 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | wateralien 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | 1718627440 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | xpct 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Looks very similar to the GPU game https://jaso1024.com/mvidia/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | rsprinkle 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wow, sounds identical to "Turing Complete". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | shadab_khan_127 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | astaka 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is prettry cool, if we have this 30 years ago, I would love my computer science class...QAQ.. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | prologic 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is cool! I like it! Let's see if I can get past the NAND level! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | cadeos 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Great idea, get it in front of the kids ASAP! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | aappleby 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | azatom 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
you maybe not select accidental but others do: user-select: none; | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | rezigned 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This is a really nice project! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | rho4 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 next clicks in missing a back button | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | drob518 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Doesn’t handle drag and drop on iPad. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | mrkO99 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Got stuck at the NAND gate level. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | artemonster 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Slop. very janky UI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | kovacs_x 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
So ICFP 2026.. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | serhack_ 3 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
wasn't there recently another game that was starting with mosfet/pmos? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||