less talk more games guyes… Hows that for a motto
[quote]especially considering I spent about 99% of my time trying to track down frigging memory/pointer problems
[/quote]
There’s a standard response to this from C/C++ developers. Namely: “If you have pointer problems it means you are a LAm3R because you haven’t spent 3 months developing an Ub3r-3lit3 pointer-management system that would completely prevent any more pointer errors ever.” Or something along those lines.
Oh, and using a language with bounds checking means you are gay, obviously. And probably drive a Clio. :
I’m horribly horribly scared after doing 'bout a year of C++ / C / MFC which produces some of the most obscure bugs known to man…
I often don’t even get as far as the bugs… often I’m just totally thwarted by outrageously opaque compiler errors, usually when any proprietry wierdness from Microsoft is involved like COM and GUIDs.
Cas
If you use C++ templates the errors out of the compiler are extremely cryptic. In fact I found a Perl script on the net that would actually convert VC++ error messages into something meaningful. Of course then you have to go through the trouble of installing Perl on your Windows box…
[quote]I’m horribly horribly scared after doing 'bout a year of C++ / C / MFC which produces some of the most obscure bugs known to man…
[/quote]
Writing Microsoft ISAPI filters I seem to recall ranked up there in the top 10 obscure bugs produced of all time.
That and the VB app that required 3 compiles to work correctly.
One reason C++ is more popular for games is probably largely due to most games programmers use C++ all the time, so its cheaper to use it than train staff in another language (and all its foibles).
Having used Java for nearly a year now to write games, I still prefer C++ for 4 reasons:
- Pointers (& most especially pointers to pointers - yum!), I just love em, & no I don’t use any poxy pointer management - I just get them right
- Being able to cast pointer types - hence read ints as floats, cast void pointers to derived object types, etc.
- Inline assembler
- It runs on the target machine without requiring extra installs (& Microsoft JVM 1.1 sucks)
These are my own opinions, but feel free to argue against them as though they were facts
- Dom
PS: Note that execution speed is not one of my reasons. When your having to target min. spec. machines of PII 400 and a shonky video card, 90% of players will have better so will be running full frame rate in either Java or C++.
Well you can at least do #2 with ByteBuffers
But quite frankly after havng programmed in C/C++ for many years(and still now) I find nothing ‘yummy’ about C pointers. There are a few rare occasions where you can do something reasonable clever with them. But I don’t miss them at all.
Inline assembler? I doubt this is needed for any game project. I have used it in only a few very specific cases of DSP code where coding directly with MMX/SSE2 was the “right” way to do things with reasonable efficiency. E.g. low pass filter & image scaling routine for realtime video encoder and a realtime audio sample rate converter. OF course if you were doing a codec (JPEG, MPEG, whatever) then coding directly with vector instructions is the only option for reasonable performance… I wish I could convince the Java guys that they NEED to do this for their JPEG code in the JRE.
Look these kinds of discussions are endless and fruitless.
The general parole is
“Java is slow and useless for games”
I hear that constantly even at a instititute of “higher learning”
Only way we can convince people of othervise, is to make great games and great programs. Sitting around and talking each others ears off in a JAVA forum sponsored by SUN. Will never convince anyone.
So thats why I say
“Less talk more games”
Make those games that rock in Java and you will have strong arguments. The rest is just babble
That’s a laudable aim, but it is NEVER going to work on it’s own. Education - especially in the face of large vested interests and FUD - is all about a multi-pronged attack (preferably co-ordinated to maximum effect).
Hence, the GTG are (from what little they tell us):
- trying to get Sony to support a JVM on playstation
- trying to persuade large client-middleware companies (like Gamespy etc) to get more involved (I would imagine they’re hoping ultimately to get them to properly support and provide java-versions of their libs)
- running a competition to find good java games
Unfortunately, they fail in several ways too. For instance:
- Jeff has now been tantalising us (for more than a year, no?) with a document that has actual facts and figures on how much dev time can be saved using java on a games project. It is sheer insanity that he “never has the time to photocopy this or put it up on a website” (paraphrase) and, IMHO, whoever is letting that be so low on his priorities deserves a slapping for sheer idiocy
- they sporadically (definitely not always) try to work against games developers and middleware providers instead of with them, citing their need to “make money”. Despite ignoring several obvious ways they could work with developers AND make money. OK, so I guess that really they’re being cunning and trying to get more in tune with the games industry by adoptiong NIH as their mantra ;D, so that they can speak the same language as games-industry execs
- Whoever the heck is in charge of press relations needs to be replaced. The majority of the press still have no idea the GTG even exists, and I’m still seeing press stories in major (6-digit readership) games and IT industry mags on java games issues where the GTG hasn’t even been consulted. This is a year after they were founded!
Maybe for you. There are a lot of smart people in the mainstream games industry, and I’ve convinced more than a few that java is viable simply by explaining why it’s as fast or faster than C++. These people are not stupid (at least, not all of them :P) they’re just ignorant; many have written GC’s and similar themselves, more than once - just telling them which algorithms JVM’s use these days for certain operations is enough to get them to sit up and say “Ah, well in that case, this is actually sounding worth using…”.
Then go find a better institute although I sympathise; many academics have their heads rammed so far up their backsides it’s hard for them to hear anything in the outside world, and they are often IME years if not decades behind the state of the art :(. That’s not necessarily a bad thing - if all you want them for is specialisation, great, but at teaching institutes its a frequent and major problem, since they often teach undergrads to be misinformed idiots :(.
First of all I have no idea whats going on with this board and Sun. So I wont comment that.
Convincing sony to support at VM. I bet they will only bow down to one argument and thats money. If the customers demands certain (java) games on their boxes Sony will move. That brings me back to my original "Less talk more games " argument.
Concinving mainstream industry, sure. But I am sure you agree that THIS thread by K.I.L.E.R is a flame thread and wont accomplish anything. Especially looking at the level of argumentation presented at the other board. Also arguments like this is best presented with a good case. What cases do we have. What major succeses have been done in Java yet. Yet again I am back at the motto “less talk more games”.
I also see that you have some, “opinions” about institutes of higher learning. Well I was refreering to many of my fellow students who mostely share the opinion that java is not good enough. I spend hour debating this in our cafeteria.
The professors on the other hand, knows (and have proven) that a VM can in theory run as fast as native code, and they continue to advocate that to the students. Also a major part of the institue is researching in VM optimizations.
I suppose VM has gotten the bad reputation due to it mostely being used in applets and the fact that the commercial VM has been, and are far from the theoretical performance.
If you continue to ignore the fact that great games are only one small part of the process of convincing people then you are no smarter than the C++ programmers who believe Java is “too slow”: you are living in a world where you believe things are how you think they are irrespective of the evidence around you :(.
k
I dont think we should debate any more about this, or we begin to be personal and resort to name calling.
Lets agree to disagree
I think great games are a major part of Java Advocating you think its a small part.
Thats it
Up until the late 80’s, the ONLY choice for commercial games was Assembler. Then Dungeon Master was written (1987?) the first commercial game written in C (I could be wrong on the exact title, but Im fairly sure it was DM) We then had around 10 years of games in C, until C++ started showing its benefits and now we all use that.
Maybe overly simplistic, but to a large extent the people you have to convince are programmers & technical directors (stubborn bunch, the lot of em :P), and the first reaction will always be ‘Show me’. A commercial game written entirely in Java will open a lot more doors than any amount of publicity. Renderware gained its popularity largely through 1 (big) game - GTA III.
Its the work of the marketing to get the first big gig - from there, a visibly succesful title will sway more industry hearts than any amount of press releases, etc.
- Dom
Names may have been changed to either protect the innocent or because I’ve forgotten them
[quote]A commercial game written entirely in Java will open a lot more doors than any amount of publicity. Renderware gained its popularity largely through 1 (big) game - GTA III.
[/quote]
A great example - Renderware was HUGE way before GTA3 was on the drawing board.
Just because games players hadn’t necessarily heard of them didn’t mean much, since they don’t sell games.
Off the top of my head, Criterion already had 200 employees by the time GTA3 launched…they were doing extremely well because they had a great pitch: we save you 50% development time and you aren’t tied to one platform - when your publisher says “we’ve changed our minds, this will now be released on Xbox instead of PS1” instead of going bankrupt you shrug and make a few small changes (that’s a synopsis of their sales talk, and I make NO claim it’s accurate - they have good sales people ;)).
(FYI Criterion is the company that develops RenderWare; historically, they don’t do anything else, so Criterion == RW)
They were on the way to being big, but were not anywhere near their position now. The first ‘eye opener’ was Pro Evolution Soccer (which I don’t expect many Americans would be interested in), but it wasn’t until GTA III came out that the big studios took it seriously.
I would guess that prior to this, some games that didn’t do so well may have layed some of the blame in post-mortem on the technology (always tempting!), and this increases distrust. With the runaway success of GTA III, the publishers then take the attitude of ‘well if they could do it…’ etc. as the technology has been ‘proved’ in the marketplace.
Whether the players have heard of it means nothing. The big publishers want to see a million-selling game written with the technology before they will take it seriously - i.e. signing games using it - hence GTA III as the example. Before GTA III we had only a couple of titles using Renderware - both in external studios. A year past GTA III coming out and nearly all new projects were considering Renderware during prototyping.
However - I have to stand in the middle on this debate. A great game only works as the final piece in the puzzle. With maybe 1 in 100 games making it really big, your gonna have to get up to 100 games into the market to achieve this - and thats the task of marketing & raising awareness.
- Dom
FYI: Criterion DO write games: Airblade to name but one.
[quote]They were on the way to being big, but were not anywhere near their position now.
[/quote]
They were doing pretty damned well at trade shows during 2001, when some of the ex-Hybrid guys cornered me to show off their DPVS system (that had recently been swallowed by RW).
My understanding was that that had more to do with the timing of the re-explosion of the console market - when Sega died, and Microsoft were barely a drop in the ocean, and PS2 hadn’t hit it’s prime, the demand for cross-platform 3d engines was not so great. Certainly, by 2001 RW already had more than one hundred of the biggest names in the games industry as licensees - I know because we talked to them about selling Grex Games to them, and so we did our research on who their customers were back then.
Yeah, irrespective of my pedantic quibbling over CS/RW ;), that’s my point: that it’s not merely about writing a great game. Much, much more is needed.
[/quote]
I stand corrected.
[quote]Only way we can convince people of othervise, is to make great games and great programs. Sitting around and talking each others ears off in a JAVA forum sponsored by SUN. Will never convince anyone.
[/quote]
Frankly, that’s a bit of a naive comment. I don’t think anyone here is just ‘sitting around’. Many of us are working in the biz (games or Java) and this forum is (at least in my opinion) more than just a place to discuss Java games dev. It’s a place for like minded people to discuss things of interest to them, let off steam and so on.
One wonders why you’re sitting here talking when you should be out making ‘great games’?