Feeling a bit overwhelmed

Started by
14 comments, last by Antheus 14 years, 10 months ago
So after a couple months of searching for a starting place to learn about game development in my free time, I am feeling a bit overwhelmed and have a few questions. 1) I have pretty much decided that the place I need to start is to learn basic windows programming. My question is what books would be a good reference or guide on the subject, and are books in the 'For beginners' section of GameDev still good to use even if their copyright seems bit dated. (ex: Programming Windows®, Fifth Edition (has copyright of 1999)) 2) I am currently using Visual Studio 2008 as my compiler, but I have been looking around and am curious if i should grab any other items, such as Microsoft XNA 3.0 or Microsoft SDK? 3) I am currently most familiar with using C++, but would that be the best starting language? I have seen many comparison charts for various languages commonly used, and it seems as if C++ is the most powerful but also one of the hardest. Any help would be very appreciated, and so far this seems to be the most friendly place I've discovered in my search. Thanks, ~John
------------------------------------------------------------It is a mistake to think you can solve any major problems with just with potatoes. ~~Douglas Adams
Advertisement
There are many places to start but you should look at your priorities first and foremost.

You need to ask yourself:

1. Am I planning to make a career out of this?

If that's the case, you need degree-level certification, regardless of your level of skill. Start with that. You didn't mention your level of study, or if you are already in a course, so sorry if I made the wrong assumption :).

2. Do I just want to have fun, and experiment with some of the ideas I have?

Then python is the best place to start: http://www.pygame.org/news.html. It's -extremely- powerful, just not as fast as highly optimized C code (I don't know that from experience, but hear-say). It can be faster but it takes just a teeny bit more work: http://psyco.sourceforge.net/

3. Do I want to start with something easy and work my way up to C++?

Start with Java, or C#. Both are extremely good languages. But if you're on a Windows machine, and have no plans to make cross-platform applications, use C#. It's the best tool for the job, and has better game libraries IMHO (XNA for example). Both these languages use C syntax.

4. Is performance really all that I care about?

It shouldn't be, but if it is, start with:

http://www.gamedev.net/columns/books/bookdetails.asp?productid=615&CategoryID=21

It's the best beginners book I've found, but it sticks to console applications. Which is the best place to start. I don't know any good windows programming books unfortunately.


Whatever you decide to do though...

Learn OOP: http://www.aonaware.com/OOP1.htm











Thank you for the response and the help... I have one more question if you wouldn't mind.

When you say I need a degree, do you mean something with a game development focus? Because as of right now I am in the middle getting a computer science degree with an emphasis on programming. I do not have the money or ability to go out of state as of right now, there are now video game specific degrees nearby, and I have not found any reputable online degree programs for game development.

If you might have some advice i would be grateful ^_^

~John
------------------------------------------------------------It is a mistake to think you can solve any major problems with just with potatoes. ~~Douglas Adams
Unfortunately I can't really answer that question as I don't have any experience in what the game industry actually looks for in it's employees in regards to programming. My own plan is to do a masters in Game Development after my own degree finishes. But I do plan to start sending out applications before then.

I'd rather not say anything misleading however, but there are many people here who have professional jobs in the game industry.
A degree doesn't need to be a game specific one, CS or Software Engineering would be just as good, if not better; it all depends on what the 'game degree' focuses on, but speaking personally I'd rather have someone on my team who had a Soft. Eng. degree and could design and next to no experiance in games, than someone who has done loads of game stuff but is lacking in fundimental design and process areas.
How far along in your degree are you? I have friends in CS, and although they don't know anything about game programming (it's not really taught), they know enough about programming in general that it wouldn't be too difficult for them to pick up on their own. But, you are looking for beginner's books, so I'd assume you're a beginner...

In any case, if you have formal C++ instruction already, I'd just stick to that. I took 1.5 courses on C++ (one was C with C++ syntax basically... so I only count it as half :p ) and learning more C++ on my own hasn't been a disaster so far.

As a beginner, your main goal is to learn programming, not any specific language. By starting with C++ on your own with nobody to guide you, you will end up spending a lot of time on the quirks of C++, which are details compared to what you are after.

By picking an easier language, such as C# or Java, you minimize that and just learn how programming works. After you know the basics, learning other languages is surprisingly easy. I have had to program in C, FORTRAN, and even assembly (for an electronics class), and at that point all I had to learn was the syntax, because I already knew "how" it all worked. So don't sweat about finding the "best" language off the bat. Go with the easiest.

I don't know Python, but Java and C# I know are really good beginner languages. Java is great for web apps because it translates your code to computer language "on the fly" almost, so no matter who you give it to, as long as they have Java installed, they'll be able to run it. Great for sending your grandma a tetris game you just made. :) The downside is that it's slower (because of the code translation), so you won't get a state of the art Space Invaders game out of it.

C# is more traditional, in that it compiles the code before running the program, so it is much faster. Downside is you need to take extra precautions to make sure other people can run your program. Either is a good choice, though.
Python is actually a very good beginner programming language-If by good beginner programming language we mean easy. The trouble with it is that it's not really a traditional language (Though it does have good traditional support for OOP, as opposed to Lua). So it's much easier to make the jump from C# to C++ than Python to C++.

I actually think the most difficult aspect of programming is finding the right language and library. I've been looking at benchmarks for Python and Lua, and reading the manuals of both for the last two days, and I still haven't picked the right one to script my game :).
First off...
Thank you all so much for the responses, I am learning a lot about this.


On the topic of my education i am one class away from an associates, and just about to begin work towards the bachelors.

As for being a beginner, I am just a beginner to the Windows API. The logic/planning process of programming is the easy part and the part i understand mostly. Its getting all the syntax down thats always troubling IMHO.

Anyways, one last question that i can think of right now then. Should i even bother with learning how to use the Windows API on my own right now then or would it be more beneficial to wait for a formal class that teaches it?

Once again thank you for all the help, and i now feel much much better about trying to pursue a career in this field eventually.

~John

------------------------------------------------------------It is a mistake to think you can solve any major problems with just with potatoes. ~~Douglas Adams
Quote:As for being a beginner, I am just a beginner to the Windows API. The logic/planning process of programming is the easy part and the part i understand mostly. Its getting all the syntax down thats always troubling IMHO.


Getting all the syntax down is the easy part actually, once you have a good solid plan that is. Syntax really is the least of your worries, there are several well documented and well supported languages out there, so much so that you can't afford to stick to your first love (Which would be C# in my case :)). I'd recommend doing mini programs so that you can get to grips with the basic concepts of the API before writing the plan though. That's where the class comes in.

So I'd recommend waiting for it.

EDIT: A bit of experimentation never hurt, but be sure to get down the proper terminology and code practices. Bad habits are hard to get rid of.
To answer the specific question about Programming Windows, yes it's still good. Assuming what you're looking for is bear-metal Windows programming. Some of the stuff might not apply anymore but the concepts haven't changed any. I would try to pick it up from your local library first instead of buying it though.
-Mike

This topic is closed to new replies.

Advertisement