well, whatever language you use you have to go for either directX or openGL. DirectX best suited for MS platforms and OpenGL to be on Either MS or *NIX platform.
If you use Java/C# then it will work fine but can reduce the perfomance. The reason is that Both JAVA and C# use a layer (JVM in case of JAVA and CLR in case of .NET) which will definitely can reduce the perfomance. Your program first goes to this layer and then to the system from where it will use the OpenGL or DirectX library.
My suggestion is to use either VC or VB if you are looking for a program on Windows and if you wish to be a platform independant then go for the OpenGL+Java combination.
Thanx guys for the reply. Im not that experienced at programming quite yet, but VB was recommended by u guys as a possibility but to me it seems limited to using pictureboxes and image controls. I don't see how i can possibly manipulate graphics in detail that way. Surely I could'nt use VB or is their an extensive library of graphics functions that i need to discover and use within Visual Basic as well as with the other languages. Then also i must probably learn abouut how to incorporate Directx and Opengl within the language i choose. Am I missing anything.I have a good understanding of the C++ language as well as Visual Basic, now i need to master the advanced features.It promises to be an interesting road ahead. Am i making any sense and do u guys have any suggestions as how i should move forward from where i am and maybe suggestions as to what books to use and use as references to graphics programming?
yeah you are on the right track. if you have option between VB and C++ then i'd suggest to go for C++ (VC). download the latest directX/OpenGL SDK and first make a couple of things using these libraries like boxes, polygons. Then the main thing come to work on "Camera", you may need to learn some mathematics also, since there you'll be solving some equations to get the camera focus and objects alignment.
Java is easier to debug than C++, unless you already know C++ inside out, C++ is a tiny bit faster at matrix calculations, otherwise java and C++ are comparable, they both use DirectX and OpenGL interfaces, and the VirtualMachine layer is passed-through very quickly. I'd rather have portable code that takes 10 extra nanoseconds per minute than native code that doesnt. (my time relationship there is based on nothing but unfounded conjecture)
VB is actually not bad if you use DirectX-in-VB, I made some 2D a long time ago, and there's certainly no loss in potential from using what some people would claim is a "restricted" language. I've never tried DirectX3D in VB, but I think it's supported.
EDIT: to be honest, you'll be learning DirectX or OpenGL rather than a programming language for the graphical part, and they're both similar. The programming language you use is more the programming language you think is best for implementing the object relationships and general aspects of the game engine. Pick your poision based on the packaging.
The only problem that I have with Java as a video game language is that you get slowdowns when Java needs to garbage collect your objects...if you create lots of things and need to destroy them, it may slow down your game at an inopportune time due to resources being sucked up by the garbage collector. True, you can fire off the garbage collector periodically, but that still introduces odd spikes in the execution.
Then again you do not have to worry about clean up as much with Java just because of that attribute.
Generally games which do not depend on the "twitchy" factor would be best served by Java, but C/C++ gives you a bit more control over the entire environment. You just have to be more careful to avoid memory problems.
But as MattEvans said, you are basically going to be learning the graphics package. These packages generally translate straightforwardly to any language you chose. As for the graphics package, I wholeheartedly support OpenGL simply because of its ease in portability between platforms. You will have to learn both though if you chose to do Game design for a living.
I want to start programming PC Games that use lots of graphics. Which Programming language or languages are best suited for computer graphics programming and WHY?
PC games actually use a lot of graphics, what you might have wanted to say was that how to make cool commercial games. ;)
Whatever other people say about Java, it still stands that Java has a long way to go when it comes to core or commercial game programming. If you want to make a game which sells on Gamehouse for 12$ a copy, you are most welcome to use VB or Java.
But when it comes to games like Doom III, Halo II and others which blow the professional gaming senario to pieces, you can only dream of achieving it in Java or VB. Name a commercial 3d which has been made in Java or VB ?
As far as the currect situation stands, the core functionality (graphics engine ) is mostly made in C++ while the other gaming functionality can be implemented in Python or C++.
Python developers have actually gone out to prove that it has the power to be recognized as a game development langauge. Some games made in Python - Severance - Blade or Darkness and the famous Freedom Force by Sierra.
IMHO stick to C++ for the time being and you will be a happy man in the end.....
Call me old-skool, but I'm going to say that C++ is the only only only way to go. It completely compiled, doesn't rely on any middle-level interpretation software (no virtual machine). Visual Basic and Java are great, but when it comes to fast graphics, the C++ and OpenGL combination are the only way to go.
There is also that rare possiblity that you mix assembly and C++ to design assembled modules that can work with the C++ by working the code to use those modules. But for that you have to have a very good idea of what your doing and when you really need to do it. You can always custom-taylor an open-source project or combo.
>they should make a better c++ and call it D that would be cool
That was basically the whole goal of D -- to improve on C++'s strengths, and remove the bad parts, as was Java's goal, Objective-C's goal (well actually it was more based on C, but nevertheless it used C++ concepts), C#'s...
The most confusing part of D is that it's perfectly fine to use void main -- now that would just confuse all us C++ programmers!