@@StellarRootsGames also as a young programmer, i think we all need to remember to stay humble and be aware of the scope of our knowledge. this isnt targeted towards you of course, but in meeting with a lot of other young programmers, ego is rampant and creates a really toxic cycle of competition that is centered around age. you ofc have alternative motives since youre like advertising the game (congrats btw) but i think its really important to remember to be humble and lets be the ones to fight against the stressful precedent nowadays :D also it totally looks like im just dogging on you but i have just had this stuff on my mind for a long time and this video/comment reminded me of it
@@declspeclI am old and I'm a piece of s*it. I don't understand how ThePrimeagen manages to push "thousands" of lines of code every day. Specially when it comes to Rust. I'm basically dying writing low level bit-wise computations right now.
Just not too much opportunity. if you give them too much they're not gonna do it. Now I have 12 h to build a website and set up a server to run it. wish me luck.
did you notice he only touched grass in the beginning... if i know anything about this world, if not for a video, thats the last time he will ;) still mad respect for the dedication and knowledge of low level stuff at such a young age
"I got a multiplyier working so the next obvious step was to build a computer" "I just learned to walking so the obvious next step was to a marathon" "I petted a cat so the next obvious step was to tame a wild lion in africa"
Ok I was impressed with CPU building and all that but when he hit the point where “the game engine engine couldn’t handle it so I rewrote it” I just started laughing.
I thought this kid was genius when seeing the difference between his POC and the properly implemented computer. But when he started to explain his mod and what it does, and the many languages he used to implement all the componenets, I had no more words to describe that dude.
You dont need to be a genius to do this, its about passion. You just need to have a lot of time and put in the hours. A computer conceptually really is a simple machine that basically moves data around and does some really basic math on that data, sum, rest, div, mul etc
@@jordixboyI feel like you do need at least some experience with assembly. Without 2 semisters on CPUs and assembly I'd have zero idea what he's saying.
@@jordixboy Yes but at his age the way he is able to stay focused and get shit done this quickly is still impressive. He is definitely a rare exception.
It's like a law of the universe or something. "If you give people the ability to build basic logic gates, there will be someone building a computer" The Law that follows is, "Someone will try to port Doom to it". There is something beautiful about a project like this. It's raw, unadulterated and honest. I've recently seen a video about how an electromechanical Jukebox from the 1970s or 80s did its logic. And holy 💩, how did we get from something so direct and simple to not even being able to heat our car seats without paying subscriptions to someone somewhere?
@@nadie9058 Yep, his channel is a treasure trove of strange knowledge and ancient technology and I love it. A bit like a technology museum, but much livelier.
Similar with me! Programming is basically creating magic incantations to bend the spirits inside the machine to ones undying will. I highly recommend the SICP Book or Lecture by Hal Abelson and Gerald Jay Sussman.
I just started reading a programming textbook that likened it to learning sorcery. I was like, holy shit. It IS like that. And its so much more motivating than the textbooks that just recite syntax the entire time.
I started thinking it was just going to be an 8-bit CPU in terraria (already impressive). I wasn't expecting a fully complaint RISC-V CPU, rewritten game engine, and the ability to write programs for it in Rust.
Me in circa 2007: I just made an adder using Digital Works Circuits for my Internal Systems course assignment, so the obvious next step is to just call it a day and work on my C++ assignment tomorrow... That guy: I just made adders and multipliers in a game that's not really designed to do much complex circuits, so the obvious next step is to make a complete implementation of the RISC-V ISA. I could SO relate with what you said in intro!
@@roccociccone597 I spent 10 years coding SOLID in high level languages, only to realize I had gotten completely detached from how computers really work and how the data is really processed. I know how you feel. It's not as hard as I thought it was though. I'd actually say that CSS is way more complex than ASM and understanding the basics of a CPU - and that was one of the big lies I used to believe: that web programming is the easiest while low level stuff is the hardest.
@0crakhadshizzakizza0 yes, easy at first and becomes unpredictable and complex with scale and requirements. But low-level is simple and stays that way even at scale, once you have the experience to keep it that way. I also used to fall for the appeal of infinite reusability, relying on other libraries and frameworks that focus on optimizing first-to-market thinking. And I fell for the popular belief that low-level is unproductive and "unsafe" -> harder to manage. But in retrospect it's not true, and a lot of the friction comes from most of the industry riding on the quantity over quality mentality. New languages are coming out, like Odin and Jai, and many of the layers are ripe for a rewrite to make it even easier to make quality code - and I think low quality over-abstraction will eventually become much less frequent, because modern hardware advances almost don't benefit garbage-collected code anymore - and thus I think the perf gap widening will begin to matter even more - even in less competitive subindustries.
Beyond the pure technical benefit of having built something hard, he also made a clear presentation of what he had made in a way that the average person could understand
Oscillating crystals are tiny, pure glass discs that when attached to alternating current start to vibrate and force the frquency of the current closer towards its own natural resonance. Its not nessecary to build an electric clock but you can add it to one to make the clock much more accurate. since its super cheap, they are always added by default.
@@sophiophile I didn't know whats the difference between the two but you made me curious so I looked it up. Basically Quartz is pure grown Silicon Dioxide (SiO2) crystal while glass is only about 75% SiO2 and some additives smelted together instead of grown which make it softer, more transparent and non-conductive.
@@ataarono Yeah, I actually debated putting in the details regarding composition for glass- worrying I would just bore ppl. Glass is primarily SiO2, and you *can* have a pure SiO2 glass. But we put in additives to change the propeties of the glass in almost every situation (lower melting point- soda glass by adding soda lime, borosilicate glass for temperature change shock resistance in chemistry or 'Pyrex', and a gazillion more). I also didn't want to go into more detail because the term 'glass' can also be used as a generalization for any amorphous version of a sometimes crystalline material (which you might see the term 'mineral glass'). Either way, the piezoelectric effect used for clocks is present to some degree in all anisotropic crystals (but often not strong enough to be useful). Quartz is just easy to work with/cheap to manufacture/etc, but there are many crystals that are far more piezoelectric than quartz.
There is actually a fast way to trouble shoot that issue. You can use gimp to do so. Create two layers make a copy of a known good section then past it over the entire map. Then you can use a filter "color erase" to find the difference in them. It will leave the different green wires showing. If you don't know what section is bad vs good. Just copy any one of them. If the one you copy is good you will only see a few or the one issue. If the section you copy is the problem section you will see a lot of locations as differences.
All fine and good but wouldn't have helped him while he was building it in the first place. would only have been able to do it for certain repetitive structures. I'm sure he would have figured out a way to apply the technique but it doesnt seem like it was necessary after all. Now what I don't understand is why he didnt make a translation layer so he could use software to build the computer instead of building it by hand for 3 months. He's obviously already a genius.
I absolutely love this kid. I can't wait for him to get to his first interview and show off his creations. They're going to be falling over themselves to hire him.
It's comforting when someone is this much of a genius, you know? Like I don't have to be jealous or upset with myself for not accomplishing more in my life, because it would be like being jealous of another species for having more legs. This is just a level of brain mass so abstract from my personal universe that I can just enjoy it like a painting.
You get a lot of "I built a computer in weird way xyz" these days, and honestly having done it myself in a few games, not as complicated as you might think. Then the video pulls up the RISC-V ISA and it was difficult to not loose my coffee through my nose. Hats off, that's really very, very impressive.
I do appreciate it. We're talking about components that have been engineered for decades to reach the scale of atoms. Friggin' ATOMS. Or just so webpages load fractions of a second faster we have globally distributed networks so the physical distance that a packet of information has to travel is kept to a minimum. That people have been studying relentlessly to create more efficient algorithms to sort sets of data or to find a specific piece of data in a larger set and it's created a near art form, a discipline, and a now mandatory practice for future developers to get the best jobs... I appreciate it all. Newton said "if I have seen further than others, it is by standing on the shoulders of giants". Our generation casually practices magic because we rest upon the bodies of generations of giants. We are incredibly fortunate.
"From Nand to Tetris" was a legendary class that got me understanding where he was going from the jump...you can make a computer from *anything* that go 0 1! This kid's brilliant and an insane attention to detail
well yeah cuz JDSL has templating and does bi-directional result caching. First 5 minutes all the adders are built scaled and then the next 5 minutes builds the mode to solve the wire update problem.
The clock can be thought of as a wiggly stick, that pushes the switch. If you push a wiggly stick, it bends and flexes - it takes a moment for your energy to reach the switch. If you run forward holding the wiggly stick, it jiggles around while you run - you are constantly putting energy into it but the output of energy is not constant. You push energy into a quartz crystal, that energy then comes out in certain intervals. It's essentially that simple. The clock isn't a wire that allows current to pass through, it takes energy in, 'stores' it, and releases energy at it's own frequency. Same thing happens when you put energy in by tapping it - the energy released is in the same form as if you added electric energy.
i gona say it, because this is literaly the best example of how human well educated, well eat, with amoun of resources (love, inspiration, educated family) can do a amazin stuff just for fun.
I sometimes see genius stuff and my brain goes "I want to be like him". In other cases i see genius things and I feel like an ant carrying bread crumbs to the nest for a reason I don't know while.
I've watched his series 2 or 3 times and I've implemented his 8-Bit CPU in Logisim and can actually run his OPCODES. Not just Ben Eater, a bit different, but javidx9 has a series with his C++ OLC Engine where he walks you through building a 6502 (NES) Emulator! Emulators are harder than making the actual CPU! Both Series are great, and to complete the Trio we have to included 3Blue1Brown! Now a few other asides for a bit of extra flavor we can add Jason Tuner's C++ Weekly for good programming practices as well as The Cherno. There's a few others, but these are the most noteworthy for good educational purposes!
What is even better than this is the guy who made 16 bit CPU with only 8 basic TTL-like chips and memory... Very slow, but real CPU - many in the 80s would have been so happy for that thing as it would have been cheap to assemble home small computer in times CPUs were so expensive... This also came out lately on hackaday. I like how this guy did not just and-or gate it all, but use this stateful block too. All of these are real cool deeds ;-)
@@ontheballcity71 I think it was not Ben Eater, but some other guy. Search for "16 bit CPU 8 chips" on google. It is on youtube for "Jiri Stephanovsky" or under similar name... Ben Eater is cool too - just this literally only use 8 chips for the whole CPU!!!
10:00 Quartz is used in watches because it oscillates at a stable frequency of exactly 32,768 times each second when electricity is passed through it. You then measure the vibrations using a digital frequency counter and bobs your uncle you have a reliable clock. en.wikipedia.org/wiki/Crystal_oscillator#:~:text=Quartz%20crystals%20are%20manufactured%20for,radios%2C%20computers%2C%20and%20cellphones.
Yesss. It’s all about the crystals. In watches, in computers, in everything. I remember changing the crystal in a Radio Shack Tone dialer to make a Red Box, because I never had a Captain Crunch Whistle. Phreaky days. Best way for a kid to call Nintendo of Japan from a payphone back in the 80s. Mowing lawns for allowance money was to pay for games, not to pay Ma Bell’s overseas charges. Crystals run the world.
We only relied on Malaria to treat late stage Syphilis between 1917 to 1940, and it was just to prolong the life of the patient. However in 1940 we got introduced to Penicillin. And the use of Malaria to treat Syphilis got a Nobel Prize in Medicine in 1927. The world is strange.
when I dropped out of uni for computer science I bought a book from amazon entitled "how to build a computer", it was a very short book which basically outlined what the kid did in the video. I read some of it, realized it wasn't really that hard and actually just a matter of following instructions, and carried on playing piano.
So basically he proved we're living in a simulator and we've created computer same way he just made a computer in terreria... I'm going back to sleep now 🤣
12:30 A clock signal is just a tank circuit that produces an oscillation within a tight frequency range. In this case, the origin of the word tank comes from a fish tank of water (filled to about halfway up the height of the glass walls) that is free to slosh around back and forth or oscillate like a pendulum. A natural oscillation circuit is a wire coil and a capacitor that is hooked up to an amplifier that keeps the water sloshing back and forth in a resonant situation. An amplifier tends to be one or more transistors. The circuit is fed back its own voltage level amplified and slightly out of phase with the oscillator tank circuit's current or voltage signal. In a capacitor, an electric field on some conductive plates are allowed to charge with positive on one plate and negative charges on the other plate. During the charging process, electron particles collect on one plate, while the opposite connection has electrons removed from it producing a positive polarity equal and opposite to the one opposite to it. A coil permits direct current flow easily but restricts higher current transitions by building a magnetic field around the coil as the current flow increases. The coil's magnetic field collapses if the current is taken away, and as the magnetic field collapses the coil's windings absorb back the established magnetic field creating a reverse current flow in the coil. A coil and capacitor can be placed into a parallel or a series configuration, but the tank circuit typically has a capacitor in parallel with a coil. The electrons within this circuit flow first one direction, then the other direction in an oscillation at a resonant frequency that is given by a physics equation. To know how a bipolar transistor works one must first know how a diode works. A diode permits current flow in only one direction. A silicon diode is created with, what else, silicon with roughly half of p or positive material that has an almost full outer electron orbital (physics model) that can be seen by the S, P, D, F, etc, orbital shells of an atom. The chemical properties of these atoms are displayed in the periodic table of the chemical elements. The other silicon half of the diode is doped or infused with atoms that have only a single electron in their outer orbital shell--to make N or negatively polarized silicon. When the P and N doped or infused silicon are joined together in a junction, it produces a PN junction diode. This is because a natural electric field is produced from one doped part to the opposite polarity portion. It was discovered by experimentation that if you reinforce the electric field, then no current can flow until the field grows in size to such an extent that the field gets stronger and stronger until the force is just too great and the circuit gets a breakdown situation where the extent of the field gets larger than the PN junction boundary itself and a sudden arc of current flows through the device backward in a largely destructive way unless measures are taken to limit the current flowing through there using a series resistor of high enough resistance, but if you opposed the PN junction established electric field, then the field collapse being attempted permits only partial field collapse due to the rate of how many electrons are coming into the PN junction's field. As the field collapse that is underway reduces the field size, the diode's in-line innate resistance to current flow shall cause the junction to heat up. In the first case, the PN junction diode is accumulating a greater field size, it is just like the charging of a capacitor. A bipolar junction transistor inserts a third signal as a control into the junction area. It is called the base material. The typical configuration of the doped or infused silicon is either PNP or NPN with the middle letter being the base junction that typically acts as the input terminal that controls the transistor's current flow. Transistors and resisters in various configurations act as amplifiers. Some amplifiers invert the input signal while others do not. An amplifier has an innate delay due to junction capacitance that must be either charged or discharged depending on the incoming signal for the circuit. If the bipolar junction or diode input capacitance is too high, it shall make the signal output lag its input signal more and thereby limit significantly the highest frequency range supportable by the amplifier and whatever oscillator
Imagine the clock that "oscillates" as a bucket that turns over once full and empties itself, then turns back up again. The water is electricity and you just feed it a stable stream of electricity, so that it turns over at predictable rates, dumping the electricity into the computer.
I'm an X US Naval Nuclear Reactor operator who then majored in EE and CS. Guess i never felt inspired to build something like this in game because of the headaches of building them in real life. I find it quit impressive that people do this stuff. I am curious why he didn't use a map editor for terraria and chose to make it all inside terraria the way he did. i would have thought the map editor would have been faster. Well maybe not if you have to keep switching back and forth to test it.
damn and i thought i was epic for building an 8 bit adder inside minecraft oh btw, can we get a reaction to a minecraft supercomputer next? ive seen some of em being able to compute graphs
someone finally properly made minecraft in minecraft pretty recently, the computational redstone scene is insane (they also have their own mod that does more or less what the mod for terraria does with wiring but for redstone)
"I have kids" yo, you don't even need to go that far. I have a beer and a bag of chips. I won't even put that down to think about what it would be like to even watch someone do that for 5 minutes, let alone plan, execute and debug an actual computer in terraria. no. I've sipped my beer twice just while typing this, no way
When designing chips, debugging is usually done by having unit tests for each small module used in the bigger design. If some bug DO leak out on the actual silicone chip, well there is no way to change that unless you do some software patch.
The last question in my Digital Logic Circuit course's final exam was to construct a 4 bit processor with basic arithmetic operations like add, subtract, multiply and divide. we were also supposed to have appropriate registers on it to store the results.
This kid reminded me of how much science in computer science that I’ve forgotten over the years. I think smoke is coming out of my ears as the gears start churning again
I couldn't stop laughing at the fucking end man, this kid started doing an AND gate and ended-up writing the whole fucking infrastructure of the world in 3 months.
as someone who does wiring and has made about 4 basic CPUs in terraria, it's very similar to real life and you do not need to exclusively use faulty gates. the only thing you really need to keep in mind is how wires interact on the same object criticisms: "a lot of circuits have to be redesigned in this new paradigm": no, they don't. "this is a compact circuit to add two one-bit numbers": that is a very large circuit. instead, use an or gate, an xor gate, and an and gate, place them next to each other in that order, put three off lamps on top of each one, horizontally connect wires going across, connect or and xor via one wire, xor and and via another, the or-xor wire is carry and the xor-and wire is sum. this is tileable with no gaps and is the most compact design i know of
I feel stupid! And I even had basic CPU design in college 😂 This little guy is simply a bloody genius! And I see him make it very very far! He’s not only got a genius mind but also sheer grit and determination.
Take a vibrating quartz crystal sandwiched between two metal plates. Quartz is piezoelectric meaning it turns mechanical oscillations into electrical oscillations which can be amplified. It also turns electrical oscillations into mechanical oscillations so some of the amplified signal gets fed back into the crystal to keep it vibrating. The vibration is basically a soundwave echoing inside the crystal so the frequency is the speed of sound through quartz times the distance it travels. High frequency crystals are just thin discs with the sound wave going from side to side while low frequency crystals are shaped into tiny tuning forks.
What a chad. "I want to build a 32-bit computer inside your game? Oh, what you say? It was never optimized for that? Okay, I'll make it optimized myself."
When I was 16 I could barely understand pointers and memory in C yet this kid is designing logic gates and a full computer within a game. I have a feeling we'll see more from this kid doing great things the rest of the decade.
in the 80ies, my friend 15 at the time built his own MC68000 based computer, same guy when MP3 came from frauhofer made a hardware mp3 player before that was even popular, another friend wrote a raytracer at the same age.. So not sure I am super impressed, since today its easier to get information on how todo these things :)
The base of sequencial electronics is the Flip-Flop (the output is a function of input and internal state 0 or 1). A register is a bank of flipflops. The ALU is a bank of registers wich imputs are both data and code (the instractions). From electronics to assembler, then to C, etc. The path of old school engenieurs...
He should write his "simple terraria inside terraria" like dwarf fortress - then you're playing top down terraria while playing sidescroller terraria - That's like.... FOUR D's!
The "state" is more of his "clock". Since he is doing things by hand, it is slow. He has to accumulate all of the settings first, then release the clock in the form of what he is calling "state". Going further since you mentioned it. The clock is just a rhythm. The crystal is used because it is consistent. At each cycle, the computer performs an operation based on the instructions supplied at that moment. In between those instances are the opportunity to set the next instructions. That's all it is. If you were adjusting the instructions as the clock is executing, everything would be chaotic and computers wouldn't be very useful because they wouldn't produce consistent and reliable results. The malaria to cure syphillus worked because syphillus is a parasite. Inducing a high fever over a long time kills the parasite. Malaria induces a massive fever and can be managed until to clear the infection... often.
If you want to understand, read Charles Petzold's book: Code. It's basically a childrens book, by which I mean that it is written in a way that anyone can comprehend, while not compromising the essentials. Read the book and you can, theoretically, build a computer with nothing but transistors, or similar.
This obviously took a ridiculous amount of time and effort to do, and honestly very few people post-college really have that time to devote to something like this. Then add a wife and four kids However, even with the praise I think the difficulty and discipline required to do this was severely understated. Twitch chat saying that it's just NAND gates all the way down - it's not even close to that fucking simple. It clearly took a lot of research and knowledge to have to adapt the architecture to work in Terraria. Then he just casually mentions writing a mod which completely rewrites the whole damn wiring system. Not to even MENTION how he didnt go absolutely insane debugging this fucking thing. There were many places he could have just ended it there but he went the whole mile.
The kid is next level genius. I mean, yeah, building a full on computer in Terraria is incredible. But not necessarily unique since the same thing has been done in Minecraft. But then he sat down and learned how to modify Terraria. In 3 months and 600 hours, he's basically taught himself a high level language, assembly, and the inner workings of a CPU. That's about 12 credit hours at a university (with labs).
Developer: I want to apply to your company.
Company: We can't hire you because you are too young.
The developer:
@@StellarRootsGames also as a young programmer, i think we all need to remember to stay humble and be aware of the scope of our knowledge. this isnt targeted towards you of course, but in meeting with a lot of other young programmers, ego is rampant and creates a really toxic cycle of competition that is centered around age. you ofc have alternative motives since youre like advertising the game (congrats btw) but i think its really important to remember to be humble and lets be the ones to fight against the stressful precedent nowadays :D
also it totally looks like im just dogging on you but i have just had this stuff on my mind for a long time and this video/comment reminded me of it
@@StellarRootsGames I mean, the age might not a factor in your case. Maybe your game is just bad
@@declspeclyup, and take a look at guys like John Carmack. He wrote some of the first ever 3D graphical video games and he’s the most humble dude ever
@@declspeclI am old and I'm a piece of s*it. I don't understand how ThePrimeagen manages to push "thousands" of lines of code every day. Specially when it comes to Rust. I'm basically dying writing low level bit-wise computations right now.
@@rumplstiltztinkerstein i feel ya, youre not alone :D
"The problem with programmers is that, given the opportunity, they will start programming"
It's absolutely true. Every time I find a game that has some kind of modding support... I just can't help it
Spent my 1 week vacation working on a PR translating a 2015 JS lib into modern TS and then deleted it today.
@@zyriab5797At least you took care of it while you had it. 😢 =]
@@zyriab5797stop deleting stuff :(
Just not too much opportunity. if you give them too much they're not gonna do it. Now I have 12 h to build a website and set up a server to run it. wish me luck.
Not only did he make a pc inside terraria, but when he realized it wasn't possible, he made a mod for the game to make it possible, absolute mad lad
just for some perspective his mod making terraria's wiring system go from a max of 0.1Hz to 5000Hz is a 50000% increase in performance.
He made a CPU in Terraria AND touched grass, that's some serious dedication
did you notice he only touched grass in the beginning... if i know anything about this world, if not for a video, thats the last time he will ;)
still mad respect for the dedication and knowledge of low level stuff at such a young age
Why do you watch content which directly steals from smaller creators that only benefits the reactor. Why do you support this?
defection
"I got a multiplyier working so the next obvious step was to build a computer"
"I just learned to walking so the obvious next step was to a marathon"
"I petted a cat so the next obvious step was to tame a wild lion in africa"
I’d say the complexity of the first one is still much higher than the other two analogies 😂
Maybe not as complex but way waaaaaaay easier
I just learned to jump, my next destination, the moon or mars!
How to draw an owl
Step 1: draw two circles
Step 2: Draw the rest of the owl
That kid has a bright future. Mad respect!
And it's always a pleasure seeing Terraria get some attention.
Well said! I wholeheartedly agree.
I hope he gets laid soon...
Intel better be in his DM's right now.
I feel like bro is _from_ the future lol
@@_The_Traveler_ underrated comment 🤣
Ok I was impressed with CPU building and all that but when he hit the point where “the game engine engine couldn’t handle it so I rewrote it” I just started laughing.
I thought this kid was genius when seeing the difference between his POC and the properly implemented computer. But when he started to explain his mod and what it does, and the many languages he used to implement all the componenets, I had no more words to describe that dude.
You dont need to be a genius to do this, its about passion. You just need to have a lot of time and put in the hours. A computer conceptually really is a simple machine that basically moves data around and does some really basic math on that data, sum, rest, div, mul etc
@@jordixboy 😭😭😭😭
@@jordixboyI feel like you do need at least some experience with assembly. Without 2 semisters on CPUs and assembly I'd have zero idea what he's saying.
@@jordixboy Yes but at his age the way he is able to stay focused and get shit done this quickly is still impressive. He is definitely a rare exception.
@@jordixboy Same thing. You don't get to be a genius without passion. You're not born a genius.
It's like a law of the universe or something.
"If you give people the ability to build basic logic gates, there will be someone building a computer"
The Law that follows is, "Someone will try to port Doom to it".
There is something beautiful about a project like this. It's raw, unadulterated and honest.
I've recently seen a video about how an electromechanical Jukebox from the 1970s or 80s did its logic.
And holy 💩, how did we get from something so direct and simple to not even being able to heat our car seats without paying subscriptions to someone somewhere?
the most basic operating principle of the universe is inflection
I'm more shocked he didn't make it play badapple.
A fellow Technology Connections enjoyer?
@@nadie9058 Yep, his channel is a treasure trove of strange knowledge and ancient technology and I love it. A bit like a technology museum, but much livelier.
Back in 2002 in high school, we played Mario and even DOOM on our TI-83 calculators. So, anything is possible.
my whole interest in electronics and computers is rooted in a previous obsession with witchcraft and aliens. So yeah, its magic.
Similar with me!
Programming is basically creating magic incantations to bend the spirits inside the machine to ones undying will.
I highly recommend the SICP Book or Lecture by Hal Abelson and Gerald Jay Sussman.
I might have traveled the same twisty path as you.
Absolutely yes. I like managing a managerie of daemons and golems.
I just started reading a programming textbook that likened it to learning sorcery. I was like, holy shit. It IS like that. And its so much more motivating than the textbooks that just recite syntax the entire time.
@@JM-yz6zb
What's it called?
Ok maybe I should just work at McDonalds, I clearly can't program... This kid just made me feel like a neanderthal
The storytelling abilities of this damn kid too, geez, absolutely amazing
I started thinking it was just going to be an 8-bit CPU in terraria (already impressive). I wasn't expecting a fully complaint RISC-V CPU, rewritten game engine, and the ability to write programs for it in Rust.
New Interview question, explain the difference between these 2 Terraria circuits (interviewer slides 2 pictures across table)
Me in circa 2007: I just made an adder using Digital Works Circuits for my Internal Systems course assignment, so the obvious next step is to just call it a day and work on my C++ assignment tomorrow...
That guy: I just made adders and multipliers in a game that's not really designed to do much complex circuits, so the obvious next step is to make a complete implementation of the RISC-V ISA.
I could SO relate with what you said in intro!
circa works better without conjunctions like in and but without. try it like this: ‘Me, circa 2007:blah blah blah’
@@justyahz796 Thanks.
This is the "instagram effect" times 1000x, i feel so terrible at programming now haha
I'm pretty competent, but boy I feel like I've never touched a computer in comparison
@@roccociccone597 I spent 10 years coding SOLID in high level languages, only to realize I had gotten completely detached from how computers really work and how the data is really processed. I know how you feel. It's not as hard as I thought it was though. I'd actually say that CSS is way more complex than ASM and understanding the basics of a CPU - and that was one of the big lies I used to believe: that web programming is the easiest while low level stuff is the hardest.
@@Muskar2 Oh I do work in C++ about a third of my time, the rest is Go and TypeScript. I'm just impressed by what he did :D.
@0crakhadshizzakizza0 yes, easy at first and becomes unpredictable and complex with scale and requirements. But low-level is simple and stays that way even at scale, once you have the experience to keep it that way. I also used to fall for the appeal of infinite reusability, relying on other libraries and frameworks that focus on optimizing first-to-market thinking. And I fell for the popular belief that low-level is unproductive and "unsafe" -> harder to manage. But in retrospect it's not true, and a lot of the friction comes from most of the industry riding on the quantity over quality mentality. New languages are coming out, like Odin and Jai, and many of the layers are ripe for a rewrite to make it even easier to make quality code - and I think low quality over-abstraction will eventually become much less frequent, because modern hardware advances almost don't benefit garbage-collected code anymore - and thus I think the perf gap widening will begin to matter even more - even in less competitive subindustries.
Some people are just wired differently, I do believe in hard work but you can't really deny that natural raw talent can put you on a different level.
Someone is going to use his mod to run Bad Apple on Terraria. Just a matter of time.
It's in the repo already
Beyond the pure technical benefit of having built something hard, he also made a clear presentation of what he had made in a way that the average person could understand
18:30 "Corporate needs you to find the differences between this picture and this picture"
The guy using powerpoint as an IDE was already insane to me. This got to another level.
Oscillating crystals are tiny, pure glass discs that when attached to alternating current start to vibrate and force the frquency of the current closer towards its own natural resonance.
Its not nessecary to build an electric clock but you can add it to one to make the clock much more accurate. since its super cheap, they are always added by default.
some how... magic is still magic to me
@@ThePrimeTimeagenPiezoelectric effect. Yeah, things that emerge from properties in crystallography are basically magic.
Not glass, but quartz (usually, although many other materials can work as well)- which is the crystalline form of the same compound (silicon dioxide).
@@sophiophile I didn't know whats the difference between the two but you made me curious so I looked it up. Basically Quartz is pure grown Silicon Dioxide (SiO2) crystal while glass is only about 75% SiO2 and some additives smelted together instead of grown which make it softer, more transparent and non-conductive.
@@ataarono Yeah, I actually debated putting in the details regarding composition for glass- worrying I would just bore ppl. Glass is primarily SiO2, and you *can* have a pure SiO2 glass. But we put in additives to change the propeties of the glass in almost every situation (lower melting point- soda glass by adding soda lime, borosilicate glass for temperature change shock resistance in chemistry or 'Pyrex', and a gazillion more). I also didn't want to go into more detail because the term 'glass' can also be used as a generalization for any amorphous version of a sometimes crystalline material (which you might see the term 'mineral glass').
Either way, the piezoelectric effect used for clocks is present to some degree in all anisotropic crystals (but often not strong enough to be useful). Quartz is just easy to work with/cheap to manufacture/etc, but there are many crystals that are far more piezoelectric than quartz.
There is actually a fast way to trouble shoot that issue. You can use gimp to do so. Create two layers make a copy of a known good section then past it over the entire map. Then you can use a filter "color erase" to find the difference in them. It will leave the different green wires showing. If you don't know what section is bad vs good. Just copy any one of them. If the one you copy is good you will only see a few or the one issue. If the section you copy is the problem section you will see a lot of locations as differences.
an actual use case for screenshot diffing. I never thought I'd see it in the wild.
people were saying debuggers are bad but imagine programming in terraria without gimp
The problem is, I imagine he had this problem many times without having a correct one to compare it to.
Brilliant.
All fine and good but wouldn't have helped him while he was building it in the first place. would only have been able to do it for certain repetitive structures. I'm sure he would have figured out a way to apply the technique but it doesnt seem like it was necessary after all. Now what I don't understand is why he didnt make a translation layer so he could use software to build the computer instead of building it by hand for 3 months. He's obviously already a genius.
I absolutely love this kid. I can't wait for him to get to his first interview and show off his creations. They're going to be falling over themselves to hire him.
It's comforting when someone is this much of a genius, you know? Like I don't have to be jealous or upset with myself for not accomplishing more in my life, because it would be like being jealous of another species for having more legs. This is just a level of brain mass so abstract from my personal universe that I can just enjoy it like a painting.
fun fact: The guy played a little bit of Terraria(8372 hours) before he started creating a computer in Terraria
You get a lot of "I built a computer in weird way xyz" these days, and honestly having done it myself in a few games, not as complicated as you might think. Then the video pulls up the RISC-V ISA and it was difficult to not loose my coffee through my nose. Hats off, that's really very, very impressive.
I do appreciate it. We're talking about components that have been engineered for decades to reach the scale of atoms.
Friggin' ATOMS.
Or just so webpages load fractions of a second faster we have globally distributed networks so the physical distance that a packet of information has to travel is kept to a minimum.
That people have been studying relentlessly to create more efficient algorithms to sort sets of data or to find a specific piece of data in a larger set and it's created a near art form, a discipline, and a now mandatory practice for future developers to get the best jobs...
I appreciate it all. Newton said "if I have seen further than others, it is by standing on the shoulders of giants". Our generation casually practices magic because we rest upon the bodies of generations of giants. We are incredibly fortunate.
"From Nand to Tetris" was a legendary class that got me understanding where he was going from the jump...you can make a computer from *anything* that go 0 1! This kid's brilliant and an insane attention to detail
"There's some serious grass going on" is now my favourite phrase xD
the gates he's using resemble transistors, which are like switches but instead of a lever to actuate it you have an electric signal.
That's exactly what I thought when I saw it. There are many different transistor configurations that can act as logic gates.
I don't know man, i mean, Tom could do all this in like 30 minutes max, cuz he's a genius.
obviously he'd impelement JDSL in Terraria too
well yeah cuz JDSL has templating and does bi-directional result caching.
First 5 minutes all the adders are built scaled and then the next 5 minutes builds the mode to solve the wire update problem.
The clock can be thought of as a wiggly stick, that pushes the switch. If you push a wiggly stick, it bends and flexes - it takes a moment for your energy to reach the switch. If you run forward holding the wiggly stick, it jiggles around while you run - you are constantly putting energy into it but the output of energy is not constant.
You push energy into a quartz crystal, that energy then comes out in certain intervals. It's essentially that simple.
The clock isn't a wire that allows current to pass through, it takes energy in, 'stores' it, and releases energy at it's own frequency.
Same thing happens when you put energy in by tapping it - the energy released is in the same form as if you added electric energy.
11:39
When you started talking about hitting buttons a million times a second, I saw the meme of the hand hitting the button super quick 😂
i gona say it, because this is literaly the best example of how human well educated, well eat, with amoun of resources (love, inspiration, educated family) can do a amazin stuff just for fun.
Ultimately you need undying passion. No matter the circumstances.
@@masterchief1520conditions are needed. A starved somalian child wonr do that. Sadly.
The magic oscillating crystal is neat! Its literally like an ultra-tiny, quartz tuning fork inside the little can.
I sometimes see genius stuff and my brain goes "I want to be like him".
In other cases i see genius things and I feel like an ant carrying bread crumbs to the nest for a reason I don't know while.
It's okay bud, every ant has its use
@@Wisdawms Thanks!
Have you watched the 8-bit series by Ben Eater? It’s mind boggling to think about the complexity that is involved in the tools we have today.
elements of computing systems Noam Nisan for understanding the basic building blocks and how they fit together to make up the cpui
I've watched his series 2 or 3 times and I've implemented his 8-Bit CPU in Logisim and can actually run his OPCODES. Not just Ben Eater, a bit different, but javidx9 has a series with his C++ OLC Engine where he walks you through building a 6502 (NES) Emulator! Emulators are harder than making the actual CPU! Both Series are great, and to complete the Trio we have to included 3Blue1Brown! Now a few other asides for a bit of extra flavor we can add Jason Tuner's C++ Weekly for good programming practices as well as The Cherno. There's a few others, but these are the most noteworthy for good educational purposes!
What is even better than this is the guy who made 16 bit CPU with only 8 basic TTL-like chips and memory... Very slow, but real CPU - many in the 80s would have been so happy for that thing as it would have been cheap to assemble home small computer in times CPUs were so expensive... This also came out lately on hackaday. I like how this guy did not just and-or gate it all, but use this stateful block too.
All of these are real cool deeds ;-)
Ben Eater? His projects are fun.
@@ontheballcity71 I think it was not Ben Eater, but some other guy. Search for "16 bit CPU 8 chips" on google. It is on youtube for "Jiri Stephanovsky" or under similar name... Ben Eater is cool too - just this literally only use 8 chips for the whole CPU!!!
This is the son of my mothers friend that I constantly was hearing about through my childhood :D
21:15
Where is the vsauce music when he said "Or, is it?"
10:00 Quartz is used in watches because it oscillates at a stable frequency of exactly 32,768 times each second when electricity is passed through it. You then measure the vibrations using a digital frequency counter and bobs your uncle you have a reliable clock.
en.wikipedia.org/wiki/Crystal_oscillator#:~:text=Quartz%20crystals%20are%20manufactured%20for,radios%2C%20computers%2C%20and%20cellphones.
Cool! Thanks for the link
Yesss. It’s all about the crystals. In watches, in computers, in everything. I remember changing the crystal in a Radio Shack Tone dialer to make a Red Box, because I never had a Captain Crunch Whistle. Phreaky days. Best way for a kid to call Nintendo of Japan from a payphone back in the 80s. Mowing lawns for allowance money was to pay for games, not to pay Ma Bell’s overseas charges. Crystals run the world.
Piezo electric
@@Anon.GYup
Exactly 2^15? Wow what a coincidence
We only relied on Malaria to treat late stage Syphilis between 1917 to 1940, and it was just to prolong the life of the patient. However in 1940 we got introduced to Penicillin.
And the use of Malaria to treat Syphilis got a Nobel Prize in Medicine in 1927.
The world is strange.
when I dropped out of uni for computer science I bought a book from amazon entitled "how to build a computer", it was a very short book which basically outlined what the kid did in the video. I read some of it, realized it wasn't really that hard and actually just a matter of following instructions, and carried on playing piano.
Loool
12:01 Humans do anything for cats. We love our masters!
This might be prime's first ever video when i know more than him !
man it feels sooo goooood
This player is smarter than that 17yr/o "software engineer" from a video you showed
We've had the Iron age. We've had the Stone Age. This is the Pissin' About Age.
~Karl Pilkington
My side project when I was 16 was to build a Java app that roles dice for DnD. I'm still quite proud of randomly generating a Nd20 roles. Just saying.
14:55 Fun fact: the term for that "soft rhyme" is called an assonance, which weirdly enough sounds very fitting for this.
that "yo i got kids" got me dieing
So basically he proved we're living in a simulator and we've created computer same way he just made a computer in terreria... I'm going back to sleep now 🤣
It's called a Virtual Machine for a reason haha
The "yup" after "everything is stored as 1s and 0s" had some strong "ah finally something I understand" vibes
12:30 A clock signal is just a tank circuit that produces an oscillation within a tight frequency range.
In this case, the origin of the word tank comes from a fish tank of water (filled to about halfway up the height of the glass walls) that is free to slosh around back and forth or oscillate like a pendulum. A natural oscillation circuit is a wire coil and a capacitor that is hooked up to an amplifier that keeps the water sloshing back and forth in a resonant situation. An amplifier tends to be one or more transistors. The circuit is fed back its own voltage level amplified and slightly out of phase with the oscillator tank circuit's current or voltage signal. In a capacitor, an electric field on some conductive plates are allowed to charge with positive on one plate and negative charges on the other plate. During the charging process, electron particles collect on one plate, while the opposite connection has electrons removed from it producing a positive polarity equal and opposite to the one opposite to it. A coil permits direct current flow easily but restricts higher current transitions by building a magnetic field around the coil as the current flow increases. The coil's magnetic field collapses if the current is taken away, and as the magnetic field collapses the coil's windings absorb back the established magnetic field creating a reverse current flow in the coil. A coil and capacitor can be placed into a parallel or a series configuration, but the tank circuit typically has a capacitor in parallel with a coil. The electrons within this circuit flow first one direction, then the other direction in an oscillation at a resonant frequency that is given by a physics equation.
To know how a bipolar transistor works one must first know how a diode works. A diode permits current flow in only one direction. A silicon diode is created with, what else, silicon with roughly half of p or positive material that has an almost full outer electron orbital (physics model) that can be seen by the S, P, D, F, etc, orbital shells of an atom. The chemical properties of these atoms are displayed in the periodic table of the chemical elements. The other silicon half of the diode is doped or infused with atoms that have only a single electron in their outer orbital shell--to make N or negatively polarized silicon.
When the P and N doped or infused silicon are joined together in a junction, it produces a PN junction diode. This is because a natural electric field is produced from one doped part to the opposite polarity portion.
It was discovered by experimentation that if you reinforce the electric field, then no current can flow until the field grows in size to such an extent that the field gets stronger and stronger until the force is just too great and the circuit gets a breakdown situation where the extent of the field gets larger than the PN junction boundary itself and a sudden arc of current flows through the device backward in a largely destructive way unless measures are taken to limit the current flowing through there using a series resistor of high enough resistance, but if you opposed the PN junction established electric field, then the field collapse being attempted permits only partial field collapse due to the rate of how many electrons are coming into the PN junction's field. As the field collapse that is underway reduces the field size, the diode's in-line innate resistance to current flow shall cause the junction to heat up.
In the first case, the PN junction diode is accumulating a greater field size, it is just like the charging of a capacitor.
A bipolar junction transistor inserts a third signal as a control into the junction area. It is called the base material. The typical configuration of the doped or infused silicon is either PNP or NPN with the middle letter being the base junction that typically acts as the input terminal that controls the transistor's current flow. Transistors and resisters in various configurations act as amplifiers. Some amplifiers invert the input signal while others do not. An amplifier has an innate delay due to junction capacitance that must be either charged or discharged depending on the incoming signal for the circuit.
If the bipolar junction or diode input capacitance is too high, it shall make the signal output lag its input signal more and thereby limit significantly the highest frequency range supportable by the amplifier and whatever oscillator
So much foreshadowing in this about the prime now lol
Imagine the clock that "oscillates" as a bucket that turns over once full and empties itself, then turns back up again.
The water is electricity and you just feed it a stable stream of electricity, so that it turns over at predictable rates, dumping the electricity into the computer.
@7:35 looks like a d-latch with pwm clock signal. basically toggling the out put with the pwm signal, basically a sort of buffer.
16:45 if you build stuff like this, you can quickly trace back invalid values since you can see all the lines and states...
I'm an X US Naval Nuclear Reactor operator who then majored in EE and CS. Guess i never felt inspired to build something like this in game because of the headaches of building them in real life.
I find it quit impressive that people do this stuff. I am curious why he didn't use a map editor for terraria and chose to make it all inside terraria the way he did. i would have thought the map editor would have been faster. Well maybe not if you have to keep switching back and forth to test it.
damn
and i thought i was epic for building an 8 bit adder inside minecraft
oh btw, can we get a reaction to a minecraft supercomputer next?
ive seen some of em being able to compute graphs
someone finally properly made minecraft in minecraft pretty recently, the computational redstone scene is insane
(they also have their own mod that does more or less what the mod for terraria does with wiring but for redstone)
This is one of those times that somebody is into something so much more than you are that you just look at them and go "Uh huh. Okay.",
"worlds least secure combination lock" I assure you, master lock has you beat by miles
They explains computer architecture in such an intuitive way. This guy would do great as a professor.
Computer clocks basically are magic
Source : Resonant frequencies chapter in Chemistry
25:16 Who’s Zed? Bruce Willis: Zeds dead. Zeds dead.
"I have kids" yo, you don't even need to go that far. I have a beer and a bag of chips. I won't even put that down to think about what it would be like to even watch someone do that for 5 minutes, let alone plan, execute and debug an actual computer in terraria. no. I've sipped my beer twice just while typing this, no way
This guy at 16: Builds a computer in Terraria
Me at 16: Comic books are cool
When designing chips, debugging is usually done by having unit tests for each small module used in the bigger design. If some bug DO leak out on the actual silicone chip, well there is no way to change that unless you do some software patch.
"I'll give you a few seconds" Bruh, I paused it for like a minute to look and then Prime paused for a bit. We ALL have had a "few seconds" lol
The last question in my Digital Logic Circuit course's final exam was to construct a 4 bit processor with basic arithmetic operations like add, subtract, multiply and divide. we were also supposed to have appropriate registers on it to store the results.
This kid reminded me of how much science in computer science that I’ve forgotten over the years. I think smoke is coming out of my ears as the gears start churning again
I tried building a computer in Minecraft once, it helped a lot with my understanding of all low-level stuff.
This will be my guantanamo bay punishment. You can be released when you build pong in terraria.
18:48, Pixel diffing would actually work as a cool debugging tool here lol
What's also impressive is how this kid made an entertaining video describing his achievement.
I couldn't stop laughing at the fucking end man, this kid started doing an AND gate and ended-up writing the whole fucking infrastructure of the world in 3 months.
as someone who does wiring and has made about 4 basic CPUs in terraria,
it's very similar to real life and you do not need to exclusively use faulty gates. the only thing you really need to keep in mind is how wires interact on the same object
criticisms:
"a lot of circuits have to be redesigned in this new paradigm": no, they don't.
"this is a compact circuit to add two one-bit numbers": that is a very large circuit. instead, use an or gate, an xor gate, and an and gate, place them next to each other in that order, put three off lamps on top of each one, horizontally connect wires going across, connect or and xor via one wire, xor and and via another, the or-xor wire is carry and the xor-and wire is sum. this is tileable with no gaps and is the most compact design i know of
"I figured a way to add two numbers together. Obviously the next step is built an entire CPU."
🤣🤣🤣🤣🤣🤣🤣🤣🤣
I feel stupid! And I even had basic CPU design in college 😂 This little guy is simply a bloody genius! And I see him make it very very far! He’s not only got a genius mind but also sheer grit and determination.
Take a vibrating quartz crystal sandwiched between two metal plates. Quartz is piezoelectric meaning it turns mechanical oscillations into electrical oscillations which can be amplified. It also turns electrical oscillations into mechanical oscillations so some of the amplified signal gets fed back into the crystal to keep it vibrating.
The vibration is basically a soundwave echoing inside the crystal so the frequency is the speed of sound through quartz times the distance it travels. High frequency crystals are just thin discs with the sound wave going from side to side while low frequency crystals are shaped into tiny tuning forks.
19:40 I laughed so hard at this. Then I laughed even harder to your reaction of it. Good stuff, this video :D
You throw lightning at a rock and it counts. That is by definition magic.
What a chad. "I want to build a 32-bit computer inside your game? Oh, what you say? It was never optimized for that? Okay, I'll make it optimized myself."
Can't wait until you discover dwarf fortress computers
I don't have a company, but I want to hire this kid.
When I was 16 I could barely understand pointers and memory in C yet this kid is designing logic gates and a full computer within a game. I have a feeling we'll see more from this kid doing great things the rest of the decade.
Absolute galaxy brain move to mod the wiring system, god tier perseverance.
in the 80ies, my friend 15 at the time built his own MC68000 based computer, same guy when MP3 came from frauhofer made a hardware mp3 player before that was even popular, another friend wrote a raytracer at the same age.. So not sure I am super impressed, since today its easier to get information on how todo these things :)
Yer a c word.
The base of sequencial electronics is the Flip-Flop (the output is a function of input and internal state 0 or 1).
A register is a bank of flipflops. The ALU is a bank of registers wich imputs are both data and code (the instractions).
From electronics to assembler, then to C, etc. The path of old school engenieurs...
He should write his "simple terraria inside terraria" like dwarf fortress - then you're playing top down terraria while playing sidescroller terraria - That's like.... FOUR D's!
The "state" is more of his "clock". Since he is doing things by hand, it is slow. He has to accumulate all of the settings first, then release the clock in the form of what he is calling "state".
Going further since you mentioned it. The clock is just a rhythm. The crystal is used because it is consistent. At each cycle, the computer performs an operation based on the instructions supplied at that moment. In between those instances are the opportunity to set the next instructions. That's all it is. If you were adjusting the instructions as the clock is executing, everything would be chaotic and computers wouldn't be very useful because they wouldn't produce consistent and reliable results.
The malaria to cure syphillus worked because syphillus is a parasite. Inducing a high fever over a long time kills the parasite. Malaria induces a massive fever and can be managed until to clear the infection... often.
1 year later : "Oh, and now I do it in VHDL and made my own ASIC"
this kid is absolutely cracked out of his mind
If you want to understand, read Charles Petzold's book: Code. It's basically a childrens book, by which I mean that it is written in a way that anyone can comprehend, while not compromising the essentials. Read the book and you can, theoretically, build a computer with nothing but transistors, or similar.
I can't believe you reacted to this.
This obviously took a ridiculous amount of time and effort to do, and honestly very few people post-college really have that time to devote to something like this. Then add a wife and four kids
However, even with the praise I think the difficulty and discipline required to do this was severely understated. Twitch chat saying that it's just NAND gates all the way down - it's not even close to that fucking simple. It clearly took a lot of research and knowledge to have to adapt the architecture to work in Terraria. Then he just casually mentions writing a mod which completely rewrites the whole damn wiring system. Not to even MENTION how he didnt go absolutely insane debugging this fucking thing. There were many places he could have just ended it there but he went the whole mile.
The kid is next level genius. I mean, yeah, building a full on computer in Terraria is incredible. But not necessarily unique since the same thing has been done in Minecraft. But then he sat down and learned how to modify Terraria. In 3 months and 600 hours, he's basically taught himself a high level language, assembly, and the inner workings of a CPU. That's about 12 credit hours at a university (with labs).
Get real now. You don’t even know how a computer works, Netflix dude.
14:49 I remeber also that they used to cure depression with malaria
My thoughts on ThePrimeTime monologue on the kid age: "OMG THIS IS LITERALLY ME"
This kids gonna be a millionaire by the time he's 35... and here I am at 27 just getting exposure to the entirety of CS.