Finding how it works (Q&A): Parker Lawrence is a CHS student who is working on his own game engine, programming language, and computer.
Hang on for a minute...we're trying to find some more stories you might like.
Email This Story
What inspired you to pursue these projects in making your own game engine, and computer?
PL: I’m really fascinated with how things work, so if I get an explanation of how something works, I don’t feel like it’s enough. So I like doing things myself, I like building things myself, with the engine and the computer.
Where did you learn to do these things?
PL: I’m mostly self-taught, just things off the Internet that I find. I think the more interested you are in a topic, the more you think about it, the better an understanding you get.
So what projects have you worked on, are working on, or will work on?
PL: I built a computer out of [integrated circuit] chips and wires. I made an arcade machine that was an arcade machine with an arcade machine frame. I built a Voxel engine on OpenGL and C++. At one point-this doesn’t count as a project necessarily but Google Foo.bar has these coding challenges that I was selected for. They emailed me a recruitment email thing, and I was too young so I couldn’t do anything with that. Those are the big ones.
When you say you made an arcade machine, what made you decide that you wanted to do an arcade machine or your own computer?
PL: Mainly with the arcade machine, I thought it’d be pretty cool. I’ve seen other people make arcade machines before, and just once I thought I had an understanding that I could probably build the arcade machine, and I knew what parts would have to go into it, it seemed easy enough so it seemed like it’d be fun. And with the computer, it seemed like a really fun challenge since it has it’s own architecture, I had to make my own operating system for it, and to make my own operating system I had to make my own parser so I could write some kind of language that would run on it. It just seemed like it’d be a lot of things that would be really good to learn, and it’s mainly what I do for entertainment.
So what are some projects you are looking to start in the future?
PL: I was thinking of making a robot except instead of wheels, I was going to give it legs, which people do a lot. I was thinking it’d be good to learn all the mechanics behind that, and I’d definitely end up learning a lot of engineering. Another thing I was thinking of doing was building a calculator, but instead of using electrical charges, instead of using wires and stuff, I was going to use the polarization of light. So horizontally polarized light was going to be a one, and vertically polarized light was going to be a zero. Using that, you can build a calculator that runs off different principles than binary. It’d be a different kind of calculator.
So what are your dreams for the future, like what career you want to go into, what college and the major?
PL: My dream college would be MIT and definitely computer science major, because that’s what really interests me. In the future, I’m not completely sure, but definitely MIT because coming out of MIT there’s a lot of innovation that comes out of there. It’d be fun to be a part of that.
So if you were in computer science, what problems would you use your computer skills to solve?
PL: There are a lot of computer science questions to answer. There’s protein folding, which is something that needs a lot of processing power to complete. That’s one of the things that I might be able to contribute to when I’m older and have a much better understanding of things.
Where does you think these skills take you, like does it help you learn anything in other fields that you are learning in school?
PL: Some of the stuff with this new project I’m working on with the polarization of light, I had to use a lot of calculus, so when we get to that point in my math class, there will be a lot of that stuff I’ll know. In other things too, it really overlaps. Definitely in classes like tech support and computer science for sure, because the work I’m doing on the computer taught me a lot about the architecture of a computer, so it gave me an extra push on some unexpected tests and stuff. In computer science, definitely.
So on this computer you are building, you said you use IC chips and wires. Could you explain what they are and how this computer is different from other computers people could make on their own?
PL: Normally when people build a computer, it’s kind of like Legos because you have one piece that’s a CPU and one piece that’s a motherboard, and you just put them all together. But with the computer that I built, instead of having one piece that will be the processing unit or will be the [random access memory], each piece will be something more basic, like if both inputs are at a higher charge, the output will be at a lower charge. Out of those small pieces, eventually you put them together in a way that makes sense, and if you pay attention to the architecture you can come out with a working computer. But when you do it that way you have to pay a lot more attention to how everything is interacting, you have to have a very deep understanding of what the computer is going to be doing at all times.
About your gaming engine, what makes it different from other gaming engines that we might see?
PL: That one’s really cool. So normally in other gaming engines, everything is based off of something else, so you could go into Unity and you could piece some things together, you’re going to have a higher overhead because you’re supporting other things. Normally in a gaming engine things are loaded up as static polygons, so the wall would be made of polygons, the ground would be made of polygons. But my engine is Voxel, which means instead of the wall being just polygons, it has certain values that indicate what material the wall is or what material the ground is, and normally there are certain hardware limitations that means that if you do that the world has to be really blocky. But I got past that by using something called the dual contouring algorithm, which means that even though you’re storing exactly what the material of everything and the volume instead of just the surface mesh, I’m not sacrificing the detail. Since it’s just an engine you can build anything off of it, so if you were to turn it into a first-person shooter, and you drove a car into the wall, I could have that wall actually break, and I can have things respond in ways that pay attention to physics.
So when you’re coming up with ideas and projects, what is your process of thinking?
PL: Generally I start with the project and just how I want things to turn out in the end, and then I think of on how the project would have to work and how the pieces would have to fit together. And then I just go one piece at a time. I start with something that’s small and testable, with the building of the computer I started with just a single register, and I’d make sure that register works, and then I’d build on top of that, so I’d make the [arithmetic logic unit], and I’d make sure the ALU works and then I’d just keep expanding it like that, with just single testable pieces.
So if other people wanted to follow your path, what advice would you give them?
PL: Never stop taking on projects. Even though you can be really impressed and really proud of one thing you made, it shouldn’t be the one thing. So no matter how proud of yourself you are, you just gotta keep improving.