Lazy Foo' Productions FAQs
Last Updated 8/03/14This page has answers to frequently asked questions regarding the site, the SDL tutorial set and the OpenGL tutorial set.
Q: I found a bug/typo in the site/source code, where do I report it?A: Contact me.
I admit that the tutorials were a bit rushed, so there's going to be mistakes here and there. Don't be shy, I want my tutorials to be bug free.
Q: Hey I see you have a Facebook and Twitter. Does that mean if you don't reply to my e-mail immediately I should spam you on there?A: Please don't.
I check my e-mail more often than I check social media so e-mail the best way to get into contact with me. If I haven't e-mailed back it's because I don't have time to answer it right now.
Q: I don't get tutorial/article X.A: Well contact me and I'll try to explain it better and maybe make adjustments to the tutorial.
It is in my interest that people learn from my tutorials. If people can't learn from my tutorials, honestly what good are they?
Q: Can you bundle up all the tutorials/articles?A: Sorry, but because of bandwidth issues I can't do that. Also bundling up every tutorial for a single download would cost me hits. What ever little money the site makes through ads helps pay for the hosting bill. Hosting a website isn't free you know.
Can I use Lazy Font?A: Yes, under 3 conditions.
The conditions go as follows:
1) The font must be used in a game, either by using the font to render text or in a graphic in the game.
2) You must not sell your game for profit if it uses the font.
3) You must acknowledge Lazy Foo' Productions' copyright to the font. The acknowledgement can be either with in the actual game itself or in a text file distributed with the game.
I am claiming copyright on Lazy Font in the unlikely case somebody actually makes money off of it. I understand it's hard to find fonts when you're starting out, so you newbies can use my font for your games under the above conditions.
Get the latest version of the font here.
Q: Can I use your code to make a game?A: Basically my rules are:
1) If you're using it for a closed source program, go nuts.
2) If you're using it for an open source program, please cite the chunks of code you used with something like:
/*This piece of code was originally from Lazy Foo' Productions
3) If you're using it for a GPL, LGPL or other such program which gives public rights to the code, I'm going to have to say no.
4) If you're using it for a tutorial, you're going to have to use your own original code.
You still need contact me and show me specifically the code you plan to use and what you're going to do with it so I can approve.
Q: Can I use your code to make a tutorial?A: Again, No.
I went through the trouble of making all my own code, and so should you.
Q: Can I use your code to make a book and sell it for money?A: No and any book that does is unauthorized.
Q: Can I link to your site?A: Of course. It's just more hits for me.
Q: If I link your site will you link mine?A: Sorry, I don't do link exchanges.
Q: Do you plan to make any more tutorials/articles?A: Maybe in the future, but currently I want to make person research projects and prototypes. We'll see what the future holds.
Q: I have a program/article, can you post it on the site?A: Sorry, I have a no user content policy. Ignoring the copyright issues, I barely have time to manage my own material. I don't have time to manage other people's content.
Q: Can I port your code to Java/Perl/Python/C or translate your tutorials to another language?A: No. From what I learned in my business law course, copyright law is sticky to say the least. If I do allow people to translate my tutorials who has rights to those translated tutorials is a complete mess. I'd rather just not deal with it.
SDL Tutorial FAQs
Q: How much C++ do I have know to start game programming?A: For my SDL tutorials, you must have a decent handle on the following concepts:
Operators (+, -, *, /, ++, --, +=, -=, etc)
Controls (if, else, switch)
Loops (while, for)
Classes and Objects
How to use a template.
The articles might require you to know more, but they'll mention it beforehand. Of course the more C++ you know, the better. To make anything complex you'll need to know inheritance, polymorphism, templates, and STL. Eventually you'll need to know exceptions, operator overloading and the whole language.
Make sure you know these concepts well. Don't just skim over them in a C++ reference book. It doesn't matter how much Java/Python/C#/Visual Basic/ASM/HTML/whatever you know. You have to know C++ to be able to learn from the tutorials/articles.
Q: How much Math do I have know to start game programming?A: For the SDL tutorials, all you need is a good handle on geometry, but the more math you know the better.
Q: Why SDL?A: First off it's a very lightweight and easy to use API making it ideal for beginners. Secondly it works on multiple operating systems so these tutorials can teach a wider audience.
Q: Tutorials 2-54 won't compile, what's wrong?A: Read over tutorial 1 and make sure you set up SDL correctly. SDL is a third party library so you have to set it up yourself.
Q: Tutorials 6-54 give me errors with IMG_Load/TTF_Init/Mix_OpenAudio.A: Tutorials 6-54 use the SDL_image extension library to load images. I require SDL_image to be used early on in the tutorials because:
1) I can then use PNG images which are smaller than bitmaps. This means less bandwidth use.
2) It's important to know how to set up extension libraries. I might as well teach you how early on.
In the zip file for every tutorial program, the readme.txt file tells you which libraries you need to link against. Make sure you have all the proper libraries set up.
In my tutorial set, I use SDL_image, SDL_ttf, and SDL_mixer. It's a good idea to have them all set up ASAP.
Q: Where are the SDL 1.2 tutorials?A: They're still in the same spot.
Q: I have an issue with the 1.2 tutorialsA: Sorry but they are no longer being updated. All SDL tutorial updates are done on the SDL 2.0 tutorial.
Q: How much C++ do I have know to start these tutorials?A: For my tutorials, you must have a decent handle on the following concepts:
- Operators (+, -, *, /, ++, --, +=, -=, etc)
- Controls (if, else, switch)
- Loops (while, for)
- Classes and Objects
- Inhertance and Polymorphism
- How to use a template.
- Bitwise and/or.
I also recommend having experience with simpler 2D graphics API like SDL before jumping into OpenGL.
Q: How much Math do I have know to start these tutorials?A: You should know vector math and matrix multiplication. If you don't know these, I have an OpenGL math primer article designed for people that have taken high school geometry. It won't teach you everything you need, but it should be enough to get you started with OpenGL.
Q: Why freeGLUT?A: As I mentioned in the the first tutorial, freeGLUT may not be the most feature rich API but it's good at creating quick and dirty OpenGL demos which these tutorials use.
freeGLUT is probably not you want to use to publish a full application (I mention other libraries in the first tutorial), but for testing OpenGL code it does the job.
Q: Why are you using the fixed function pipeline? That makes you worse than Satan.A: Because I've tried to do an OpenGL tutorial set that uses programmable pipeline from the the start and the test audience just wasn't getting it. These tutorials aren't here to regurgitate theory to people who already know graphics programming, they're here to help out beginners. Having concepts like GPU pipelines go over their heads isn't very helpful.
So this tutorial set uses fixed function built in capabilites as a stepping stone to modern programmable pipelines. In the end, they're learning OpenGL 3.0+ code anyway. Besides, many of the code graphics algorithms (like Phoung Shading), were developed in the 1970s. The algorithm hasn't changed, only the tools to implement it have.