• Advertisement
Sign in to follow this  

After Programming.....then what?

This topic is 4221 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

OK, I am currently learning how to program in C++ through a helpful book called "Beginning C++ Game Programming" and I'm learning Text based games and stuff like that, but after I finish the book what should I move on to? The last activity is a text basked blackjack game. I think I want to start programing 2D graphics games, what should I dd and what do I move on to?

Share this post


Link to post
Share on other sites
Advertisement
You could make a couple of extra console games for practice if you don't mind doing it, figuring out the design and implementation for yourself (rather than being walked through it by the book) can be an excellent excersise.

If you want to move on to 2d graphics you'll need to pick up a graphics API of some sort next. Some common options include SDL, Allegro, OpenGL and DirectX. Personally out of those I'd recommend starting with SDL (which will do a few other things for you as well), but it mostly comes down to personal preference as to which API you choose.

Share this post


Link to post
Share on other sites
Quote:
Original post by Cyncro
So what about Win32? What's that about?

Win32 is another API dealing largely with window creation and handling in Windows as well as some drawing operations. Depending on your choice of graphics API you may find you'll need to learn some Win32 to create a window to actual draw onto, while others (such as SDL) will handle this for you. It definately wouldn't be a bad thing to take a look at some Win32, although most people find it a lot more complex than SDL, which is quite capable of most of the tasks a beginner might wish to carry out using Win32.

Share this post


Link to post
Share on other sites
Ok, but I've been hearing that OpenGL is mostly used for 3D graphics programming, and that DirectX is also very popular and one of the industries standards. Someone's clarification?

Share this post


Link to post
Share on other sites
Quote:
Original post by Cyncro
Ok, but I've been hearing that OpenGL is mostly used for 3D graphics programming, and that DirectX is also very popular and one of the industries standards. Someone's clarification?
It is true that DirectX is probably more used then OpenGL for game development. OpenGL is usually used for graphics development, but that does not mean it's limited to that area; OpenGL is used in the PlayStation for instance. I personally prefer DirectX, how ever it is COM based though so it is a bit different then probably what you are used to. Assuming you want to develop in DirectX you will probably need some Win32 experience.

You don't necessarily need a book on the subject of Win32; it is your choice depends on how hard you find it. The website http://www.foosyerdoos.fsnet.co.uk/ can teach you a lot of the basics of Win32 through source examples. You might want to experiment for awhile though.

Share this post


Link to post
Share on other sites
Ok, I would probably like to purchase a book though, I feel a lot more comfortable reading a book like the one I have now. But do most tutorials and books focus on a certain language when coming to things like Direct X, or will I use C++ to incorporate that API? I've seen a few things that say things like "You will use this language to make a game using (API)" Stuff like that. So how does that work? Do I use any language combined with this or is it different each time in each book/tutorial?

Share this post


Link to post
Share on other sites
Quote:
Original post by Cyncro
Ok, I would probably like to purchase a book though, I feel a lot more comfortable reading a book like the one I have now. But do most tutorials and books focus on a certain language when coming to things like Direct X, or will I use C++ to incorporate that API? I've seen a few things that say things like "You will use this language to make a game using (API)" Stuff like that. So how does that work? Do I use any language combined with this or is it different each time in each book/tutorial?

I personally have found most of the books concentrate on C++. How ever books such as DirectX might focus on a different language. I find it is best to look through the book and see exactly what they are using to teach you before buying a book.

Unless you are buying them online which might be a harder problem. I can't really recommend any specific Win32 books. You should probably just look around on amazon for some books see how they are described and see what language they will be using, it should probably mention it. I am sure there are some in the book section of GameDev along with reviews, I would start there.

Share this post


Link to post
Share on other sites
So then I'm assuming that these books will focus on a language when teaching me DirectX and that I can't just incorporate my knowledge of C++ in it. Ok that's fine. So then, for 2D games, SDL, or DirectX? SDL already has the features of Win32, but Is Win32 really that hard and is it worth going out of my way for this to learn DirectX?

Share this post


Link to post
Share on other sites
Win32 can be quite hard for some people, it is quite different then console programming. The main things you will need to know to develop a DirectX application is how to get up a Win32 window, and setup a message pump.

Books on Win32 programming will most likely go over a lot more then you might need. Such as button controls, list boxes, drop down lists, painting to the device context of the window, creating customized controls, etc.

It is really an option, you could probably do it either way. Doesn't matter to much if you don't know how to do everything in Win32; it can be helpful though. Some of the DirectX books might even cover the basics of Win32 in the first few chapters. Which is something to look into if you intend to take that route.

Share this post


Link to post
Share on other sites
When I learned DirectX, I didn't have any windows programming experience. A lot of what I produced relied heavily on the "black magic" of the examples.

I then learned OpenGL using GLUT (which allowed me to jump straight in and code the graphics and vertices and lights and such, without having to know any win32 code).

Then I learned Win32 programming, and it took me less than a month, through this site: http://www.winprog.org/tutorial/

It teaches you roughly how windows programming works, and gives you pointers on how to look things up (which to me was the most important part).

Now I feel there's a lot less black magic involved with Windows programming, and with the added bonus that when I came to look at DirectX tutorials again, suddenly I was understanding the majority of the code in there!

Hope that's some help.

Tim

Share this post


Link to post
Share on other sites
So by the looks of it, I'm going to start out learning Win32 and DirectX, and then move onto whatever is next. Just another question, I can use DirectX for 2D programming right?

Share this post


Link to post
Share on other sites
Quote:
Original post by Cyncro
So by the looks of it, I'm going to start out learning Win32 and DirectX, and then move onto whatever is next. Just another question, I can use DirectX for 2D programming right?


Yes, look into ID3DXSprite for easy 2D games when you get there.

Share this post


Link to post
Share on other sites
No, ID3DXSprite is an interface in the DirectX API that provides a set of methods that simplify the process of drawing sprites using Microsoft Direct3D. It is basically a quad that will be rendered to the screen.

Share this post


Link to post
Share on other sites
ID3DXSprite is an interface that DirectX exposes. I would recommend at this stage of your programming you would use SDL because when I started out with graphics programming, DirectX was a headache for me to learn. I switched to SDL and made an asteroids game in couple of weeks. Oh and I didn't use a single line of Win32 API calls however I did use some OpenGL calls which was very straight forward. The tutorials on the website will show you what to do.

The web address to get tutorials and libraries is www.libsdl.org

Good luck.

Share this post


Link to post
Share on other sites
Just a suggestion ...

If you are looking for a good Win32 book, you might try Charles Petzold's "Programming Windows 5th Edition" from Microsoft Press. It's a great resource for getting up to speed on the nuts and bolts of Windows programming.

Share this post


Link to post
Share on other sites
Quote:
Original post by Cyncro
So how long should Win32 take to learn what I need for DirectX?


You mentioned that you prefer books to learn, so here is a list of books on DirectX:

List of DirectX Books

Concerning the length of time learning the API's will take, that all depends. If you plan on learning both the Win32 API and the DirectX API extensively, then it will take some time. But you should be able to learn the basics of both within a few days. It took me about a week to get comfortable with the Win32 API, but it takes much longer to learn the API inside-and-out.

Share this post


Link to post
Share on other sites
I recommend Beginning Game programming by Jonathan Harbour.

It will take you through the steps you need to get stuff on the screen and moving around. It has a brief but decent introduction on Win32 (which is really what you want since you will only be using a little bit of win32 programming), and then shows you what you need to learn in DirectX to get images displayed, moved around, keyboard input, and sound.

It's more of a procedural book though, if you're doing object oriented programming (which is what I think beginning c++ game programming teaches), you may want to look at something else.

The reason I like it more than most books is that it creates, step by step, a framework for filing and coding that you can use in the future. And walks you through exactly what you need to do to start using ID3DXSprite for 2d games.

Share this post


Link to post
Share on other sites
If you learn Win32 API, you can start Windows game making from one step forward.

Share this post


Link to post
Share on other sites
Quote:
Original post by Kazgoroth
Win32 is another API dealing largely with window creation and handling in Windows as well as some drawing operations.

No. Win32 is the base system application programming interface (API) for 32-bit Windows. Period. It covers a hell of a lot more than just windowing and graphics.

Technically, drawing in Win32 is handled by the GDI or GDI+ APIs, which are a subset of Win32 (GDI stands for Graphics/Graphical Device Interface). High performance multimedia interfaces are provided by the DirectX API, which is supplemental to Win32 (just as OLE/COM/COM+/DCOM is supplemental to Win32). A variety of abstractions and helper libraries exist, even within the Windows Platform Software Development Kit (also called Platform SDK or PSDK), such as Active Template Library (ATL).

Yes, it's confusing. But it's better for Cyncro to get it right and take the time to get his head wrapped around it than to get it wrong.


@Cyncro:
The leap from text mode programming to graphical programming in C++ is a tough one because C++ has no concept of graphics, or input devices, or system timers, or any of the fancy resources that are commonly used in making games. It has no notion of threads, for example. All of these constructs are provided by an operating system API/SDK, such as Win32 on 32-bit Windows, or Carbon on Mac OS X, or Xlib + Gtk + POSIX/libc on some frankenstein Linux distro. There are abstraction libraries that attempt to "hide" the complexities of these systems from you, but, since they are typically written for Windows and Mac OS X and Linux, they're often compromised by lowest common denominator decisions.

If you want to write killer games for Windows, sooner or later you'll have to learn Win32. Yeah, you can postpone it, and you probably should, but put it on your list of things to do, especially if you're going to be using C++.

Cheers!

Share this post


Link to post
Share on other sites
When I'm older I won't be making games for windows, but most likely consoles and handhelds, but what do you mean by object oriented programming?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement