ID:181995
 
Ok, so when I was 16 I went through all of the C++ tutorials multiple times, and after a few years I'm still no closer to being able to program anything useful in C++.

All of the online C++ tutorials end with file I/O usually, and we're left with being able to make lovely command prompt programs... However this isn't actually useful to most people. Where do I go if I want learn how to do the following:
1: Draw my own graphics and move them around on the screen... I.E: The first steps to a game
2: Make windows based programs that have actual windows instead of friggin command prompt
AJX wrote:
1: Draw my own graphics and move them around on the screen... I.E: The first steps to a game

There are a number of game engines written in C and C++ that you can start fiddling with. Check out Quake 2 and 3 and various engines based on them (War§ow, Darkplaces, QFusion, etc). Check out Ogre 3D, the Blender Game Engine, Crystal Space, and so on.

2: Make windows based programs that have actual windows instead of friggin command prompt

I highly suggest wxWidgets. It's cross-platform so you can build for Windows, Mac and Linux. It uses the native GUI toolkit for each of those platforms so the apps act naturally. Furthermore, it has bindings such as wxPython which you can use if you build a scripting language interpreter into your runtime to enable customization or extensions.

If you want more multimedia flexibility (a drawing toolkit rather than a GUI-building toolkit), SDL (the Simple Direct-Media Layer) is available and similarly has bindings for scripting languages (the Python binding is called pygame).



Addendum: Ecere is also an very cool system for developing in 3D. It uses C or its own managed language called eC, but you can include and build C++ modules into Ecere projects. In the past I haven't recommended it widely, but finally the developers have released it as open source BSD-licensed code!

Like wxWidgets, it supports Windows, Linux, and Mac. I almost think of it as the 3D-supporting, BSD-licensed version of BYOND: that same attitude of being easy to use and not making you put up with a lot of crap is there. However, it's still not as easy to learn as BYOND is. It makes a great stepping stone, though: once you've grasped BYOND and want to move on to a much more powerful and open environment, check out Ecere.
Obviously you take the next step and try and outdo the Unreal 3, CryEngine 3, and id Tech 5 engines.
If you are confident I reccommend learning one of the said graphics APIs, or just using a full blown engine (which would be much better for you).

I personally reccomend OGRE. It has a slew of libraries that plug into it and was quite easy to get into for all I remember.

Just don't expect to get far without a lot more effort.

George Gough
First of all, most C++ tutorials teach you C++ interfaces, not how to program well. You need to verse yourself with different computer algorithms (and continue to do so all your life) to know how to do much of anything useful. As mentioned before, there are tutorials of how to do graphical programming in C++. I have personally done some C++ programming with OpenGL. Searching "OpenGL C++" instantly yields some tutorials as results.

However, if you are just wanting to add a native Win32 GUI window, google also provides some quick results. Have a look at http://www.winprog.org/tutorial/
AJX wrote:
Ok, so when I was 16 I went through all of the C++ tutorials multiple times, and after a few years I'm still no closer to being able to program anything useful in C++.

In all honesty, I think the next step is to buckle down and buy a good book or two (library works, too). Tutorials are fine when you must have a free resource, but often enough you won't find the quality of, say, a Deitel publication. I personally always recommend C++ How To Program, Fifth Edition, as I've read it and found it to be a very good book. Do note, though, that there is currently a Sixth Edition available---which I haven't personally read and therefore can't recommend---that has some additions since the Fifth Edition that will help you step into games programming. On the same note, a Seventh Edition should be coming out around July-ish.

Where do I go if I want learn how to do the following:
1: Draw my own graphics and move them around on the screen... I.E: The first steps to a game

If your focus is on the Windows platform, it couldn't hurt to study DirectX. Again, free online tutorials are nice, but it's probably better to find a good book to study. If you want to leave from for cross-platform development, there's nothing wrong with learning OpenGL, and I think you'll find many more good books on OpenGL than you will DirectX.

2: Make windows based programs that have actual windows instead of friggin command prompt

There isn't a real single answer here. First it boils down to what system you're developing for (the primary ones being Windows, Linux, and Mac):

On Windows, you could learn the Windows API (there are some good books, such as Programming Windows or Programming Windows With MFC, but you'd also want to supplement the former with something like Win32 Programming or another book that gives more coverage of message crackers.

On Linux, I think the primary platform is GTK+, which you might read about in GTK+ Programming in C, Gnome/GTK+ Programming Bible, or GTK+/Gnome Application Development.

For modern versions of the Mac operating system, you're going to want to learn about Cocoa, with books such as Cocoa Programming in Mac OS X, or Cocoa Programming.

If you don't have a specific target and would like to work on cross-platform applications, you might try a platform such as wxWidgets or Qt. I'd recommend wxWidgets, though I haven't explored enough books on it to decidedly say which ones rank above the rest.