Lazy Foo' Productions


Sam got us another update to the SDL3 tutorial ports, mostly changes to the key input API. Make sure to have the latest version of SDL3 or the ports may not work.

Sam has given us an update to the SDL3 ports of the SDL2 tutorials. Make sure to download the latest version of SDL3 as the API is still stabilizing.

Progress is being made on the SDL3 upgrade. I am in the prototyping stage and it looks like I will have something out in time for the first stable release of SDL3.

Sam has been putting the pedal to metal and managed to port the rest of the SDL2 tutorial demos to SDL3. Much thanks goes out to him!

This should give you guys plenty to chew on until I have the upgraded SDL3 tutorial out. My goal is to have something substantial ready for the first stable release of SDL3. This also means to make sure to have the latest version of SDL3 installed if you're going to try the SDL3 ports because they are still in the process of stabilizing things for SDL3 and you might enounter some API bugs if you don't have the latest version.

The next batch of SDL3 ports from Sam Lantinga are up. Most of the tutorials up to 33 are uploaded with a few exceptions.

Progress on my end of upgrading the tutorials is coming along. I managed to get quite a bit of research done and I should be beginning the protyping stage within the next few days.

So, I wanted to announce that I will be halting development on the SDL2 tutorials. There were a handful bugs outstanding, but I will not have time to work on them.

The reason I am stopping development is because I am starting work on the SDL3 tutorials. Currently I am in the research and prototyping phase and I am planning on having something out for the first stable release of SDL3. It's not going to be as big a jump from SDL 1.2 to SDL2 but there is going to be some non-trivial upgrades to the tutorials.

In the mean time, Sam Lantinga (the creator of SDL) has been nice of enough to volunteer to port some of the SDL2 tutorial demos to SDL3. I have uploaded his first port of lesson 01 which is available right next to the download of the SDL2 zip.

And before everyone starts emailing me asking to port the SDL tutorials, do realize that this is an exception I am making. The reason Sam gets an exception and you don't is because he is the creator of SDL and you are not.

MacOS bugs are now cleared. Next on the list is the iOS bugs and if that goes well the CodeBlocks bugs should be taken care of this weekend.

Then comes the big one: updating the Android tutorials.

New Year, new SDL MacOS tutorial updated for MacOS Sonoma. Apple has decided to continue on its path of turning everything they make into an iPhone which of course broke my tutorial. At least the procedure is easier than before even though I would have prefered them to use the conventions of Unix for their build process.

Anyway, I have a couple more MacOS bugs I need to verify and fix if they are indeed broken. After that I'll be going for the iOS bug reports.

Then comes giving the Android tutorials a much needed update.

Remember how I said if everything went well I'd resume updates in July?

Everything did not go well.

I posted the last update hoping I'd take a month off, maybe play some Street Fighter 6, and then get back to finishing the website. Literally days after I posted that update I had a series of family, financial, and professional issues spring up that basically ate up what what free time I had for months.

Things are getting better now, but I am not out of the woods yet. I spent some vacation time and knocked out the non-platform specific bugs. I am still fairly swamped but I do think I'll be able to get some more updates in to knock out at least most the platform specific bugs during Christmas vacation. Until then, I still got some figurative fires to put out.

Also, if you guys don't know about CI/CD, learn it ASAP. Most game programmers I know don't put enough emphasis on it and it has made things like updating the website much easier. I honestly don't know how I did group projects in college without it. Yes, it requires a significant time investment at the start of the project but it makes things so much easier in the long run.

If you can read this, it means the website migration is working. Yay =)

What's changed? In terms of what you guys see, nothing drastic. The layout will no longer make your mobile device vomit and there's a nice dark/light mode toggle at the bottom of the page. Also added a search bar to encourage Googling before emailing.

What really took 6 months of what little free time I had was switching over to a data driven static site generator with a a proper deployment pipeline so I should no longer have to fix things on prod like I used to. For example, the page tutorials/SDL/02_getting_an_image_on_the_screen/index.php php file looks like this:

layout: tutorial
tutorialSet: sdl2
tutorial: 02_getting_an_image_on_the_screen

The website is almost entirely data driven now. Learn this lesson I learned the hard way: you should throw out anything you made as an undergrad and be prepared to rebuild it from the ground up after you become a professional. Any attempt to salvage it is just putting off the inevitable.

While I was updating dozens of tutorials, I went an updated the logging article. It's not the most in depth article considering there are entire chapters in game engine architecture books that cover logs and entire companies whose only product is something to manage logs, but it at least has some value in teaching logging as a debugging tool to students who are transitioning from purely text based application to graphical ones.

If you find any issues, please shoot me an email so I can fix it. My new email is on the FAQs page.

If you can read this, it means the sub update part of the script works. I would also like to say I am going to put site updates on a simmer for a bit. I am pushing for a promotion at work and if things go well updates will continue in July.

I am officially putting the site on content lock. Updates will be halted and reported issues will be put on the backlog until the website is ported over to the new codebase. The sooner I start, the more likely I'll be able to meet my hard July 1st deadline.