Skip to main content

Java in games

Submitted by Acer on
Forum

Is it true that most (If not all) console and PC games are coded in C++

And there a chance of a change to Java or any other programing language. I know Java has it's speed disadvantages being a half compiled half interpreted language,is ther any major advantage that Java has over C++

I just want to know what language I should focus most of my attention on, I have just started lerning Java and I like it more than C allready.

Acer

Submitted by CombatWombat on Sun, 09/05/04 - 8:59 PM Permalink

I'm unaware of any PC (or console) games that were written in java (other than hobby projects, this is).

I can't see game developers changing to java any time soon. The reasons, as I see them, are performance (not only from slower execution of code, also from garbage collection hits), protection of their code from decompilers (a higher level bytecode makes it easier to see what the code is doing), and the variation in versions of the java runtime (potential support nightmare :)

At least when I was doing a little bit of java development a few years ago, the speed problems were quite noticable - especially in slight interface lag which irks me.

There are also a few compilers around that do compile java to native code (eg gcc) but I've not used these.

I'd say the main advantage that java holds over C++ is that it's a simpler langugage and it's easier to learn.

Certainly once you know C++ reasonably well (and have started to develop some good OO design skills), one can pick java up very quickly. The opposite way, going from java to C++, will be more trouble as there's a lot of things will strike the new C++ developer as quite unintuitive (they're not, but they just appear that way :)

If your dream is to write FPS or RTS games, I'd suggest C/C++ is the way to go, but if you're wanting to write puzzle games or turn-based web games, probably java is all you'll need.

Cheers,

Mark

Submitted by Daemin on Sun, 09/05/04 - 10:19 PM Permalink

I eally doubt that Java will be used at all for programming console games. The main reason for this would be the garbage collector, since it would run whenever it felt like it, and that is not good when on a console you need to make your code run at a constant rate. On PC however there might be a future in Java, however it would require better graphics and sound libraries in order to do so. Probably also better input libraries too!

One area where it could be used is as a scripting language on top of a pre-built engine already made in C++ etc.

Submitted by awf on Mon, 10/05/04 - 12:33 AM Permalink

I hear c# getting mentioned sometimes. C# and managed DirectX might worth checking out.

Submitted by Blitz on Mon, 10/05/04 - 2:50 AM Permalink

Garbage collection is not a problem in java if you are reasonably smart about your memory usage. You can control the garbage collector and only have it run when when you call it. Java is getting faster all the time, but so is C++. Even with java compield into machine code, it still has all the little extras of overhead that can hurt your code that needs to be badass optimized.

I don't see C/C++ being replaced anytime soon for intensive console and PC games.
However, Java is used a LOT for web-based games and also for quite a lot of mobile phone games, so if you're interested in those platforms, then java will do you fine.
CYer, Blitz

Submitted by Acer on Wed, 12/05/04 - 9:04 AM Permalink

Thanks for the input, I definately want to do FPS and 3D games, so I will have to focus my attention to C++, Im just wondering where can I find out about all the C++ funtions, is there a catalouge of the standard C++ functions, i have only got the basic compiler, and it has little documentation.

Thanks again.

Acer

Submitted by DaMunkee on Wed, 12/05/04 - 12:04 PM Permalink

Check out the microsoft MSDN site, they have their full documentation online. Other then that, just search online for C++ tutorials and refereces.

By the way, for hard core games (pc or Console), C/C++ is the way to go. If you're looking to make games for Phones and handhelds like phones. Java is the way to go.

Posted by Acer on
Forum

Is it true that most (If not all) console and PC games are coded in C++

And there a chance of a change to Java or any other programing language. I know Java has it's speed disadvantages being a half compiled half interpreted language,is ther any major advantage that Java has over C++

I just want to know what language I should focus most of my attention on, I have just started lerning Java and I like it more than C allready.

Acer


Submitted by CombatWombat on Sun, 09/05/04 - 8:59 PM Permalink

I'm unaware of any PC (or console) games that were written in java (other than hobby projects, this is).

I can't see game developers changing to java any time soon. The reasons, as I see them, are performance (not only from slower execution of code, also from garbage collection hits), protection of their code from decompilers (a higher level bytecode makes it easier to see what the code is doing), and the variation in versions of the java runtime (potential support nightmare :)

At least when I was doing a little bit of java development a few years ago, the speed problems were quite noticable - especially in slight interface lag which irks me.

There are also a few compilers around that do compile java to native code (eg gcc) but I've not used these.

I'd say the main advantage that java holds over C++ is that it's a simpler langugage and it's easier to learn.

Certainly once you know C++ reasonably well (and have started to develop some good OO design skills), one can pick java up very quickly. The opposite way, going from java to C++, will be more trouble as there's a lot of things will strike the new C++ developer as quite unintuitive (they're not, but they just appear that way :)

If your dream is to write FPS or RTS games, I'd suggest C/C++ is the way to go, but if you're wanting to write puzzle games or turn-based web games, probably java is all you'll need.

Cheers,

Mark

Submitted by Daemin on Sun, 09/05/04 - 10:19 PM Permalink

I eally doubt that Java will be used at all for programming console games. The main reason for this would be the garbage collector, since it would run whenever it felt like it, and that is not good when on a console you need to make your code run at a constant rate. On PC however there might be a future in Java, however it would require better graphics and sound libraries in order to do so. Probably also better input libraries too!

One area where it could be used is as a scripting language on top of a pre-built engine already made in C++ etc.

Submitted by awf on Mon, 10/05/04 - 12:33 AM Permalink

I hear c# getting mentioned sometimes. C# and managed DirectX might worth checking out.

Submitted by Blitz on Mon, 10/05/04 - 2:50 AM Permalink

Garbage collection is not a problem in java if you are reasonably smart about your memory usage. You can control the garbage collector and only have it run when when you call it. Java is getting faster all the time, but so is C++. Even with java compield into machine code, it still has all the little extras of overhead that can hurt your code that needs to be badass optimized.

I don't see C/C++ being replaced anytime soon for intensive console and PC games.
However, Java is used a LOT for web-based games and also for quite a lot of mobile phone games, so if you're interested in those platforms, then java will do you fine.
CYer, Blitz

Submitted by Acer on Wed, 12/05/04 - 9:04 AM Permalink

Thanks for the input, I definately want to do FPS and 3D games, so I will have to focus my attention to C++, Im just wondering where can I find out about all the C++ funtions, is there a catalouge of the standard C++ functions, i have only got the basic compiler, and it has little documentation.

Thanks again.

Acer

Submitted by DaMunkee on Wed, 12/05/04 - 12:04 PM Permalink

Check out the microsoft MSDN site, they have their full documentation online. Other then that, just search online for C++ tutorials and refereces.

By the way, for hard core games (pc or Console), C/C++ is the way to go. If you're looking to make games for Phones and handhelds like phones. Java is the way to go.