   Starting from (almost) scratch.
  Like so many people i've been thinking of being able to make games, but i've found it very difficult to find a decent starting point. I'd say i'm a beginner in C++ (haven't even gotten out of command prompt yet) yet i'm familiar with the basic concepts of OOP. I've looked around and every guide i come across says things like i need to pick a suitable library to work with, i need a suitable IDE, my first game should be a tetris-ripoff, but none have ever told me how to go about handling the libraries (such as OpenGL or DirectX or one of the many, many others) They either show a bunch of code that i have no understanding of or they don't say anything at all and assume i can magically link everything i learned in command prompt to the library i have never worked with before. Furthermore, even if i would be able to work with it, i would have no idea where to begin. There seems to be a dead zone between 'learning the language' and 'on your way to making tetris'. Because i fear this is reflected in books on the matter as well, i haven't bought any yet. I was hoping you guys could give me the advice i need on getting started properly.   
Quote:There seems to be a dead zone between 'learning the language' and 'on your way to making tetris'. Because i fear this is reflected in books on the matter as well, i haven't bought any yet. I was hoping you guys could give me the advice i need on getting started properly.That point can feel intimidating, yes. The thing is, you'll have to go out and try something. Quite a few of those libraries come with examples and tutorials, and if you run into specific issues, there are several places where you can ask for help.For C++, SDL, or the more recent SFML, is often cited, but it's still rather low-level. Something like Haaf's Game Engine will handle more of that for you, allowing you to focus more on writing game-code. Anyway, I assume you've heard plenty of library names already, but have you actually tried some of them? Just download the library, look for a readme file or an on-line article to help you set things up properly, and go through some examples, or look for on-line tutorials.Ultimately, a library is just a bunch of code. Some libraries come with source-code directly available, others give you a library file and some header files, so your code knows what functions it can call and what objects it can use. You usually need to set up some paths, so your compiler knows where to look for these library files, and once that's done, all you need to do is including the right headers and start using the libraries code. Of course, it would be a good thing to read up on how the library is supposed to be used, and having a class/function reference list around doesn't hurt either. But that's the same as for the C++ standard library: it takes some time to learn how to use std::vector's and std::string's and so on, but once you're through, it'll save you time.Good luck! :)   ;  Personally I've just managed to get past that dead zone. And there undeniably is a dead zone... For me it resulted in giving up coding for 6 months before I got the bug again and went back to it...How to get to the point where you are on your way to making Tetris:1. Learn C++ quite well. Enough so that you can read game code without a problem. This site is awesome for it imo http://newdata.box.sk/bx/c/2. Start learning DirectX. These sites are awesome for it imo http://www.directxtutorial.com/Tutorial9/tutorials.aspx and http://www.toymaker.info/index.html3. When you can do the basics in DirectX and feel comfortable drawing primitives and learning how to do new things in DirectX, then you can start on your own projects imo. Start very small, smaller than Tetris even. I'd recommend starting on the smallest graphical project that you could still call a "game". It helps if you still find it inspiring though. Then you can increase the complexity of the projects. At some point during this long step, you will get past the deadzone and feel like you are learning exponentially :)   ;  I personally reccomend trying c#/xna. It has good support (video tutorials/source), c# is typically easier than c++ but has many similarities (so you can progress to c++) and xna has some similarities with direct-x (oo approach). http://creators.xna.com/en-GB/create_detail#tour_two   ;  The main reason i picked C++ is because i've been taught it at college. We got C++ this year and move on to Java and C# next year. I have also heard that C++ seems to be the industry standard for game development at the moment. I've taken a look at the tutorials and have at least crossed the first boundary that kept me from doing anything productive. However, i was wondering, as the recommended books on the other site say to be more about game development in general without going very much in depth, are there books (or series of books) that deal specifically with C++/DirectX programming that would be useful to me? Most of the ones i find restrict themselves to Direct3D, i don't know if this is a good thing or not. (What about 2D?)   ;Quote:Original post by GorgroThe main reason i picked C++ is because i've been taught it at college. We got C++ this year and move on to Java and C# next year.That seems very backward.Also, just because C++ is industry standard doesn't mean it always will be. It's more important to learn the concepts, and if you're spending all your time learning C++ you'll miss a lot of the more important concepts that you can focus on with a simpler language.edit: It should be noted that if you make a game in C#, it's supposed to be relatively easy to port your code over to C++ (So I've heard).   ;  I was in the same boat until relatively recently... C++ background, not sure how to get out of the command line.  I found Lazy Foo's SDL tutorials to be IMMENSELY helpful:http://www.lazyfoo.net/SDL_tutorials/index.phpI went from never touching graphics to having a somewhat functional shoot em up in about a month of coding in my free time.   ;Quote:There seems to be a dead zone between 'learning the language' and 'on your way to making tetris'.There's a dead zone in terms of books and tutorials. That's what beginners need to realize. That they cannot read their way to competence. You can't start off by reading a C++ book, and then a few books later be learning how to make tetris games. You may not consider a tetris game very complex, but when you just start off programming, a guess the number game in the console is complex. A tetris game is out of your reach.What beginners need to do is start practicing. You've read C++ books. Great. Now start making lots of console games and other programs. Part of that is building on that C++ knowledge. A big problem is that beginners walk in with shaky grip on the fundamentals when what they need is clarity on "advanced" aspects. You need to be able to construct basic idioms. You should recognize various patterns and abstractions.Being able to do so comes from experience. Beginners talk about reading books. They never talk about what they actually programmed after reading. So is it a big surprise they plateau?   ;Quote:Original post by Gorgro assume i can magically link everything i learned in command prompt to the library i have never worked with before. Furthermore, even if i would be able to work with it, i would have no idea where to begin. There seems to be a dead zone between 'learning the language' and 'on your way to making tetris'. Because i fear this is reflected in books on the matter as well, i haven't bought any yet. I was hoping you guys could give me the advice i need on getting started properly.Nope no dead zone they just assume you are active in your trying to learn instead of waiting to be spoon feed the whole lot.  You want to know how to link libraries? It is different for every compiler out there, try reading the documentation for your compiler.  Want to work with a library?  Try consulting the documentation for the library.   ;Quote:Original post by stonemetalNope no dead zone they just assume you are active in your trying to learn instead of waiting to be spoon feed the whole lot.  You want to know how to link libraries? It is different for every compiler out there, try reading the documentation for your compiler.  Want to work with a library?  Try consulting the documentation for the library.I wouldn't jump that far. Often going from printing to and taking in from command line to even creating windows involves being spoon fed some things because without being spoon fed it can get terribly complex. Did you just magically stumble upon how to create a window or handle user input? Probably not. You probably found some documentation or tutorials on how to do it.That seems to be what the OP seems to be asking for. Why would you assume they aren't being active in their learning when clearly they went out of their way to ask questions about it on a forum filled with professionals in the area they are asking about?   