The LCTHW Weekly Update #3

The LCTHW Weekly Update #3: Hurricane Milton, Studio Redesign, C++ Praises, and Project Ideas for Everyone.

By Zed A. Shaw

The LCTHW Weekly Update #3

Hello, Zed here with this week's status for learncodethehardway.com. This week I'm back from Milton, studio redesign news, have two blog posts about C++ and project ideas with a lot of depth, an apology to some of you, and more interesting and useful

You can read this email at:

https://learncodethehardway.com/emails/13-lcthw-weekly-update-3/

Fun Little Site Redesign

You may notice a new look to the site. It's not permanent, I just had the fun idea of taking the color palette and the hilarious images from Turing's Tarpit and making the site look like an old school 80s video game. I'll probably do a fun redesign every few months. The only downside to this design is I turned off "light mode" and probably won't have a dark and light mode anymore going forward. It's way too hard to support and it seems almost everyone wants dark mode anyway.

Let me know if you agree with that decision either way.

Finally Back After Milton

Milton was reported as going to pretty much wreck where I live near Tampa. In order to save some of my equipment I put almost everything in my studio up on a high shelf and counter top in my house, wrapped in plastic and duct tape. After I came back from evacuating my house the place was a wreck, but I took this as an opportunity to finally rewire my studio so I can reliably record every day.

For those of you who don't know, my house has terrible wiring and I've had to deal with all sorts of audio problems because of it. To solve that would require tearing down everything I had, rebuilding it to avoid any ground loops and noise. Since I had to tear everything in my studio down anyway to save it from possible flooding I was able to do just that.

Now my sound setup should be way better so I'll be able to finish the videos for the courses that I've been avoiding all this time.

Last Day For 20% Off

Today is the last day to get 20% off on everything, so if you wanted to get a course at a lower price, get it before the end of the day. This discount also includes my Epic Supporter Pack which is everything I've made and everything I'll make in the future for one price.

https://learncodethehardway.com/courses/

Apology for To 1500 of You

I had a typical mistake in the unsubscribe some of you used that set the correct date you unsubscribed, but accidentally inverted the unsubscribe field. I had this code for storing you unsubscribe:

emails(setting) {
  return await User.update({id: this.id}, {
    unsubscribe: setting, unsubscribed_on: Date.now()
  });
}

Which makes sense, but, I did this for this function call:

user.emails(false);

Which also makes sense if you read it as "emails are off" but it's actually wrong given the other code. This is fixed but let me know if you still receive an email after this and you didn't want to.

Pro-Tip: Going to C++ Jail

I found out that you can use $ as an identifier prefix. It's not standard but it's supported in every major C++ compiler, so I went ahead and just converted all of my member variables to use it. I'm sure everyone who does C++ hates it, but I love it. I now write my code so that $var means it's a member variable of a class, and $VAR is a global. It's glorious and probably going to send me to C++ hell.

Blog Post: C++ Is a Lot Of Fun

I wrote about my experiences with C++ so far and it's a fun read that attempts to update your information about C++:

https://learncodethehardway.com/blog/31-c-plus-plus-is-an-absolute-blast/

C++ has a reputation as being an overly wordy complicated language with tons of <> all over, insane class hierarchies, and template metaprogramming everywhere. I've found while working on projects to build my skills that modern C++ is very readable and not anything like it was decades ago. For example, here's some layout code from my Roguelike game:

return hbox({
    hflow(
      vbox(
          text(format("HP: {}", player_combat.hp)) | border,
          text($status_text) | border
          )  | xflex_grow
    ),
    separator(),
    hbox(),
});

Yes, that's C++ from the FTXUI project. Not a single <> in sight and you probably couldn't even tell it's C++ from this description.

Blog Post: Very Deep Not Boring Beginner Projects

I've received a lot of requests for possible projects that beginners can start, but I wanted to make a list that wasn't just a bunch of little job interview puzzles. I present to you a very long essay detailing 10 projects that anyone could start, but that lead to many deep topics in computer science:

https://learncodethehardway.com/blog/32-very-deep-not-boring-beginner-projects/

Included is links to starting resource, similar projects, examples, working code, "Awesome" reference collections, descriptions of what the projects teach you, and how to get your first one going.

My Roguelike Game is Fun to Work On

I'm having the best time working on my Roguelike game:

https://git.learnjsthehardway.com/learn-code-the-hard-way/roguish

During my Hurricane Milton escape I managed to get an ECS system working, created a scalable text rendering system, and started exploring the idea of "how far can you push text in a game." Next steps for me will be to get more basic systems like collision and line of site working before I start working on the actual narrative theme and enemy systems.

If you're curious about a project like this, take a look at the code and feel free to email with questions about how you can start working on one too. I think a Roguelike game is probably the best first game development project anyone could start because it helps you focus on the algorithms that make a game.

Twitch C++ Streams Starting Again

Now that I'm back and my studio is all cleaned up and working nicer I'm going to start streaming again. First stream will be October 25th at 4pm just like before. My streams are slowly becoming a kind of "coworking session" where I work on my game, play some awesome music, and just chat about what I'm doing. If that sounds like something you'd like then I hope to see you there at https://twitch.tv/zedashaw

Here's a bunch of links I collected over the last few weeks which may help you solve something, entertain you, or are just interesting:

https://github.com/peer-calls/peer-calls
An amazing looking project that lets you do basically a Zoom call on your own hosting. I may try to run this and see if I can hold classes or maybe even get some of you to join in while I'm streaming to increase that "work from home coworking" feel.
https://www.midiaresearch.com/blog/most-gamers-prefer-single-player-games
Most gamers prefer single player games to multiplayer.
https://calebporzio.com/i-just-cracked-1-million-on-github-sponsors-heres-my-playbook
The creator of Alpine.js talks about how he makes money from github sponsorship. If you're looking for ways to make money through open source then this is a definite read.
https://www.richardlord.net/blog/ecs/what-is-an-entity-framework
This was the best article I read to describe the Entity-Component-System architecture style in games. My take on ECS is it's basically a SQL database. Entities are just table ids. Components are just database tables. Systems are just SQL queries.
https://gameprogrammingpatterns.com/
Did you know that Bob Nystrom--the author of Crafting Interpreters--is also a long time Rogue hacker? He even wrote a whole book on patterns frequently found in game development. You can also watch him talk about his game at the Roguelike Celebration on Youtube at https://www.youtube.com/watch?v=JxI3Eu5DPwE
https://www.youtube.com/@roguelikecelebration
Speaking of the Roguelike Celebration, they just had their 2024 celebration so if you're into Rogue, go check out the channel and geek out with the rest of us.

More emails we've sent.

The LCTHW Weekly Update #6: July 8, 2025

The LCTHW Weekly Update #6: Free Upgrades to Some Courses Coming

UpdatePublished Jun 9, 2025

The LCTHW Not-Really-Weekly Update #5: May 14, 2025

The LCTHW Weekly Update #5: Where I've been, and cool new stuff in my game development journey.

UpdatePublished May 14, 2025

The LCTHW Weekly..ish Update #4

The LCTHW Weekly Update #4:

UpdatePublished Dec 10, 2024

The LCTHW Weekly Update #3

The LCTHW Weekly Update #3: Hurricane Milton, Studio Redesign, C++ Praises, and Project Ideas for Everyone.

UpdatePublished Sep 5, 2024