Sign in to follow this  
nathandelane

I know application programming, can anyone teach me game programming?

Recommended Posts

Okay I am well versed in application programming. The last "game" I programmed though was a dumb maze in QBasic in the 90's. I've never dealt with OpenGL, SDL, DirectX (and the rest of the Direct family), or any other "graphics" engine. Probably the closest thing I've gotten to game programming is making animations within Java using Swing and AWT. So now that you know I'm an experienced programmer, I'm sure you want to see my experience - http://nathandelane.awardspace.com/programming.php - Does anybody want to be my mentor? Can anybody take me into their project and help me get started in game programming? I want to learn, and I'm ready for the challenge! I can do backend stuff, and I'm really good at math (now) and figuring stuff like that out. So can anybody help? Thanks. Nathan Lane w: http://nathandelane.awardspace.com/

Share this post


Link to post
Share on other sites
Well if you're having trouble finding somebody to mentor you, there are plenty of game development books for non-beginning programmers. Books tend to be a good way of learning, so your best bet would probably be to pick a few of those up and work through them. If you are an experienced programmer as you say, all that would be left for you to learn is an API (DirectX, OpenGL, jME, Slick, etc.) and the components of a game and how a game works. Both of those tend to be the focus of a lot of those previously mentioned books.

Share this post


Link to post
Share on other sites
See that I suppose is where my problem lies though - I have no money - nothing extra to get me going, so all I have to rely on are dumb tutorials that don't teach me very much, don't explain all of the details of compiling and linking, try to get me into the high level too quickly. I want to participate somewhere - I'm not prideful - I KNOW that I can't write a video game on my own. Does somebody want to mentor me?

Nathan

Share this post


Link to post
Share on other sites
ah a mentor would be awesome. Unfortunately people just dont have the time. Im pretty new to programming and what has helped me start is just googling tutorials and trying to learn as much as i can. The books are invaluable to learning as well. If you really want to learn your going to have to bite the bullet and just buy a few books.

Share this post


Link to post
Share on other sites
Okay, well at this point I'd be inclined to say nevermind...if I weren't so set on learning. I know that nobody has "time" but how did those people who don't have time learn? I know bunches of stuff, and I'd be very happy to mentor anybody learning something that I know (Java SE, C#, Ruby scripting - not rails though, XHTML, javascript, VBScript, OLE/COM, UNO) But I guess the point is, maybe I am "making" time to teach those things to others. How do you think programmers become great? Well the majority of them have "too much" time, and I want to learn from one of them. Not teaching others, or passing on what you've learned seems selfish to me. And I don't think that a "real programmer" should be selfish.

Thanks, I'll look somewhere else I guess.

Nathan

Share this post


Link to post
Share on other sites
What is it exactly that you would like to learn? Just saying "I want to learn game programming" is way too vague. You will get much better response if you ask specific questions. Most programmers are happy to help others, but we tend to focus our effort on those who show that they are active learners and not just sponges waiting to be spoon fed.
If you can build an application, then a game is not that much more of a stretch. The structure of the code of a typical game is a little different that a typical business application, but the programming concepts are the same: collect input, process input, update internal state, produce output. So how about tell us what you are stuck on instead of stomping away in a self righteous huff.

Share this post


Link to post
Share on other sites
Think about it. Your asking people to give up their time so that you can save some money not buying books without them getting anything in return. People are always happy to answer questions here. In a way the entire GD community has become my mentor because I read the threads on here an learn from them. People have lives, jobs, and families, it is not selfish of them to not want to spend their time teaching someone stuff that person can learn out of a book with little trouble. If you want to learn, read the tutorials, buy some books, and by all means ask questions on here. You will get more answers than you could have ever wanted.

Share this post


Link to post
Share on other sites
If you know C# why not give XNA a try? From the sounds of it you are already far ahead of most of the beginners here. Many beginners learn on their own, I did. It isn't particularly difficult, you just have to start somewhere. I assumethat you won't need to make console games (as you are already aware of the programming aspect) so games to start making now to learn the basics would be pong, tetris, asteroids etc.

Share this post


Link to post
Share on other sites
Quote:
Okay, well at this point I'd be inclined to say nevermind...


It has been 1 hour and 3 replies since you created the thread, and nobody jumped in as full time tutor? Your learning disability comes from complete lack of patience.

Quote:
I know bunches of stuff, and I'd be very happy to mentor anybody learning something that I know
Quote:
But I guess the point is, maybe I am "making" time to teach those things to others.
Quote:
I want to participate somewhere


Welcome to the forums then. We have subforums for C# and Java, there might be a web forum as well. I'm sure that contributing by answering questions and helping others will be much appreciated, and will gain you much credibility.

Quote:
How do you think programmers become great?
Not the way you think.

Quote:
I know that nobody has "time" but how did those people who don't have time learn?
The "greatest" have a keen talent of learning and incredible passion to trying to be the best. They additionally strengthen it with academic background, sometimes not even that.

Other slightly less "greatest" learned how to learn on universities. That taught them the proper approach to solving problems on their own.

The greatest will also want to see that you promise something, that it's worth teaching you. Not only that, but they'll want to see that you have incredible potential, are willing to walk the extra mile, and that you'll work way above and beyond the current objective.

Quote:
And I don't think that a "real programmer" should be selfish.
You are entitled to your own opinions. That doesn't change the way world works. They need to pay the bills as well.

The best you will get out of the "greatest" around here will be a link to a book or wikipedia. For the "greatest", these are things of trivial importance.





To begin, read the forum FAQ. As you work through materials there, feel free to ask as many questions as you need about things you don't understand.

Share this post


Link to post
Share on other sites
Sorry for my impatience - no excuse. Thanks for screwing my head back on. I'll look around more. I'll take a look at XNA too. Please forgive my stupidity, and you're right I WAS being selfish. I don't blame anyone for not wanting to help me for free, and you're right about the forums being a good teaching aid, after all that's what they're for. Please don't write me off for coming off as rude and selfish. Thanks for showing some understanding.

Nathan

Share this post


Link to post
Share on other sites
I must note this - I am pretty frustrated with none of the tutorials working for me, and by none, I don't mean that I've tried them all, just the ones I have tried - I can't get them to compile. The thing is that I'm swimming up the creek - trying to about things the hard way I guess. I don't want to use Visual Studio - I'd rather do stuff from the command line, but crap I don't know how to do that. So then I think maybe using MinGW would be good, but I don't know C or C++ very well as you can see from one of my earlier posts. I DO know Java, but it seems like even though there are tons of professional Java games out there (http://www.java.com/en/games/) nobody believes in Java but me, and so I don't see many tutorials out there about it, not even here. In college I took a software engineering course based around programming games in Java, using David Brackeen's book (http://www.brackeen.com/javagamebook/) and I still have that book, and I guess that's where my impatience comes in, with myself mainly, because it's difficult to start with nothing..from scratch. So I've looked for game programming toolkits and SDL or Ogre3D are as close as I've come to see things besides Torque or XNA, which I haven't looked into yet.

Am I making any sense? Has anybody else experienced this?

Nathan

Share this post


Link to post
Share on other sites
nathandelane.. if you really are all that good and know sooo much programming, I really think you should have no problems learning some game programming on your own.. why not do like everyone else.. use the web, search forums for answers.. or what about XNA?.. if you can't learn anything from the help file / getting started tutorials (wich are are excelent ) that comes with XNA, you are NOT a very experienced programmer.. I'm sorry to say so..

Share this post


Link to post
Share on other sites
I hear your frustration. First step: slow down, take a deep breath. Programming is hard. Game programming is very hard. It is going to take time to learn, so dont' try to push yourself too hard or you will just frustrate yourself.
Quote:
I don't want to use Visual Studio - I'd rather do stuff from the command line, but crap I don't know how to do that.

Ok, why do you want to make life harder? If you want to make your life easier, take advantage of the wonderful tools available to you. Visual Studio is used by professional developers. If I had to use command line tools at work exclusively, I would quit, no question. If you want to be productive, use the best tools.
Next, figure out what you want to do. If you really want to make games, then you need to get some experience in making games. Start simple. Most people will recommend the path of Guess the Number -> Tetris -> Breakout -> Pac-Man -> Mario clone, and I would encourage you to take that path. You don't have to make exact copies of each one. Making games is about being creative, so take those ideas add your own spin. The point of taking this path is that you start simple and add more and more complex concepts over time. This way you stay motivated to learn rather than overwhelm yourself and give up.

Share this post


Link to post
Share on other sites
I think that what matters most is that you make games in a way you find fun (assuming you're a hobbyist). With that in mind, it doesn't matter what other people think of java. If you feel comfortable using it, by all means go ahead and use it. I daresay you'll be more productive at gamesprogramming in a language that you know well. My first game (a modified snake clone) was done in Java and I'm still very happy I used java, thus saving me loads of time that I would otherwise have spent debugging C++ programs.

If you do indeed decide to stick with java for programming games (which I really think you should), then you may want to take a look at the book "Killer Game Programming in Java". I know you said you can't afford books, but guess what, this book is available online. Just click the link: http://fivedots.coe.psu.ac.th/~ad/jg/index.html.

I read the 2D part of the book myself and I found it a tremendous help in getting a few simple games done in a minimum amount of time. On top of that it helps you create a number of classes that will be really helpful for other games you might want to make.

Regards,

Rogier

Share this post


Link to post
Share on other sites
Quote:
Original post by nathandelane
I don't want to use Visual Studio - I'd rather do stuff from the command line, but crap I don't know how to do that.




Share this post


Link to post
Share on other sites
Ah peace - cool cartoon - I'm laughing right now because that totally describes some people I've worked with over the years. Anyway, you're right, I'm going ot quit being hard on myself - I've glanced at that online Killer Game Programming book a couple of times, but I've never taken it too seriously. If you say it's good though, then I'll take a look.

Thanks,

Nathan

Share this post


Link to post
Share on other sites
nathandelane here's some constructive criticism not exactly related to game development, but I think it's worth mentioning. Your website background needs to be changed in my opinion. I don't know if it's just me or not, but the background is actually "mesmerizing", I can't read the text because of it being there. Don't know if anyone else feels the same way, but it affects me so much I thought it would be worth mentioning.

As for your points about game development, I'm a beginner too and there's a few things you have to realize.

1. Game development takes a lot of time. I can program applications and programs at my university, but I've found that trying to correctly construct a game is MUCH more difficult. It takes a lot of patience, and a realization that you can't just learn it in a few weeks (not to say you can't get something running in a few weeks, but to become really good will take years probably).

2. Don't get frustrated, for me the biggest pain in the ass was at the very start getting going. Things like setting up a compiler and linking libraries is tough, since most people assume you know how to do it, but that's not the case at the start. It's hard to find good tutorials on it, but tinker around and search, information is out there.

3. Accept the fact that it's illogical to do everything from scratch. Using a development environment (VS 2008 is the best for C++ IMO if you are on Windows) is not at all cheating or skipping a step, it makes developing so much easier to be able to properly debug a program and quickly search for sections. Compiling also becomes way easier than trying to do it from the command line.

4. Be nice to the game community, everyone here wants to help but no one has time to do things for you. Do research on things you can't find, but if you have a question that's hard to find a solution for, or you don't know what to look for than post. There's lots of people here with experience that I've found are more than willing to help. Also, don't talk about stuff you don't know about (not that you have, but I did at one point) realize that there's people here with lots of experience that often know what they're talking about better than you (not to say you won't eventually become one of these gurus if you work at it). If you post questions with a friendly tone, and look like you've made an attempt to solve it than more often than not people will be willing to help you out.

5. Bite the bullet and get a book. It's VERY nice to be able to have a hard copy reference when you are a beginner, it allows you to read it and think about what you're doing rather than trying to learn from source code samples (which can be destructive I think, since sometimes you'll get code from people with as much experience as yourself who don't really know what they're doing). There's a great section in here about recommended books. Personally I found "Beginning game programming" by Michael Morrison to be a great beginner book, read some reviews though, it assumes you know the basics of C++.

Just some advice that I've found in my few months of getting into game programming.

Share this post


Link to post
Share on other sites
If you want to learn DirectX 9.0C :

When you install and download the SDK of DirectX you will get a helpfile and it basically is really well documented with tutorials and that sort of things. But with all programming languages, you will most likely be stuck at experimenting and messing things up to see how it really works.

some important things in Game programming though is;

Mathematics, and a STRONG C++ background if your really serious about being a game programmer and want to use OpenGL/DirectX and make A+ title games. But C# and CXNA are great ways to make simple games :) these also have a lot of good tutorials.

You can always toss me a message but... I cannot give you tutoring as in give you assigments, questions are fine but I cannot spend 2-3 hours a day on it ;)

Share this post


Link to post
Share on other sites
Quote:
Original post by nathandelane
The thing is that I'm swimming up the creek - trying to about things the hard way I guess. I don't want to use Visual Studio - I'd rather do stuff from the command line, but crap I don't know how to do that.

That's not really "doing things the hard way". It's "doing things the stupid way". As an experienced programmer, I advise you to do things in a less stupid way.

Share this post


Link to post
Share on other sites
I have to agree with threepwood about your website, the background is quite distracting.

Im no where near an experienced programmer, especially in c++. But I suggest like everyone else has said pick up a good book in the language you want to learn. I'm going over a beginning game programing in c++ book i have from school, after that an opengl one too. I might get that Focus On SDL book later too. Creating a simple game from scratch is a good way to go as well. Like tetris, a sidescroller, etc.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this