User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Game Development section within the Software Development category of DaniWeb, a massive community of 456,601 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,481 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Game Development advertiser: Programming Forums
Views: 8974 | Replies: 74
Reply
Join Date: Jul 2006
Location: Deptford, London
Posts: 971
Reputation: MattEvans has a spectacular aura about MattEvans has a spectacular aura about 
Rep Power: 5
Solved Threads: 48
Moderator
Featured Poster
MattEvans's Avatar
MattEvans MattEvans is online now Online
Posting Shark

Re: Game Engine

  #31  
Nov 3rd, 2007
Originally Posted by jwenting
Swing indeed. And before that AWT (which is still at the back of Swing in the non-visual area).
There's nothing like that for C++. Each compiler and platform has its own user interface libraries, and often a plethora of them, some of which work only on some platforms and libraries and others on others.

Yeah, if you make a C++ application and insist on using one of the operating system's GUI systems/APIs directly, you're gonna run headfirst into portability issues. If you use a multiplatform layer inbetween, something like Qt or GTK or similar: your app will work the same on windows, mac, and linux.. the portability issue disapears ( as long as those are your target platforms.. ). Same with 3D even; use SDL + OpenGL, and all necessary porting is taken care of, between windows and linux atleast. I see the 'C++ apps aren't portable' argument as a myth; from experience with 2 largish apps: as long as I'm careful and avoid ( or allow the switching of [ which is rarely necessary ] ) all platform-specific code, and use multiplatform libs where appropriate; building the same code on windows and linux is trivial.
Last edited by MattEvans : Nov 3rd, 2007 at 10:23 pm.
Plato forgot the nullahedron..
Reply With Quote  
Join Date: Nov 2004
Location: Netherlands
Posts: 5,752
Reputation: jwenting is a jewel in the rough jwenting is a jewel in the rough jwenting is a jewel in the rough jwenting is a jewel in the rough 
Rep Power: 19
Solved Threads: 200
Colleague
jwenting's Avatar
jwenting jwenting is offline Offline
duckman

Re: Game Engine

  #32  
Nov 4th, 2007
those multiplatform APIs however are non-standard and hard to use.
Their licenses are also often such that you don't want to use them (forcing your application into GPL for example, or extremely expensive).
There's also no standard.

Yeah, IMHO the express editions are almost exactly the full ones except for the lack of some things relating to databases, deployment, source control and mobile development

They also lack documentation, can't be easily (if at all) extended, etc. etc.
The full product is well worth paying for if you're going to use Visual Studio for non-trivial tasks.
As people are clearly allowed to attack me but I'm not allowed to defend myself, I no longer post to this site.
Reply With Quote  
Join Date: Jul 2006
Location: Deptford, London
Posts: 971
Reputation: MattEvans has a spectacular aura about MattEvans has a spectacular aura about 
Rep Power: 5
Solved Threads: 48
Moderator
Featured Poster
MattEvans's Avatar
MattEvans MattEvans is online now Online
Posting Shark

Re: Game Engine

  #33  
Nov 4th, 2007
I'll agree, the Qt licensing sucks. GTK isn't bad though; it's LGPL, which is reasonable.. It (GTK) IS a messy API to use directly, but the Glade XML format is handy. Neither of these really aim to be standards; they are multiplatform APIs for user interfaces, that's all, and they do that well.

Anyway, I know where you're coming from, but if a standard for the runtime and GUI gets Java + Swing; I'll stick with no standard GUI, threads or networking; and C++ & libs / engine code. It's totally a preference thing, but there are good reasons for having that preference - and it's nothing to do with running speed ( or resistance to change - I learnt Java before I really understood C++ ) : it's mainly the lack of the same amount of groundwork in games libraries on Java as is on C/C++, but also a dislike of the simplicity of the Java language, which actually makes it highly complicated to use at times. Also.. for all of Java's proclaimed multiplatform-ness, I don't see a JRE on the Wii, DS, Xbox360, PS3, PSP, etc..
Last edited by MattEvans : Nov 4th, 2007 at 6:41 am.
Plato forgot the nullahedron..
Reply With Quote  
Join Date: Apr 2005
Location: Dundee, Scotland
Posts: 12,883
Reputation: jbennet is a jewel in the rough jbennet is a jewel in the rough jbennet is a jewel in the rough jbennet is a jewel in the rough 
Rep Power: 32
Solved Threads: 305
Moderator
Featured Poster
jbennet's Avatar
jbennet jbennet is offline Offline
Moderator

Re: Game Engine

  #34  
Nov 4th, 2007
i know, i dont get how java runs on my phone but they dont make a CE edition
TRY MY SUGGESTIONS AT YOUR OWN RISK

Master of puppets Im pulling your strings, blinded by me, you cant see a thing. Master! Master!
Reply With Quote  
Join Date: Oct 2007
Location: Pennsylvania, US
Posts: 37
Reputation: maddog39 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 3
maddog39 maddog39 is offline Offline
Light Poster

Re: Game Engine

  #35  
Nov 6th, 2007
Originally Posted by jwenting View Post
those multiplatform APIs however are non-standard and hard to use.
Their licenses are also often such that you don't want to use them (forcing your application into GPL for example, or extremely expensive).
There's also no standard.



They also lack documentation, can't be easily (if at all) extended, etc. etc.
The full product is well worth paying for if you're going to use Visual Studio for non-trivial tasks.

I entirely disagree with your statement. I think you are completely wrong. I think that proprietary APIs are the WORST at providing documentation and are usually far more complex and require a much higher learning curve. Have you ever tried easily finding the full documentation with full code examples for the Windows API or the Apple API. I didn't think so. Although you could argue that you have MSDN at your disposal on the Microsoft side. Trying to find ANYTHING on MSDN is like trying to find the worlds smallest needle in the worlds largest haystack. Not to mention that Microsoft's APIs for C and C++ are some of the worst I have ever used.

Whereas the Open Source APIs are far easier to learn while not sacrificing flexibility. They make more sense logically in your code. When you go to their websites, all the documentation is right there in front of you, easy to navigate, and most provide many tutorials and code examples on how to use their API for free. Most are licensed under the LGPL. In Qt's case, you have a choice of the GPL or the QPL. And then you have WxWidgets which has its own open source license and uses native widget toolsets on all platforms. The same thing applies to graphics APIs
Reply With Quote  
Join Date: Aug 2007
Posts: 2
Reputation: bnastic is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
bnastic bnastic is offline Offline
Newbie Poster

Re: Game Engine

  #36  
Nov 10th, 2007
Interesting thread... too predictable, unfortunately.

May I ask how many of you suggesting Java is "as good or even better than c++ for gamedev" have actually worked in games industry? Or at least have worked on a game, from start to finish?

There is that old saying, "right tool for the job", it fits in this discussion pretty well. Java is not the right tool for the job.
Last edited by bnastic : Nov 10th, 2007 at 2:05 pm.
Reply With Quote  
Join Date: Oct 2007
Location: Pennsylvania, US
Posts: 37
Reputation: maddog39 is an unknown quantity at this point 
Rep Power: 2
Solved Threads: 3
maddog39 maddog39 is offline Offline
Light Poster

Re: Game Engine

  #37  
Nov 10th, 2007
Well I can say that I have. But then again, I wasn't one of the people supporting Java for game dev. I think it'd be terrible for full blown 3D games. Not to mention slow. Having to translate the bytecode into machine code at runtime. You'd get an ass-wooping of lag every time you did something.
Last edited by maddog39 : Nov 10th, 2007 at 8:06 pm.
Reply With Quote  
Join Date: Oct 2007
Posts: 3
Reputation: VeAr is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
VeAr VeAr is offline Offline
Newbie Poster

Re: Game Engine

  #38  
Nov 11th, 2007
Originally Posted by maddog39 View Post
Not to mention slow. Having to translate the bytecode into machine code at runtime. You'd get an ass-wooping of lag every time you did something.

This is the stereotypical wrong view most people have. Java bytecode is compiled to machine code at load time and optimized at runtime. It means you will have longer loading time, and the performance will be sub-optimal for about 30 sec, until the JVM fully optimizes the code.

It is not the question if todays games are made in C++, they are. The traditional game libraries are for C++, not Java. Using those in Java is possible through JNI, but its another layer of code which needs to be written. The inner loop of the engine can be written in C++ (or ASM if you will) and linked to Java. The Sun JVM has been open-sourced, so it is possible to directly integrate custom C++ code with the JVM. I hope that a more game friendly JVM will emerge from the open source JVM.
Reply With Quote  
Join Date: Nov 2004
Location: Netherlands
Posts: 5,752
Reputation: jwenting is a jewel in the rough jwenting is a jewel in the rough jwenting is a jewel in the rough jwenting is a jewel in the rough 
Rep Power: 19
Solved Threads: 200
Colleague
jwenting's Avatar
jwenting jwenting is offline Offline
duckman

Re: Game Engine

  #39  
Nov 12th, 2007
The anti-Java attitude of the C++ "fanboyz" is highly predictable. As are the utterly flawed arguments they keep repeating again and again to "prove" that "Java is slow".
Java WAS slow, back in 1999 and before. It no longer is.
We run realtime systems in Java, systems were seconds can mean loosing or making millions, systems that according to the "Java is slow" "wisdom" could never be built in Java, and not at all using EJBs. We've done it, it works, and it screams (if the database and network can keep up, sometimes they can't).
It's fast enough in fact that we had to artificially restrict the flow of data in order to prevent overloading our customers' systems.

It may not be a 3D game, but it's mission critical and realtime. And they told us it couldn't be done because it was going to be Java...
There are similar stories all over the world.

What's hurting Java for game development is mainly the lack of easy to use libraries like the ones that most game studios have had at hand for C++ for a decade or more.
Performance is used just as an excuse, "measured" by people with no practical experience in Java using deliberately skewed "benchmarks" created by people like them who had a preconceived conclusion ("Java is slow") in mind when they set out.
Run those against old JVMs (based on the also flawed preconception that noone has anything newer than 1.1 installed on their systems), and the results are predictable.

But you're essentially comparing the speed of a BASIC implementation of something running on an XT and comparing it with a C implementation of the same thing running on a 486.
As people are clearly allowed to attack me but I'm not allowed to defend myself, I no longer post to this site.
Reply With Quote  
Join Date: Aug 2007
Posts: 2
Reputation: bnastic is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
bnastic bnastic is offline Offline
Newbie Poster

Re: Game Engine

  #40  
Nov 12th, 2007
^ No, all that simply does NOT apply to games. Having servers that scale does not translate to games. I've been working on games for 7 years now and I am also well aware what Java can (and can not) do.

Java CAN work nicely for MMOs (actually, it's probably the best bet for server-side), but CAN NOT handle low-level cpu-intensive systems on todays gaming hardware (including PowerPC in every console today, a cpu without ANY of the tricks JVM could use). Here I'm referring to AAA titles with cutting edge physics/rendering/AI. Java could probably handle games with lower requirements, though.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb Game Development Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the Game Development Forum

All times are GMT -4. The time now is 7:04 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC