   "Teach me game programming," says friend
  Imagine the following situation:You: "Hi, friend. I have just finished making my whole new turn-based strategy game, you wanna try?"Friend: "Sure!"... two days later ...Friend: "You use some sort of computer program to do this?"You: "Yes, but it won't do everything for you, you know. You have to do most of the work yourself."Friend: "Yeah, of course. What program do you use?"You: "Oh, this (-- insert your favorite IDE --), it's free."Friend: "Ok, I will learn programming, too."You: "Why?"Friend: "Well, I think I would like it. Creating games."You: "You know you can't do World of Warcraft II or Age of Empires IV in one week, don't you?"Friend: "Yeah, of course. I'll settle for something smaller, like a turn-based strategy game instead of real-time. I already have sketches for that. There will be these 100 different types of units and these 30 missions."You: "You won't do it. You don't have the endurance. Plus, do you have those 100 types ready?"Friend: "Well, no, but, you know, there will be Warrior, Archer, Super Archer, Wizard, Super Warrior, it will add up to 100. That's why my game will be so great. There will be a large number of units."You: (sigh) "Ok, try that."... two days later ...Friend: "Hey, could you come over to help me? This Form1 appeared on the screen and I put a button there, double-clicked on it as you said and some text opened. Where should I put the commands to create the game?"You: "I can help you with the basics, if you want."Friend: "Sure, I will search the rest on the internet."You: (30 minutes of explaining how the OOP works, what is a method, what is ButtonClick and why you must put parameters inside paranthesis)You: "I give up, learn it yourself. There are some great tutorials on the internet. In English."Friend: "I can't speak English."... two days later ...Friend: (gives up on game programming)The question is:Does this ever happen to you? If so, how many times? What is different between your story and the story I presented? Or perhaaps... Doesn't it happen to you at all?   
  never thankfully, though my brother has been asking how to get started, so i'm gonna post him over a few books and just be there on the phone or email if he has any questions, but at least he accepts there'll be hello world programs etc. for the first few months before he even learns how to display a single sprite   ;Quote:Original post by LesanFriend: "I can't speak English."I've had that quite a few times.  People approached me asking for help with some programming-related problem they had -- they knew the basics, but alas they stubbornly refused to read anything English.  I don't really like English myself, but the truth is, you won't get anywhere in CS without at least usable passive knowledge of English.It's a pain to try and help someone who refuses to read English -- you could simply direct them to an article or something on the net -- but if you try to search something non-English, you won't find anything of reasonable quality most of the time.  Then you basically have to tell them everything they could've read themselves.   ;Quote:Original post by LesanImagine the following situation:You: "Hi, friend. I have just finished making my whole new turn-based strategy game, you wanna try?"Friend: "Sure!"Dude if that was said then nothing else after it matters. You just opened Pandora's box and can't really be too suprised at what comes out. That has never happened to me because 1 I never finish anything. 2 because asking someone if they want to give game programing a go is a horrible idea. Game programing is an art and a science all at once that requires a stupid amount of knowledge from a ridiculous number of areas. Asking someone if they would like to try it like it was playing catch in the back yard is going to be a disaster. On top of that you can't game program until you can program. That is like taking someone on a cross country highway trip to teach them how to drive.If you want someone not to quit game programing then they need be interested in the subject to start with. They need to ask you. Then you need to warn them it isn't a journey for the faint of heart. That person may have a chance.;Quote:Original post by Goober Kingasking someone if they want to give game programing a go is a horrible idea.He didn't do that. "You wanna try?" means "You wanna try my game?", not "You wanna try game programming?".   ;  As DevFred said, I asked him to play the game, not to learn game programming.Quote:Original post by Goober KingOn top of that you can't game program until you can program.Actually, that happens fairly often that people ask this. Example:You: ... ok, now you have learned how to use the IF conditions. Now, what's also useful in games are the loops. Let's start with the WHILE cycle --Friend: Why don't we make an actual game now?;  I get around this problem by having only 2 types of friends.1. Comp.Sci. Majors.2. Arts majors who have a fear of computers.   ;Quote:Original post by DevFredQuote:Original post by Goober Kingasking someone if they want to give game programing a go is a horrible idea.He didn't do that. "You wanna try?" means "You wanna try my game?", not "You wanna try game programming?".Ah that makes more sense. I'm not to sure what one does about that. Not having friends could help. Then you could grab three of the biggest books you have on the subject and slam them on the table. Then tell him until you have read and understand everything in here you cant do it and you won't be helping. When they say sure and try to borrow the books tell him no he has to buy his own. When money comes up you will find out how serious they are.In the end though people will always be curious and have absolutely no clue what they are saying when they want to learn to do anything. All you can do is say out of it until they figure out its not what they thought it was and loose interest. If you keep putting yourself into the middle you are going to loose a lot of time. Don't teach them what an IF statement is. Tell them to not come back until they know what compilers, variables, classes, objects, pointers, methods, functions, and a long list of other stuff, are. ;  I don't have friends who ask, because my friends are all older.But I do have teenagers ask, or parents ask about their teenage kids.Here is how it usually goes:Them:  I want to be a game programmer.Me: How is your linear algebra?Them:  What does algebra have to do with programming?!Me:  ... Explanation that programming is entirely math ...Them:  Oh, I guess I might need more math.Me:  Next you should have a basic knowledge of both discrete mathematics and logic.  They are less essential but important.Them:  ~gulp~ Okay. Me:  Next you need to understand computers.Them:  Great!  I am good at Windows and the Internet!Me:  No.  Understand how it works, not how to use it.  You need to know how the CPU works, about bytes and bits, pipelines, memory regions, and data formats.  These are things you learn about in college.  Them:  I think I will try to be a fireman or astronaut.Most often I scare casual people off by asking the first question: How is your linear algebra?A few people are actually serious about it, and they tend to do well enough by themselves with few questions.   ;Quote:Me: How is your linear algebra?Quote:Me: No. Understand how it works, not how to use it. You need to know how the CPU works, about bytes and bits, pipelines, memory regions, and data formats. These are things you learn about in college.:DGood thing to scare people off.Though I dare say I am a sufficiently good game programmer and I know very few about how CPU works (I think it processes instructions in assembler-like languages, uses registers for short-term memory and manipulates the IO devices), I know bytes and bits are units of data, though I'm not entirely sure why are numbers in computer science powers of 2. (2,4,8,16,32...) Pipeline has only meaning to me as the Content Pipeline in XNA, memory regions are handled by .NET interpreters and data formats - well, I only need binary data format and plaintext format. And I didn't learn anything of that at college.And now I found out how dumb I am, not knowing any of this... :D   