Show HN: A game where you build a GPU (jaso1024.com)

by Jaso1024 187 comments 964 points
Read article View on HN

187 comments

[−] rustybolt 41d ago
This is great!

Some comments:

- I didn't like the "truth tables" one, I got many duplicate questions and for some reason I got only one second for the first question. The rest of the questions I managed to answer correctly but I still got only one start out of three?

- I got very confused by the capacitor. Capacitors do not have an "enable" gate! In fact, in 2.7 (1T1C) you are supposed to build the enable gate -- with a transistor. So currently, you can just simply not build the enable gate and use the one already in the primitive, meaning you don't need the NMOS gate at all.

Was this made using LLM-assistence? (Not judging, I'm just interested!) I'd love to hear more about your workflow and how you managed to produce a good UI as it's something I couldn't do if my life depended on it, and it's a skill I'd like to learn.

[−] Jaso1024 41d ago
Oh, I didn't notice this capacitor bug, I changed it to add an enable gate for 2.4 (for context, i created 2.4 after 2.7 b/c i thought 2.7 wasn't obvious enough for some ppl). 2.4 kind of needs the enable pin b/c of how my simulation system works. Yeah, I felt pretty conflicted on the capacitors whilst building, theres actually a note about this in the capacitor info block in later levels, but I couldn't really make a true capacitor compatible with the underlying simulation system I had built (I should have thought it through from the start).

Ill fix the truth tables bug (i think i know the issue), the stars come from playing in endless mode

I used claude quite a bit, it struggled through a lot of this (wiring and simulation systems in particular), but managed to crank this out, for the graphics i was extremely detailed in terms of what i wanted i'd say

[−] tuetuopay 41d ago
Since we're in feedback mode, 2.16 has no BitLineBar reference to feed to the comparators. I had to cheese the level by connecting the "capacitor" outputs straight to the outputs, and it worked.

On the capacitor though, the capacitor level is weird as you don't build the capacitor charge system with transistors. Though I definitely get that the simulation engine is for digital stuff, not analog :)

Also a general feedback on the time-based challenges: dial them back. A lot. Most of them are just not interesting and have zero learning value. In fact, the "DRAM refresh" one just made me quit the game (clicking on 8 rows to keep them fresh). Okay, 10s is enough, I got the point. No need to hold up for a whole minute. Kinda same for the hex one. However, some of them are good, and the UI for the binary ones is great, especially for the two's complement one!

Small nitpick on the UI: some blocks don't have their connections aligned with the grid, making the wiring OCD-incompatible. But that's minor. It's a shame since the wire routing algorithm works quite well overall, and I'm impressed an LLM could produce that good of an UI!

Otherwise, quite a fun little game, if slow paced when one already knows some bits of digital logic. Keep up!

[−] Jaso1024 41d ago
lol, I encountered the same thing w/ the Dram one in particular during testing (I passed it by using number keys, but probably was a sign to remove)

Thanks, I appreciate all the feedback, fixes coming in the next push

[−] schoen 41d ago
I'm still confused about 2.7 because it says that we have to use WL so that "the bit line (BL) connects to the storage element for reading or writing". But the accepted solution connects to the storage element only for writing, not for reading (the capacitor is always connected to the output for reading).

I would think that if you wanted to make it so that the storage element was connected either for reading or for writing by the WL and otherwise disconnected, you would need two transistors, not just one.

Perhaps this was meant to say "for writing either a 0 or a 1"?

[−] eterm 40d ago
2.7 is confusing because you can wire up the bitline and the word line the wrong way around and the tests still pass.
[−] BoiledCabbage 41d ago
Agreed, truth tables one is important. But it's backwards, you test people on truth tables before teaching them.

If someone is seeing this for the first time they may have never seen some of those gates and you quiz them.

Then finally after passing the quiz, you define NAND and NOR and Inverter.

Swap the teaching one to be the intro to the truth tables one.

Second bit of feedback is the timer. Increase the time allotted. I know them very well and still was struggling to get all the input correct before the timer hit. Or consider possibly just eliminating the timer completely - if your goal is to be sure that they know them.

[−] Jaso1024 41d ago
good point, made an update that added difficulty levels to the minigames (handles the timer), and i'll probably move the truth tables minigame to after the user builds the truth tables, thx
[−] txr 41d ago
Anyone who likes this should also take a look at: https://store.steampowered.com/app/1444480/Turing_Complete/ At the end you have your own CPU with your own assembly language. Sadly stuck in early access since forever with some very rough edges
[−] ashdnazg 41d ago
I can also thoroughly recommend https://store.steampowered.com/app/684270/Silicon_Zeroes/ which uses smart design to remove having to deal with binary in the circuit design. This reduces complexity by a surprising amount.
[−] battxbox 41d ago
Love this game. Does anyone know if developers are still active?
[−] txr 41d ago
Steam discussions seem to imply there is still something happening https://steamcommunity.com/app/1444480/discussions/0/7674379... But communication is definitely subpar. I completed it a few years ago, was fun but having prior knowledge about digital circuits is a must have in my opinion.
[−] ben-schaaf 41d ago
They're bikeshedding pretty hard, making their own language for the simulation. You can access the unstable branch through steam, it was getting fairly regular updates last I checked.
[−] scratchyone 41d ago
is there anything interesting in the unstable branch??

also lmfao bikeshedding a custom language is EXACTLY what i would expect from the dev of that kinda nerd game. feels like a good sign tbh

[−] whattheheckheck 40d ago
I think its called yakshaving when you actually do it. Bikeshedding is discussing stuff that doesn't matter to avoid tlaking about the hard stuff
[−] ben-schaaf 40d ago
Last I checked there's some rebalancing that looks pretty good, but the real advantage from the custom language is a huge performance boost.
[−] Damjanski 41d ago
wow - will try it today!
[−] roadbuster 41d ago
I worked on deep sub-micron, full custom mixed-signal integrated circuits for more than a decade, and I can't pass the first level.

> Wire an NMOS transistor so that when In is 1, the output is pulled to ground (0). When In is 0, the output should be unconnected (Z).

Certainly:

(a) The nMOS has 3 connections: its drain is only connected to the output (no +Vdd supply), it's source is tied to ground, it's gate is tied to the signal input

(b) When the gate (input) is driven high, the nMOS transistor turns "on," connecting the output to the source (which is grounded). This acts as a "pull-down network"

(c) When the gate is driven low, the nMOS turns "off," leaving no connection to the output. This is equivalent to a "high-impedance" / "unconnected" / "Z" output

Fails 1/2 tests

(Edit) - I thought the light grey, thick line on the background grid was a wire from "input" to the transistor's gate. It is not. You need to explicitly add a wire from "input" to gate :\

[−] mistidoi 41d ago
I'm a total doofus with no relevant experience and neither could I.
[−] Jaso1024 41d ago
Adding intro levels today!
[−] Jaso1024 41d ago
lol, mb. As in understand it, its that the colors of the bg make it seem like its wires when its not, I'll change the color theme a bit to fix (plz correct me if my understanding is wrong)
[−] brcmthrowaway 41d ago
Did you switch to software?
[−] Anonyneko 41d ago
This looks really cool, although I personally seem to lack the absolute basic knowledge that is required to make sense of the tutorial messages, so I couldn't even figure out the first level.
[−] frmersdog 41d ago
You need to have a, "Okay, I've tried 10 times, it's not working, what's the answer?" button. That will help not just us rubes who can't understand, but also in the off chance something is broken and even "correct" answers are being rejected.
[−] yuppiepuppie 41d ago
Neat idea!

Ive added this to the HN Arcade! https://hnarcade.com/games/games/mvidia

[−] dnotq 41d ago
This reminds me of the Zachtronics game KOHCTPYKTOP (https://zachtronics.com/zach-like/). The game left me wanting more and wishing I was using an actual tool for learning or designing semiconductors circuits, rather than playing a game.
[−] john_strinlai 41d ago
as a learning resource, it would be great it acronyms were expanded at least once. nmos, pmos, gnd, vdd all in the first 5 seconds or so, and i didnt see anywhere that actually said what those stood for

otherwise, looks polished and fills in a nice niche!

[−] mdtrooper 41d ago
It sounds great, it remembers to me:

- https://www.nand2tetris.org/

- https://nandgame.com/

[−] everyos_ 41d ago
This seems really cool, haven't played it yet but I took a glance at the first two levels and it looks similar to another game I've played - will definitely play through it when I get a chance. I wanna make a GPU but my board doesn't have nearly ennough dsp units, so a virtual one like in this game will have to suffice lol
[−] xmprt 41d ago
This is super cool but part of me wishes I could skip to the later levels rather than redo college homework from a decade ago. Maybe that ruins the fun but also slogging through the early levels (especially when the UI is a bit rough around the edges and doesn't support copy paste) isn't fun either.
[−] npinsker 41d ago
Great game! For learning, might be nice to see some commentary or example (model) solutions after beating a level.
[−] a022311 40d ago
This is excellent, both educationally and from a UX standpoint! I've tried multiple times to read explanations on how transistors work and bounced off, but this time I think I've finally understood how to use them, at least practically. I feel like this is a great continuation of https://nandgame.com which taught me quite a bit about how small circuits combine to form something big (although I never finished it, I hope to finish this one at least). Another thing that I find interesting, is that while it is clearly developed primarily by AI, the result is exceptionally better than nearly every other AI-assisted project I've tried.

Some suggestions: - What I miss from NAND Game is the challenge of optimizing for efficiency. You'd build a component and it would let you know if it could be built with fewer NAND gates and you'd try to simplify the circuit. For example, while I did "NAND it" with 4 transistors, I did "The dual" with 5 and given the explanation I got afterwards I could have used one less. - This definitely needs to get better on mobile - The description for the first level using BitLine and BitLineBar (I think that was the Sense Amp?) doesn't really explain what it's supposed to do and I had to deduce it from the truth table.

[−] PotatoShadow 40d ago
I was able to do the latch level (2.11) using a single OR gate. It did pass the tests, but I am not sure if what I did actually works in practice. (Force as one input, then feed the output of the OR gate into the other input) The fun fact after completing the level mentions a bistable latch (I don't know what that is) using two inverters, which I didn't use.
[−] Jaso1024 41d ago
Hi everyone, commenting to address feedback:

- Made timed minigames optional (e.g. binary tables)

- Added 7 (optional) intro levels to walk through pmos and nmos transistors

- Fixed the bug in the capacitor levels

- Changed editor bg to use dots instead of lines to fix wire confusion

[−] SilentM68 41d ago
This is very cool!

We need more games like this so that the younger population get some sort of exposure to the hardware side of things, before AI takes over that field. I would also think that take-home electronic and soldering kits for adults and younger folks would be another way to reduce dependance on AI.

[−] jweather 38d ago
Pretty fun, needs some improvements:

- wire routing makes most circuits write-only. There's no way to follow the wires once a circuit is completed, it's easier to delete them all and start over.

- some of the later levels seem incomplete, at least as far as test cases: 2.26 Row Buffer you don't actually have to buffer the row to meet the requirements. 2.34 can be completed with a single VDD symbol. 2.37 and 2.38 I expected to have access to components that I had completed previously, but then it turned out neither of them have complete tests so they can be cheesed as well.

- no GPU?

[−] wren6991 40d ago
Please put the connector on the top of GND. GND goes on the bottom of a schematic.
[−] vibe_that_works 41d ago
That was great fun, an interactive refresher on my EE studies. Thank you so much for creating it.

If anybody can create something similarly interactive, educational and hands-on for microbiology or robotics, I am happy to sponsor your cost.

[−] zapkyeskrill 41d ago
Any easy way to make this usable on mobile? In portrait mode things are unreadable, zoom and scrolling do not work. Landscape is even worse as everything is out of view (and zoom/scroll do not work).
[−] fragmede 41d ago
[−] primes4all 39d ago
After compelting almost all available levels, here is some feedback:

1) the bug report form is completely broken for me (safari on macos 26): one cannot type spaces there bc the space bar still triggers the execution steps, one cannot paste text into there, and sending the reports always fails.

2) I am now stuck on levels 2.26 and 2.37. I just cannot make sense of the instructions given there. Please clarify them.

Otherwise I really enjoyed playing the game!

all the best

[−] Zetaphor 41d ago
Please add OG/embed tags. It's both polite and helpful to let people see what they're about to land on when someone shares a link on socials/discord
[−] avipilcer 40d ago
Really cool approach to teaching GPU architecture. The progression from basic logic gates to actual GPU components is exactly how I would want to learn this. Much better than reading datasheets.

One thing that would make it even stronger: a brief explanation panel for each level showing what real-world GPU component the puzzle maps to. When I completed the truth tables section, I wanted to know where that pattern shows up in actual silicon.

[−] dminik 41d ago
Some feedback:

- Nice idea, though after playing Turing complete, I would like to skip the beginning and move to stuff that makes GPUs different to CPUs. But it's understandable.

- I'm not smart enough to intuit NAND from transistors. I'm also not sure I will be alone in that. It's such a weird difficulty wall.

- Speaking of, the difficulty is all over the place. Though easy mode is appreciated.

- Even with a n key rollover keyboard, I couldn't complete the capacitor refresh level. It seems like it speeds up and certain capacitors already start empty.

- The routing for wires is no good atrocious. Any level with more than 8 components will end up impossible to read.

- It doesn't help that you can't color code or even path wires manually.

- Might be Firefox only, but I had a hard time selecting the connection points.

- Dragging the mouse along the edge should pan. Otherwise you have to drop the connection and zoom.

- I appreciate the added "show solution". But it's not really giving you a solution. It's just a better hint.

- An option to show all tests or at least more tests would get great.

[−] buildbot 41d ago
This would be such a good game for introducing students to digital technology! This is so fun! We just had to draw them by hand back in the dark ages of the 2010s.
[−] Elorth 40d ago
Really glad to see this kind of game getting traction. I've been working on Hard Chip (a transistor-level CMOS circuit puzzle game) for a couple of years, and the niche is a bit lonely sometimes. Games that make low-level hardware concepts tangible seem to be finding an ever-larger audience every day. Excited to try your take on this with this one!
[−] iandev 41d ago
I'm confused about a difference in the NMOS and PMOS. The scenario I'm confused about is when the source is VDD and the drain is connected to GND and output.

For the PMOS, the output toggles between 1 and 0 (opposite the gate) as expected. However, for the NMOS, the output is always 0.

I don't understand why GND pulls VDD down to 0 for the NMOS, but not the PMOS.

[−] arcbyte 40d ago
Seems cool but its just not quite responsive enough on Android Firefox. It seems to almost fit, but i think things are cut off. Controls dont seem to work - i think the materials are off screen because the directions say to select materials but I dont see where to do that.
[−] eterm 41d ago
Your bug submission endpoint is getting a 429, so I'll report a bug here:

I see a difficulty pop up after I click "run tests" but it then gets hidden and doesn't do anything.

This was after selecting intermediate on the truth tables level, then clicking "next level" from there.

[−] dcreater 41d ago
Nice vibe coded project. There are a few UX holes i've encountered so far: No way to go to the next lesson if we dismiss the modal (have to go back to the tree and then click the next lesson)? more hints or step wise reveal if user gets stuck will be very helpful
[−] thescriptkiddie 40d ago
i was too clever by half and tried to make a NAND gate by combining an AND gate with an inverter. after about 15 minutes i realized that i had it backwards, an AND gate is actually a NAND gate combined with an inverter
[−] fleshers 41d ago
This is awesome! The truth table lightning round took me by surprise, I am rustier than I thought...

One note: It isn't immediately obvious that the In/Out nodes can be connected to multiple wires, made the first few rounds harder to work thru.

[−] FrojoS 40d ago
Awesome! Small feedback: The test should maybe auto run. I solved the first level and was confused why I didn't proceed. The out was -1 (but goal was z) and it took me a while to see the 'run test' button.
[−] p2detar 40d ago
Well done. I enjoyed it and also found it interesting that the js was under 100k and served with br-encoding. I'm using gzip by default everywhere, but maybe should take a look at br for text-based content.
[−] tankenmate 40d ago
it's great, i really like it! i've been working on something similar for CPUs but not getting into the EE weeds (like i don't get into DRAM at all, no voltages, no slew rates, etc, etc).

it was all reasonably easy to get until you get to the sense amplifier which has an almost complete lack of explanation of why you need the required outputs, it is "clear if already known". i.e. if you've never done any electrical engineering it makes zero sense and is not the sort of thing a software developer could ever figure out with the minimal explanation.

[−] brynnbee 41d ago
Huge fan of this! I love learning-by-doing and this captures that cycle perfectly.
[−] gchadwick 41d ago
A nice game, though the truth table lighting round is pretty punishing! Big contrast to the circuit building part where you can take your time. Personally I'd drop the time requirements from that quiz section.
[−] NooneAtAll3 41d ago
if you solve a level, then press "next level", then solve that next level - then it still shows the original level (I think it just gets hidden below the new one and then reappears after a solve?)
[−] urba_ 40d ago
I love this! I learned my first logic with Crocodile Clips: would simulate and solder a lot of D flip flop based logic before learning about microcontrollers (my first was Atmel AT90S2313)
[−] baobabKoodaa 41d ago
Is this a sequel to "How to make a CPU"? https://www.youtube.com/watch?v=vuvckBQ1bME
[−] unsnap_biceps 41d ago
The truth tables are way too hard for me. I need time to think and the 10 seconds is way too fast. If this is intended to be a teaching resource, avoid timers IMHO. It needlessly excludes people.
[−] xnzakg 41d ago
The 2.13 level ("hex racer") is kind of pain. Apparently I'm not fast enough at dividing/multiplying by 16... when I get something like "convert 0xB3 to decimal"
[−] Liebmann5 41d ago
I have been looking for something like this for so longggg! THANK YOU
[−] Ginop 41d ago
It's always nice to see educational games like that. A lot of new learners (like me) are just looking at the high level stuff, where the computer "just works"...

Well done and keep it up :)

[−] rg2004 41d ago
I would have really liked to have a temporary node to test the outputs. Better than that, I would have liked to see the truth table update in real time without running the tests.
[−] wtyvn 39d ago
You've got a gem in the works here, looking forward to seeing how it continues to develop! Wouldn't mind showing some support on Steam.
[−] schlecht_ 41d ago
Love it, thanks! Would you mind making it possible for me to see my "circuit" after running the tests? Currently, I can't go back to the circuit I created.
[−] arikrahman 41d ago
Awesome project! Reminds me of Turing Complete on Steam.
[−] ____tom____ 39d ago
The text is too small to read on a phone, and pinch to zoom is disabled. That's pn the first lesson
[−] msully4321 41d ago
I am a huge sucker for games/lessons like this. I feel like I've played one every 5 years for the last almost 25 years.
[−] Insimwytim 40d ago
+ for the idea

- for the load javascript from that page imposes on CPU. +15 °C in less than 30 seconds. Nothing on the page could justify that.

[−] BuildItBusk 40d ago
This is amazing. There are a few quirks here and there, but the idea is great and it's super fun to play around in.
[−] nc1zdev 40d ago
Reminds me of that one data center game on steam. I love how we're gamifying learning on these levels now
[−] Arch-TK 39d ago
2.20 seems ... weird?

No matter what I do, the clock line in the log stays at 1 during tests.

Also the D latches behave very weirdly.

[−] jmholla 41d ago
The continue buttons in intro break for me all the time on Firefox. I can't actually finish most of them.
[−] Falell 41d ago
Fun. 2.2 loads a blank screen for me, all previous levels were fine and 2.3 loads. Windows, Firefox 149.

Edit: Confirmed fixed.

[−] anderskaseorg 41d ago
The “next level” button takes you to the next level even if you haven’t solved that level’s prerequisites.
[−] ampedcast 41d ago
It is really interesting. No authentication to save the level so that you can continue next time.
[−] agrishin 41d ago
Great project! I somehow missed whole cpu architecture topic, so gonna catch up on that now
[−] kongchu2 41d ago
Soooo cool! I will keep try this
[−] K0IN 41d ago
love it, some level (full adder with 8 inputs) where a bit repetative, but it is fun.
[−] dauertewigkeit 40d ago
I really like the game as a concept, and I got pretty far already, level 2.16, but I feel like some levels aren't making much sense at all in terms of the goal and how the passing circuit fulfills the objective. The Latch and some others had me puzzled. Because it is clearly vibecoded I feel like I cannot really trust the educational material all that much and at times it's not clear if I am misundestanding something or if is just nonsensical LLM slop.
[−] unvalley 40d ago
Great concept! Multi language support maybe good for spreading.
[−] jomoho 41d ago
first level is impossible to solve for me! Hint or showing solution did not work! Also adding multiple sources or ground behave differently than connecting to the same.
[−] oytis 41d ago
Must be missing something - is there a way to save progress?
[−] triilman 41d ago
is there any source or game like this specializing to create microcontroller, like arduino, wemos (not the IC), what kind of protocol is supposed to use.
[−] joha4270 41d ago
So, is there anything about GPU's in here right now?

I didn't actually finish Act 2, but it seems to end in a conventional processor with the GPU first coming after another two acts currently under construction.

[−] treelover 41d ago
I like the concept! What tools did you use to build it?
[−] DullJZ 40d ago
Awesome! But too difficult for a beginner like me
[−] tithos 41d ago
Cool concept, but it should be mobile friendly
[−] hristov 41d ago
Ok you have put a lot of work in this and it looks impressive. But it needs a serious balance change. It is far too hard. Currently this may work as a brain teaser for people in the industry or people with computer engineering degrees, but it wont bring any fresh young minds into the industry. The fresh young minds will be scared off.

Teaching is challenging stuff. You have to step out of your current mindset and think with the mind of someone that sees this stuff for the first time. It is not easy to make things look easy and simple. Specifically, I think you need a lot more exploration about cmos logic, about how one side pulls the output up or the other side pulls the output down but they are never on at the same time, about how they effectively amplify the result so the output does not have to depend on the power of the input, etc. Perhaps you can try to have people design things in NMOS logic than in PMOS logic and then combine the two to make a CMOS design to see how they complement each other.

But I do not want to discourage you. This is a very promising start and you should continue if you have the time.

Also, the timed answers -- are you kidding me? The time is waaay too short. And you fail all if you fail a single answer. Oh what is 0xDE in decimal, all I have to do is multiply 16 by 13 and add 14 to that. In my head in 12 seconds. Also the time is not sufficient for filling out truth tables, especially with a laptop trackpad. I was able to pass the truth tables, but gave up on hexracing.

Ok and here are some more specific issues.

-The wires seem to snap in position in a way that they superimpose each other so it becomes very difficult to see what your circuit is doing.

- truth tables seem to be bugged. If you have more inputs than the gate whose truth table you are looking at, sometimes it will generate a fictitious truth table with extra inputs. Thus, some times i get a NOT truth table that has two inputs.

- the ground element should have its connection circle on the top, not the bottom. I realized that you can rotate by pressing R, but the site does not mention that anywhere.

[−] slake 40d ago
Bro. I'm obsessed with this. I spent a good 2-2.5 hours on a trot with this. This was one of those things I always wanted to learn a lot about and this was just perfect for that. It wasn't that easy, I really struggled and gave up on some levels but came back and struggled through them. The HexRacer type levels are difficult and I wish I could skip through those.

Also when you give a solution, you probably need an explanation of why that works.

Can't wait till you add the additional coming soon levels.

Your feedback feature seems broken. I tried giving feedback about some basic bugs and it kept saying can't send message.

Please also add a waitlist to notify when you release the additional levels.

[−] nottorp 41d ago
În a few years it will be the only way to explain the kids what a GPU is. Unless you work for an “AI” shop and sneak them into the data center.
[−] tamimio 40d ago
I loved this! I played for straight up 2 hours now!

I wish I could get into hardware chip level jobs, I was a wiz in logic gates back in university but for jobs been primarily in systems and embedded, sure you work sometimes on rtos or fpga, but it’s another thing where your whole job is designing that! Unfortunately the jobs in hardware feels like a cult, and they expect you working on some industry specific software that you can’t do/access to unless you are in the industry to start with, kinda a catch 22 situation.

[−] NooneAtAll3 41d ago
truth table minigame is lmost unplayable in dark mode

also it kept showing the same table to me like 4 times

[−] NooneAtAll3 41d ago
level 1.10 I put 2 AND gates and only one of them works...
[−] lukebechtel 41d ago
really fun :) thanks!
[−] xyst 41d ago
not able to get it to work on mobile
[−] NooneAtAll3 41d ago
how do I remove/delete elements?
[−] skyskys 41d ago
wow looks really cool, although seems kinda useless at first look.
[−] PunchyHamster 41d ago
...why capacitor has 3 pins ?
[−] Raccreative 39d ago
I will finally be able to create my own GPU lol
[−] testaccount28 41d ago
not playing past the truth tables bs
[−] himmelsee2018 41d ago
[flagged]
[−] danielszlaski 38d ago
[dead]