Published: June 2018
Printed in full color.
Jump right in! Start programming cool stuff on page 1. Keep building new and different things until the very last page. This book wants you to play. Not just play games, but play with code. Play with programming. Because the best way to learn something is to have fun with it!
Whatever you want to do, this book has your back. Best of all, you get to create awesome games and say, “I made this!”
Q&A with the Author:
1. Why a second edition?
I wrote the second edition for the very best reason possible: to help kids of all ages and backgrounds learn even better!
It finally felt like I could improve on the original. Web technologies—especially the ones that are used in this book—have continued to improve since the first edition came out. Plus, thousands and thousands of kids learned from the original. The feedback from many of them made it clear which sections of the book work and which could use some tweaking.
2. What cool new stuff is there?
Web browser technology has gotten a lot better since the first edition. That means lots of nifty stuff for readers. Some of the new features in the book include fire, star fields, and realistic terrain. We also use mouse and keyboard controls that let us zoom in and out and move through the games and simulations that we create.
More importantly, improved web technology makes 3D programming even easier than it was a few years back. This meant that nearly every chapter got rewritten to introduce the fun stuff even sooner than before.
Cool new stuff and chapters that are more fun? Yup, it’s a big deal.
3. Why did you write 3D Game Programming for Kids?
I wanted to share my love of programming with my own kids as well as the next generation of programmers. I chose to wrap the message in the deliciousness of 3D gaming because that makes it more fun for kids (of all ages).
We all want to create something amazing. So why not create amazing things as you’re learning? My hope is that this book will enable kids of all ages to bring their ideas to life. And, if they fall in love with programming along the way, that would be great!
In the Internet age, what could be simpler?
5. What kind of games will I be able to make with this book?
The book includes a nice variety of game types. Much of the first half of the book is spent creating a 3D player in a 3D world with a focus on making it as realistic and playable as possible. After that, we learn space simulations, puzzle games, mini-games, and games that simulate real-world physics. Some games include scoring, others a countdown timer, and some a little of both. Even though the name of the book includes “3D,” we also spend time on two dimensional games (think Super Mario Brothers). About the only thing we will not talk about is a multiplayer game—maybe that’s something for another book!
We won’t go into great detail about all of these things—this is a getting-started book. But you should see enough to know how to start building these on your own. I cannot wait to see what you create!
6. Will I learn enough to be able to move on to other programming languages?
Take arrow functions for example. They are wonderful little space savers for returning simple values from functions. But using them begs the question of what a function is, what a return statement is, what a bare function is, etc. It is better to avoid concept overload by sticking with with plain-old (but still powerful) named functions.
And sure, the book could have taught the traditional approach first, then introduced cool ES6 features. But let’s face it, kids aren’t going to get nearly as excited about ES6 prettiness as they are about creating planets and spaceships and fun, weird little worlds. So the book is optimized for the fun stuff.
How I Learned to Program (and Why That Matters to You)
How YOU Can Learn to Program
What You Need for This Book
What’s New in the Second Edition?
What This Book Is Not
Let’s Get Started!
Published: June 2018