Jump to content
  • Advertisement
Sign in to follow this  
dual_horizons

Where do I go from here?

This topic is 4011 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

Hi! I know a little bit of C/C++ and am learning Java at college. Have no knowledge about Windows Programming in C/C++ though. I would like to develop games for Windows platform. What do I need to do now? Do I need to learn Win Programming in C++ or can I continue with Java? And secondly what is the difference between OpenGL and DirectX? Which of those do I need to learn? And do I need to know Win Programming to use them? How long does it take to become comfortable with these? Thanks in advance, dual_horizons.

Share this post


Link to post
Share on other sites
Advertisement
I have no knowledge of Java as far as game developing goes. I have seen plenty of web games developed in Java but nothing passed that.

From personal experience I would recommend Cpp and DirectX for Windows game development. I suggest you develop a strong foothold with Cpp before starting to learn DirectX. You do need some knowledge of WinAPI in order to use DirectX. Nothing too extensive though.

I would say the main difference between OpenGL and DirectX would be that OpenGL is a cross-platform tool and DirectX is Windows only.


Suggested Books:
to learn beginning Cpp - Beginning Cpp Game Programming
This book a great starting point for aspiring game programmers. It was one of the books we used in my High School Cpp class. My only gripe with the book is that the examples and source have a lot of errors. Make sure you check out the books website to look at the errata documentation. here

to learn DirectX - Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach
This book covers the basic Win32 stuff you need to know for windows game development in it's Appendix A. I highly recommend this book.

to learn Win32 programming - Programming Windows, Fifth Edition
Get this book if you want to learn more Win32 programming. Not really a necessity.

In case you don't want to spend money on books...
Web Sources:

CPlusPlus Site - www.cplusplus.com
This site covers more of the C++ language than the book I suggested. I'd go through the book and this site at the same time before moving onto DirectX.

Chad Vernon's Site - www.chadvernon.com/blog/
This is where I first started learning DirectX. He also covers managed DirectX.

Two Kings Site - www.two-kings.de
I haven't used this site for anything other than it's DirectX Audio tutorials but it also has other beginning DirectX stuff.

WinProg Site - www.WinProg.net
This is a good online resource for Win32 programming.

Share this post


Link to post
Share on other sites
You should use what you know best. If you know Java better than C++, unless you are desperately interested in learning C++ for the sake of learning C++, then just make your games in Java.

As for OpenGL and DirectX, they are 3D graphics APIs. You need be fairly comfortable writing code (in any language) and have a decent basic grasp of the fundamentals of 3D computer graphics to make good use of them. You cannot, afaik, call to DirectX from Java (pleasantly; I mean, it's COM, so you probably could, but I don't you'd enjoy it), but you can use OpenGL via various libraries.

Share this post


Link to post
Share on other sites
Check out "Developing Games in Java" by David Brackeen. It goes into detail on full screen game development with Java including a large section on 3-D games using software rendering.

Share this post


Link to post
Share on other sites
You may also like C#. Supposively its a mix between C++ and Java. I say supposively because thats what i've heard and I wouldnt know java if it smacked me in the face.

Share this post


Link to post
Share on other sites
Thanks for the help. But I have some further queries.

I am learning Java for the past 6 months and C++ for the last 2 years. But I am finding Java easier. I mean, I think it is way easier to create windows and applets in Java. But it is true that I haven't come across more than a couple of commercial games written in Java. This is the reason I am a bit unsure about going with Java.

I have absolutely no idea of C# and am highly uncertain whether I should try to learn a new language. Are there any added advantages in learning C# which are not there in C++ or Java, in the field of game development.

I wonder how much of WinAPI I need to know to learn DirectX. I am going through Charles Petzold right now and am overwhelmed by the number of pages. It would be great if you told me how much of WinAPI I need to know in order to get started with DirectX.

Now, I will go in search of the DirectX book that was mentioned.

Share this post


Link to post
Share on other sites
Well C++ is a very novice unfriendly language. It is full of pitfalls and unless you know EXACTLY what you are doing then it is not advisable to work in C++. Take for instance all of the undefined behaviors that can result from the incorrect usage of arrays or pointers in C++. It is relatively easy to access an illegal array element or a pointer and cause bugs at other points in your program that are insanely difficult to track down. It is a snap to leak ram by not deallocating something correctly...Now C++ is a decent language and it has uses, but there are better languages to start off in.

It seems that everyone wants to use what the professionals are using and that is cool, but you are still just starting out and you are not going to be doing anything "professional" for quite a while!

It is more important to learn the fundimentals of programming and computer science and once you learn these things you will be able to work with any language or API with only a few weeks of practice and training.

Share this post


Link to post
Share on other sites
Well a lot of people disagree on here as far as C# being a powerful language. I've done some reading though on how C# is a superior language. Without getting into "which language is the best" though...

C# according to a book I'm reading uses primarily a Java syntax, so you should be pretty used to it. What isnt Java is a little bit of C++. And from what i've read Java is basically a C++ Syntax as well...so they're all related.

I think if you chose C# you wouldnt have much of a learning curve at all since you're back ground is in what C# is made up of.

From posts ive read on here about the language of choice and for what i've read about C# I think that at best you would try C# and love it, and at worst you would decide to learn a different language, but still be able to use the things you learned using C# on that different language. Another thing to think about is the future too. Even if C++ is better for the more expert user today....C# seems to be getting a lot of attention by Microsoft. So in the future years it will probably be even more useful than it is now.

With that said if you start out with Java, C#, or C++ you should be able to switch to any of those languages at some point anyways easier than someone who didnt know jack about any of them. I like C# the best for what I'm doing right now, but thats just my prefrence.

Share this post


Link to post
Share on other sites
Quote:
Original post by dual_horizons
Thanks for the help. But I have some further queries.

I am learning Java for the past 6 months and C++ for the last 2 years. But I am finding Java easier. I mean, I think it is way easier to create windows and applets in Java. But it is true that I haven't come across more than a couple of commercial games written in Java. This is the reason I am a bit unsure about going with Java.

I have absolutely no idea of C# and am highly uncertain whether I should try to learn a new language. Are there any added advantages in learning C# which are not there in C++ or Java, in the field of game development.

I wonder how much of WinAPI I need to know to learn DirectX. I am going through Charles Petzold right now and am overwhelmed by the number of pages. It would be great if you told me how much of WinAPI I need to know in order to get started with DirectX.

Now, I will go in search of the DirectX book that was mentioned.


This didn't occur to me until just now... The DirectX book I mentioned shows how to program your own pixel and vertex shaders. Make sure you have a graphics card that supports those features; otherwise, you will be held up a bit until you can get a GFX card that does(as I was). I am pretty sure that the book only requires pixel and vertex shader version 2.0. There is a previous version of the book that doesn't cover pixel shaders and vertex shaders as extensively(I think it only touches on it in its appendix). I would suggest getting that one if you don't have the support and you don't want to get a new graphics card. The book is located here. You just need to be able to create a basic window and change up the message loop some. Visual Studio generates all the code to create a basic window for you when you start a Win32 project, so really you could get by with only changing the message loop.

The Charles Petzold book is a classic and is great for learning WinAPI programming. Ha ha Yes it is a really thick book. For learning the WinAPI required for DirectX, it is extreme overkill. I only included it in case you found an interest in WinAPI or if you needed a description with more depth than the DirectX sources provide. The same goes for WinProg.net.

Chad Vernon's first tutorial for DirectX answers your question about how much WinAPI is needed.
Quote:
The last sentence in Chad Vernon's first DirectX tutorial
That's mostly all we need to know about Windows programming to start working with DirectX.

The tutorial can be found here.

As far as sticking with Cpp goes. I started with Cpp. I, personally, cannot say that Cpp was any more difficult to start out with than any other language. I have only ever had one first language. Everybody's first language poses some difficulty. Learning a second language is always going to be way easier than your first. So I can't accurately judge if it was any harder than if I were to start out with some other language. I hope you understand what I am trying to get at. Whether or not you should choose to stick with Cpp is all dependent on you; your goals and how serious you are about it. You have already had two years of experience with Cpp. I do not know how far you got in those two years but I feel it is safe to assume you have an idea if Cpp is overly difficult. If you do find Cpp too difficult, then these people are probably who you should listen to. Any of the languages they are listing will let you create games. If you want to take this beyond a hobby and get a job as a game programmer, the language you settle on should depend on the type of game field in which you wish to work; overall, I say stay with the language in which you have the most confidence and effort invested. Once you have a strong understanding of one language, learning another language will be a lot easier.



[Edited by - Thanatos454 on September 27, 2007 12:39:43 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Thanatos454
Chad Vernon's first tutorial for DirectX answers your question about how much WinAPI is needed.
Quote:
The last sentence in Chad Vernon's first DirectX tutorial
That's mostly all we need to know about Windows programming to start working with DirectX.

The tutorial can be found here.



And there I was thinking I had to learn all that before I could begin learning DirectX! Thanks for the link to chadvernon.com, it sure helped a lot.

Concerning C++, well I am comfortable with it. It was my first language, too and I don't find it terribly tough or anything. But then again, I have very little experience coding real life situation's programs. I mean, memory leaks,etc have never bothered me cause most of the programs I have coded were pretty simple. I have done a course of Data Structures in C++ and one on Analysis of Algorithms, again in C++ and am just learning Java. So I have no clue as to how much I will miss garbage collection if I continue in C++!

Share this post


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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!