Lazy Foo' Productions FAQs
Last Updated 11/02/07
Q: How much C++ do I have know to start game programming?
A: For my tutorials, you must have a decent handle on the following concepts:Operators (+, -, *, /, ++, --, +=, -=, etc)
Controls (if, else, switch)
Loops (while, for)
Functions
Structs
Arrays
References
Pointers
Classes and Objects
How to use a template.
Bitwise and/or.
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 my 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 lightwieght 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: 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: Tutorials 2-36 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 3-36 give me errors with IMG_Load/TTF_Init/Mix_OpenAudio.
A: Tutorials 3-36 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: What's with the Mac tutorials?
A: I don't own a Mac or even have access to one. I do plan to make tutorials but until I have access to a Mac I'm afraid my hands are tied.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 site 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 distrubted 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: 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: No.I went through the trouble of making all my own code, and so should you.
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: Definitely, but I am currently working on my next game so I don't really have time for new tutorials right now. After I finish my next game (a year or so from now), I will use my experience from developing that game to add to the current SDL tutorial set and make new sets for OpenGL and networking.Feel free to contact me if you have any suggestions for tutorials.
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 translate your code to Java/Perl/Python/C or translate your tutorials to another language?
A: I'd love to but I just don't have time. Whenever there's a bug, typo, or site restructuring, having to contact with the authors of the translations is going to take up too much of my time. If the site was my full time job I'd do it, but school is my priority right now.If I had the time, I'd translate my site into every language on earth and port it to every programming language. It's just not practical though. Also, making and maintaining a tutorial translation isn't as easy as you might think.
Typing a tutorial takes a long time, the state machine article alone took over 4 hours. Multiply that 36 tutorials + 10 articles.
Then when there's a typo or bug fix you have fix the typo, e-mail me the page, then wait for me to upload it. I get up to 1 or 2 type reports a week, if you get about the same it will get tiring for you after a while.
The site you see today took over 2 years to put together. It started out as 22 tutorials and it has gone through many additions and restructurings that involve moving the entire site around. This involves some very tedious and time consuming work. When I do it, you're going to have to update the site so your translation matches.
Then there's the e-mails. Half of them are from people you are reporting bug or have questions that they've been working on but still need help with. The other half will be from people that that don't bother reading the tutorials and just copy and paste random pieces of code. Some of them even get hostile when you don't fix their mess for them.
Worst of all, I'm not going to be able to pay you for all your work. Making a tutorial site this big is a job, not just a hobby. That fact is, if you started translating the tutorials you will end up hating me more than any one you ever knew.
Q: What happened to your random facts page?
A: I moved it here.Q: The SDL website is down, do you have a copy of the SDL libraries?
A: They're right here:Windows SDL libaries
Linux SDL libaries
Mac OS X SDL libaries
Each zip has:
SDL 1.2.12
SDL_image 1.2.6
SDL_ttf 2.0.9
SDL_mixer 1.2.8
I also have the SDL_image/_ttf/_mixer documenation available here.