Episodes
This is the first in a series of comments about the book “How To Code C++ From a Simple Idea To a Game You’ll Understand!” Each episode will be short and focused. You can watch the video versions on YouTube at https://www.youtube.com/channel/UC4K_WBflLr2Cz0Sje_xTXkA You can also get your own copy of either the hardcover book or […]
Published 01/28/22
This is an interview with Conor Hoekstra about C++ algorithms and ranges.
Conor presented my favorite talk at CppCon 2019 called Algorithm Intuition. I asked him to talk about algorithms on this podcast and he agreed. This just proves again why CppCon is the best place to be when you want to improve your C++ skills. The presenters were all going beyond just getting up on stage and answering a few questions. They’re real people who are willing to talk and mingle and generally help out in many...
Published 09/25/19
Josh Lospinoso discusses his new book C++ Crash Course. This is a book with a focus on C++17 written with a desire to simplify and make it easy for you to learn C++.
I got this book during the CppCon conference and have to say, this is a fun book. It’s got lots of examples, diagrams, and tables but they’re not boring. Josh does a great job of making them blend in and support the book. Well done!
I want to apologize for mispronouncing Josh’s name the first time I said it in the interview. I...
Published 09/25/19
This is an interview with Asad Naweed about augmented reality.
I met Asad at CppCon in 2019 when he asked some questions at one of the presentations I also attended. We started talking at first about teaching coding. He has taught others how to code through education programs at Google. I especially liked his business card that I recognized immediately as being related to Google Cardboard. You can find more information at https://vr.google.com/cardboard
I asked him to come on the podcast to...
Published 09/24/19
This is an interview with Nicolai Josuttis about how the C++ standardization process has changed over the years.
You can find more information about Nicolai at his website http://www.josuttis.com
I first came to know about Nicolai through his book “The C++ Standard Library – A Tutorial and Reference” and recently started reading his new book “C++ 17 – The Complete Guide”
If you’d like to improve your coding skills and deepen your knowledge too, then browse the recommended books and resources...
Published 09/24/19
This is an interview with Sean Hale about how he got into computers and then turned a degree in literature into a job as a software development engineer.
I met Sean at CppCon in 2019 and asked him to be on the podcast because of his experience.
You can become a software development engineer without a college degree.
This is something I mention all the time.
Sean has a degree in literature. But what gave him the skills to become a software engineer was a combination of a really amazing...
Published 09/23/19
Is there something you can do that will help you learn coding? When learning something new, it helps to focus on associations, especially opposites. It’s hard to learn separate facts and ideas. Linking them together lets them reinforce each other. Instead of being more work, they will lend support. This will improve your memory too. Then, use what you learn for another link.
I first discovered this helped me learn languages. But it can also help you to learn anything new. This is the advice I...
Published 09/23/19
How do you design your application so it scales well to a big size? Scaling needs to be verified early in the design to prevent costly mistakes that usually appear later. You can scale in many ways. The number of users, amount of data, and code size are common. Avoid hard limits in the code and leave room to grow. Test large amounts of data and users even if they’re not real.
This episode describes some design decisions I made recently to let my game handle a large number of game objects.
If...
Published 09/22/19
How do you create unique and random game worlds and maps? Unique and random game maps and worlds can be created procedurally in code using noise. The noise is good for simulating nature because it produces values that change randomly in small amounts with no abrupt changes and provides realistic curves to rivers or hills. Noise is not good for straight or square items.
What does noise look like?
We normally think of noise as something we hear. Something is noisy or loud. That’s not the type...
Published 09/03/19
This episode will explain how you can use curly braces in C++ to create a new scope. You can use this ability to control name visibility and reduce name conflicts.
And you can also use curly braces to control exactly when object constructors and destructors are run. This is possible because C++ has very specific rules about when objects are constructed and destructed. Other languages that use garbage collection can’t give you this level of control.
If you’d like to improve your coding skills,...
Published 09/03/19
What’s the best way to handle frustration when learning to code? Knowing that all developers face frustration at times is a big help. You’re not alone. And it doesn’t mean that coding is not for you. Treat it as a learning opportunity and stick with it until you solve the problem. Keep trying ideas until one works. Remember the satisfaction waiting for you when your code works.
This episode describes how we try many things before we finally find a solution. And why is that solution the last...
Published 09/02/19
What happens when code has undefined behavior? There’s hundreds of ways code can have undefined behavior. What happens is completely up to the compiler. You should not depend on undefined behavior because compilers can completely change or delete sections of code. Since the behavior is undefined, then compilers can optimize code in ways you never intended.
I’ve known about undefined behavior for a long time. But this episode describes something that surprised me. I was not fully aware of the...
Published 09/02/19
This design pattern will help you make sense of your game design as it gets bigger.
You can listen to episodes 77, 86, 87, and 88 for more information and background. This episode will start tying things together. I didn’t originally describe this because it really is a merging of many patterns. But as I started coding this myself, I’ve realized that there’s more to it than just sticking a few design patterns together. Enough that you can benefit from a description.
Here’s the big picture....
Published 12/10/18
There’s some special floating point values that you should be aware of. Zero, infinity, and not a number are three cases that might surprise you.
Let’s get started. First of all, do you know the sign of zero? Is it positive or negative?
Depending on your country and traditions, zero might either have no sign or be both positive and negative. I think it’s standard for most places that zero has no sign at all. It can be important when a value approaches zero to consider what direction it’s...
Published 11/25/18
Looking for more advanced training to help you better understand how to actually build something in C++? Want to go beyond example snippets that don’t really teach you anything? How about being able to ask questions or get feedback on a suggestion?
You can get all these things by attending a live game development session. This is where you get to watch and participate as I work on building a game. This is real code and unscripted.
And now through the middle of January 2019, you can get a...
Published 11/19/18
Be careful with floating point numbers when building games.
You could be in for some big surprises if you don’t understand how computers work with fractional values. You might be able to write an app to keep track of your friend’s addresses without using any floating point numbers. But most games will need math that uses fractional values.
That is if you want any kind of game with smooth motion. If your game consist of typing letters in words, then maybe you won’t have to worry about this....
Published 11/12/18
Do you know the differences between points and vectors? You might be surprised. I learned a few things myself recently when I implemented points and vectors in the TUCUT library. Listen to episode 240 to learn more about TUCUT.
As to which you should use, that’s sort of a trick question. You’ll most likely use whatever your game engine provides. Unless you’re writing your own library like I’m doing, the idea of a point and a vector are very basic concepts that would be provided for you.
Any...
Published 10/29/18
You don’t need a lot of math to program. What you do need is usually simple. But you do need some. Don’t worry, it’s not that hard and I’ll explain it so you can understand. Game development probably needs a bit more math than you might guess.
Let’s start with a point. It’s a simple concept that really just represents a position. A point has no dimensions itself. In other words, it has no length, width, or height. It just exist at some location.
It’s the location that has dimensions. If...
Published 10/15/18
I just got back from CppCon 2018 in Bellevue Washington. And since this is a podcast where I teach you how to program, I thought I’d share something that I learned at the conference.
It was a great conference with full days that went from 8 in the morning to usually 10:30 at night for five straight days. And then there were classes before and after the conference. There were so many choices for presentations to attend that it was tough to choose. It was packed with people. I think there were...
Published 10/02/18
Installing Linux, GCC, GDB, Git, CMake, LLVM, Clang, Boost, SFML, CodeLite, Sublime Text 3, And Dropbox On a $140 Lenovo ideapad 120S makes an ultra portable C++ programming laptop.
Listen to the audio podcast to hear my story about how and why I decided to buy an 11 inch Lenovo ideapad 120S. This is the show notes page and here you’ll find the detailed step-by-step instructions that I promised in the podcast. I spent over a week researching and documenting everything I did to get this...
Published 09/17/18
In the end, it’s you vs. you. Is this about living or dying?
It seems that this is a common inspirational quote used a lot in fitness clubs and weight loss programs. But I first saw it on a t-shirt this weekend.
I was at one of my favorite places to eat, Aria Kabab in Queens, New York. I told the person that the quote was very true and he asked me how I interpreted the quote. He had a different interpretation. And it was interesting enough that I left thinking that I was going to discuss it...
Published 09/03/18
Some people say that raw pointers are evil and should be avoided. Raw pointers are useful when used properly. This episode explains how to use raw pointers along with smart pointers and is taken from a recent game development session.
I have a text-based role-playing adventure game that I’m working on with a main hero in the game. I want the hero to be able to move around. It wouldn’t be very adventurous if the hero had to stay in the same spot. This means I need to keep track of the hero’s...
Published 08/20/18
You can join an actual game development session almost every Saturday. This schedule might change in the future. But until then, you can find me working on a video game almost every Saturday.
I’ve brought together a lot of code that I’ve written over the past five years into a single library that I use in the game development sessions. There’s a lot in it with eight major components so far.
Testing library. This lets you think about how you intend to use your code before you write it and...
Published 08/06/18
There’s a lot you can learn about programming. But do you need to know it all?
I’ve been reading a lot about the Pareto principle. You’ve probably heard it as the 80/20 rule. It says that you get 80% of your results from just 20% of your effort. And it goes beyond that. It applies to anything with positive reinforcement. That’s where you get rewarded for doing well which causes you do do even better which results in an even bigger reward and it just keeps going.
If we try to improve our...
Published 07/23/18