Build This Video Game In One Hour Even If This Is Your First Time Programming And Use It Again Later To Continue Learning
Now that you have a working software development environment setup on your computer and know how to use your development tools, it’s time to do more than just print hello or some text to the screen.
This class will introduce you to topics that will be covered in more depth later. This is like learning how to drive a car without yet knowing how the engine runs.
I’ll be honest, this class is not how I would normally learn myself. But I also know and understand that not everybody is like me. For me, I probably would want to understand how the engine works first. It’s hard to say because when I started learning how to drive I already knew how it worked.
Was that because I planned it that way? I think it was more curiosity and a desire to explore. I was equally at home reading a book as I was working in a shop. I remember when I was younger and my uncle had a pickup truck that he modified to fit big wheels. The wheels were too big to fit inside the truck body anymore and the whole truck had to be lifted up.
One day, he was changing the brake pads and I was helping. He showed me how to remove the springs using pointy and curved and twisted tools and then how to put them back on again with the new brake pads. We did one wheel together and then I did the others on my own. At least that’s what it felt like to me. He was still there. But it was as if he was my helper and I was the master mechanic.
I was small enough at the time to walk under his truck with only a slight ducking of my head. As far back as I can remember, I’ve always wanted to know how things worked. Everything. I was fascinated with complicated things and even simple things such as how a doorknob transformed a twisting motion into a sliding motion of the latch.
I would get lost in observing things. Patterns. Colors. Things I could see and manipulate.
My natural inclination then with programming is to learn how everything works first.
You might think this goes against my nature because we can’t see a program running. But again, it’s hard to know because I learned electronics before I ever learned that programming existed.
So I do know how computers work down to the microscopic level. When I write a method that declares a local integer variable, I can picture in my mind the transistors turning on and off to hold that value in a CPU register. I’ve built small computers by wire wrapping all the connections between the chips so I understand how data moves around. I’ve worked in a factory that makes integrated circuits and know how the chips are built. I’ve seen them up close through a microscope through each step of construction. And I’ve worked in a factory that makes the hard drives, so I also understand at a deep level how the computer stores information and retrieves it when needed.
All this means that when I started learning how to program, I did understand how the engine works. And that would be the way I would naturally teach you how to program if weren’t for the understanding that we’re all different people. That means we learn differently. On top of that, it’s always better to learn while having fun.
The normal way to learn programming is to study topics individually until you have enough knowledge to do something with. Until then, about all you can build are samples that don’t really do anything. In other words, you could learn things like variables, loops, if statements, methods, and classes until you had a working knowledge of all of them before building anything.
Instead, you might be the type of person who learns best when you see something working that’s more than just a sample. You’ll see a lot of things in this class that we won’t have time to fully explore. So I’ve kept the program simple and short on purpose.
It’s meant to show you some of what’s to come but still be small enough that you can learn something. It’s a racing game but don’t expect fancy graphics or sound effects. There will be other classes that explore topics in detail and others that build more elaborate projects.
You’ll create a simple text-based racing game in this class that has all the main elements of a full featured game. It will handle input, update the state of the game, and display the game in a simple game loop. Your game will have collision detection so it will know when the car crashes into a wall.
The game is really a larger sample that does something fun and will help you understand how things fit together when you begin learning about them in depth or begin bigger games or projects.
After taking this class, you’ll have something that you can build on as you learn more. You’ll be able to take what might have been just theory and go back to your game and make it better by applying what you learned. And this will help make your learning stick with you better.