Making a Game-Programming site for newbies?

Started by
16 comments, last by epreisz_138072 12 years, 5 months ago
So I'm thinking of making a site that takes a complete beginner and gives them tutorials on how to build games from scratch. What I'm wondering is, if this has been done before, and if not, what language should I use for my introductory tutorials

As for what the site would actually be: the emphasis would be on coding, and algorithms. I'm thinking of making introductory lessons to take someone with ZERO coding experience, and getting their feet wet with actual game-like programming as soon as possible (the first lesson would be the bare essentials, the very next lesson would be rendering rectangles and checking for collisions). I'd also have sections dedicated to learning the math and physics that are handy for building games (trig, vectors, matrices, calc, probability, forces, rotations, laws of conservations of momentum and energy, etc). I know a LOT of tutorials already exist concerning these subjects, but these tutorials would be focused on gaming applications, with examples and exercises that relate directly to the game-coding string of tutorials

One of the things I feel is missing from tutorials and websites that I've seen so far is that they assume a person has prior coding experience. And for someone with prior coding knowledge, many tutorials are stand-alone, so it could be difficult when trying to find tutorials that expand on the concepts in a tutorial you've already read (this was my experience at least when I was beginning). This website would be less a collection of tutorials than a sort of free interactive textbook

Obviously, I haven't seen every website that's out there, so I figured I'd ask if anyone's aware of any websites that already exist which sound like what I'm describing. If there are already a bunch that do what I've described, I'd rather no reinvent the wheel :D

Also, I'm wondering what language I should use to get people started. I'm thinking of using Java at the moment- personally I think Java is kind of 'meh' for games, plus I don't have a hell of a lot of experience with it, but it's one of the most commonly used languages today (so the skills people develop will translate to an academic/professional environment well), the learning curve isn't as steep as it is with C/C++, and people will be able to share what they've made on the web rather easily. I was actually thinking of using Actionscript(Flash) originally, since EVERYONE would be able to view it online and most online-game sites are flash-based, but it's kind of an obscure language, and I also feel like Flash is going to die as HTML5 gains traction (and with Java, you can make HTML5 games with gwt). The other two choices of language I was looking at were Javascript and C, but I fell like Javascript is TOO abstract (plus I've barely used it), and as I mentioned earlier C has a steeper learning curve and it's harder to share what you've made

Any thoughts/comments would be appreicated. Thanks!
Advertisement
What qualifies you to make a website to teach newbies?
Few comments, firstly about the reasoning behind all gaming tutorials assuming you have prior coding experience. This is a must. You have to understand how to program, what OOP means and how to use it properly, what procedural programming is and so on. Programming video games is not just something you can jump right into without having a good understanding of what you are doing before hand.

Next thing is there are many many many sites that are like this, but each one focuses on their own engine system. Eg if you go to msdn you can find ground up tutorials for XNA, if you go to garage games you can find ground up tutorials using torque, epic has them for UDK and so on. I have not really seen anyone that has built a generic ground up site, probably because a lot of theories and techniques vary greatly based on the engine and code base you are using.

What I think would be a great thing about this idea would be if you started with general coding and worked your way all the way through game programming in a single series. As you have mentioned tutorials are normally short and to the point, to learn the next step you normally search around and find another author that starts from a different point and a lot of people may have problems linking this knowledge together.

I'll help you out if you do decide to go through with it, I have the domain name IndevWorld.com (Indie Development World) just sitting around doing nothing. I'm not interesting in building the site for you ground up but if you are also a php coder and want to collaborate something I'd be happy to help. I have the unmetered / unlimited servers we could use as well. I've linked my help offered post to give you a little more information about me. At the bottom is all of my messenger contacts, look me up sometime if you'd like. If nothing else I'll help with some tutorials and such.

My Help Offered Post

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

If the site is for newbies, what motivates professionals to hang around the site to teach the newbies? Or will the newbies just spread misinformation amongst themselves, with the result that the site becomes detrimental to the long-term growth of the users, because they think they got good information ("Gotos are evil! C++ is fastest! Python is too slow! Start with pong!"), because someone on the internet told it to them and "it sounded like they knew what they were talking about", but actually was misinformation (the commonly repeated comments I quoted are all false. That is to say, they hinge on hidden information that newbies won't know, but will repeat as a blanket 'laws' of programming that aren't actually true and are situation specific).

The best way to learn woodworking is to hang around and talk with a woodworker who knows what he's doing. The best way to learn electrical wiring is to hang around and talk with a electrician who knows what he's doing. The best way to learn programming is to hang around and talk with programmers who know what they are doing. The worse way to learn programming is to hang around and talk with other programmers who don't know what they are doing, but want to act like they do, or worst, actually think they do know. Similarly, the worst person to talk to about life problems are the people in your own age group who haven't yet gone through life. laugh.gif

You want to look to those ahead of you for knowledge, not those in the same place as yourself. Otherwise, they'd give their best guess... but not bother to inform you that they were guessing, leaving you to think that they really know it when they don't (which is much more worse then someone honestly saying, 'I don't know').

Knowledge isn't gained by an accumulation of misinformation; multiplying ignorance doesn't bring about wisdom. 200,000 newbies speaking false knowledge or half-truths do more damage then one newbie in isolation learning by trial and error - at least trial and error allows you to firmly write in your mind "x worked, y didn't", whereas the counsel of the naive will tell you "y worked for me; don't do x, it's stupid. I read it somewhere, honest!"

It's a good idea to create a site to allow newbies to interact and encourage each other, or to band together in small projects. It's not a good idea to have newbies teach each other.
Perhaps you could do a tutorial using the up and coming HTML 5 game framework PlayN. It is fairly simple to pick up and they could use some publicity too. What kind of development have you been doing?
Come take a look at my GWT Tutorial site. Let me know what kind of tutorials you would like to see.

If the site is for newbies, what motivates professionals to hang around the site to teach the newbies? Or will the newbies just spread misinformation amongst themselves, with the result that the site becomes detrimental to the long-term growth of the users, because they think they got good information ("Gotos are evil! C++ is fastest! Python is too slow! Start with pong!"), because someone on the internet told it to them and "it sounded like they knew what they were talking about", but actually was misinformation (the commonly repeated comments I quoted are all false. That is to say, they hinge on hidden information that newbies won't know, but will repeat as a blanket 'laws' of programming that aren't actually true and are situation specific).

The best way to learn woodworking is to hang around and talk with a woodworker who knows what he's doing. The best way to learn electrical wiring is to hang around and talk with a electrician who knows what he's doing. The best way to learn programming is to hang around and talk with programmers who know what they are doing. The worse way to learn programming is to hang around and talk with other programmers who don't know what they are doing, but want to act like they do, or worst, actually think they do know. Similarly, the worst person to talk to about life problems are the people in your own age group who haven't yet gone through life. laugh.gif

You want to look to those ahead of you for knowledge, not those in the same place as yourself. Otherwise, they'd give their best guess... but not bother to inform you that they were guessing, leaving you to think that they really know it when they don't (which is much more worse then someone honestly saying, 'I don't know').

Knowledge isn't gained by an accumulation of misinformation; multiplying ignorance doesn't bring about wisdom. 200,000 newbies speaking false knowledge or half-truths do more damage then one newbie in isolation learning by trial and error - at least trial and error allows you to firmly write in your mind "x worked, y didn't", whereas the counsel of the naive will tell you "y worked for me; don't do x, it's stupid. I read it somewhere, honest!"

It's a good idea to create a site to allow newbies to interact and encourage each other, or to band together in small projects. It's not a good idea to have newbies teach each other.

Agreed.

Look to your fellows for support, look to your [s]older wiser heads[/s] betters for guidance. :)
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Thanks for the responses guys

Phantom:
What qualifies me to make this site is the fact that I have a credit card and can pay a hosting company $7 a month :) Also, I've been coding in my spare time for the last 5 years. I'm not anything close to an expert, but I enjoy helping people learn things- I'm hoping to be a teacher in the future, I've taught at tech camps, and I tutored kids in my classes on the basics of game programming. I'm also a math major, finishing my degree next semester, and I was a mechanical engineering major, so my background in math and classical physics is fairly strong. The purpose of this site will be to serve as an on-ramp for people with no prior experience, and get them to the point where they can build basic games from scratch. If I'm unqualified to make this site, what, in your opinion, will be the repercussions for the people who use it?

Dan:
I've got some hosting already, but thanks for the offer :) I might take you up on that offer for helping with the tutorials though, that'd be great! What you mentioned in your post is basically what I plan on doing, a series that starts from the basics (variables, if statements, etc) and takes people through the process of coding more and more complex games while teaching them programming/math/physics concepts in the process

Servant:
It's not going to be a social site- there are already a ton of great sites for that (like this one for example). This is going to be more of an interactive textbook. You've brought up a good point though that there are a shitload of people on the internet who spout their opinions as if they're irrefutable truths, and that's something I really want to avoid. I plan on emphasizing throughout my tutorials that there are hundreds of ways to do things, and that anyone reading my tutorials should seek out other resources as well. I'm going to be honest about my background (that I'm a hobby programmer and have no professional experience), and tell people, upfront and repeatedly that my methods may very well not be the most efficient or the best, and that they should seek out other sources (personally, i think people should always do this when learning new things). Also, whenever I offer my opinions or do something a certain way on my site, I'm going to explain why I chose the method I did (in an unbiased manner, I hope) and mention any alternative methods that I'm aware of.
Ya know, it's not entirely necessary that everyone learn best practices to do game programming.. beginners can share what they know with each other perfectly fine and be happy doing it. It really depends on the needs of the individual.. some people just want to do it for fun, so they treat the learning process that very same way. GameDev.net started out this way.. we were all college kids figuring this stuff out and getting a ton of indie articles along the way to make it easy for people to learn. Now Dave and Kevin do this professionally, but I opted to become a teacher (and now teach high school kids to program).

Learning is a process that shouldn't be weighed down too much in the "don't do it this ways" from the start. People have a tendency to pick that stuff up as they learn more background CS material.
Ok guys If you haven't seen this previous thread, you will understand this one: LINK

You will understand this is a new member just like the ones in the above link. He is trying to "tear me down". As this is the basis for my new project: www.ultimategamedevelopment.com. He has basically posted an exact transcript from a video off of my website. I love making games and I want to teach people in a way that I feel worked for me.

You will have to read the last thread to understand who this is. All of my credentials are public kid.Even in the case I am 16 and have not a clue what the term "ship a game" means, then at least I am not trying to lie about who I am online and steal from other people.

My web-hosting is 2.50 per month.

NBA2K, Madden, Maneater, Killing Floor, Sims http://www.pawlowskipinball.com/pinballeternal


Perhaps you could do a tutorial using the up and coming HTML 5 game framework PlayN. It is fairly simple to pick up and they could use some publicity too. What kind of development have you been doing?


I haven't heard of that, I'll check that out, thanks. I've been making games in Flash up until half a year ago, and then I started playing around with C and OpenGL



Ya know, it's not entirely necessary that everyone learn best practices to do game programming.. beginners can share what they know with each other perfectly fine and be happy doing it. It really depends on the needs of the individual.. some people just want to do it for fun, so they treat the learning process that very same way. GameDev.net started out this way.. we were all college kids figuring this stuff out and getting a ton of indie articles along the way to make it easy for people to learn. Now Dave and Kevin do this professionally, but I opted to become a teacher (and now teach high school kids to program).

Learning is a process that shouldn't be weighed down too much in the "don't do it this ways" from the start. People have a tendency to pick that stuff up as they learn more background CS material.


Thanks :) And you're right, I have just been doing this stuff for fun and don't plan on doing it professionally, and this site will be aimed at kids who want to design their own games for fun, but are clueless on where to begin


Ok guys If you haven't seen this previous thread, you will understand this one: LINK

You will understand this is a new member just like the ones in the above link. He is trying to "tear me down". As this is the basis for my new project: www.ultimategamedevelopment.com. He has basically posted an exact transcript from a video off of my website. I love making games and I want to teach people in a way that I feel worked for me.

You will have to read the last thread to understand who this is. All of my credentials are public kid.Even in the case I am 16 and have not a clue what the term "ship a game" means, then at least I am not trying to lie about who I am online and steal from other people.

My web-hosting is 2.50 per month.


huh?

This topic is closed to new replies.

Advertisement