Has any of you thought about going back to C/C++?

[quote] But if I had to guess - I’d consider the havoc stuff to be faster… that’s true. BTW, the Quake engine is faster as well…
[/quote]
I’m not saying that Java3D has to be the fastest API around, just that it has to be fast enough. It is very possible that my particular issue may just be some small thread priority thing, but it could also be an indication of some more serious bug (like what happened in Jacob Marner’s benchmark). Either way, it is a sign of immaturity that the API does not correctly perform basic game tasks without much tweaking (I have done some tweaking, like implementing Switch-culling, removing Link and SharedGroup nodes from the model graphs that are returned by the Xj3D loader and tweaking the world geometry to fit bounds-based collision culling).

Sure, raw OpenGL requires a lot more work to get things up and running, but at least John Carmack has been providing proof for the last few years that OpenGL can be used for top-performance game production. Would you dare go with Java3D in a real commercial game project that requires some amount of performance and that you are responsible for? Are you that confident in that the API can be tuned to perform well enough on the computers of average consumers? Personally I have built two slightly complex applications in Java3D and a number of small demos and sadly I would have to say no, at this time.

Java3D really needs projects that show that the APIs immaturities and initial bumps that most people seem to run into can be worked around and that they do not pose a risk to commercial use of the API. My project contains a lot of typical 3D-game functionality and I hope I can make it work well enough to act as a positive demo of Java3D’s usability as a gaming API.

For a common, mainstream project? No. But I also wouldn’t dare to start with OpenGL neither. I’d buy RenderWare as most companies do.

Actually, I would guess that more companies use Director than Renderware for games. Sure, they’re not making AAA-titles, but their games are still sensitive to performance issues since they have to run on typical office computers rather than on the monster machines of hardcore gamers.

Director? Ouch.

Unlike most, I started in Java, and I am now trying to learn C++. I don’t plan on leaving Java completely, but knowing both would be realy useful skill in the programming industry.

[quote] Has any of you thought about going back to C/C++?
[/quote]
i go back and forth. for instance, i have to write a heap manager in C and some other stuff in VB; it’s up to the client.

I use the language that meet my projects requirements the best. Mostly Java at home, but also C/C++ and VB and even some old nice pascal some time. At work it is most VB and Java.

My choice of Game programing language has changed alot during the years. As for now I use Java, and that is not thanks to the game friendly none existens game apis but mainly because I like the language and large part of the api:s. And with LWJGL you can build a high performence game in Java so I can’t see in a near future that I will move from Java to another language.

[quote]and some other stuff in VB
[/quote]
Ouch.
Currently, at work I have to do a project in VB too. Man, VB is really a foul smelling garbage bin of rotten uglyness that you have to make look cute.

Oh right, we were talking about C ;D
The best thing going for C/C++ for creating games is that there are tons of good game API’s and game engines and such, but other than that I feel it’s rather legacy, error prone and on the long run expensive because of that.
I also believe that the transition to Java would become easier if we would create native bindings to some of those libraries (JRenderWare anyone? ;))

I won’t be going back to C/C++ for a while, particularly because the online C/C++ gaming community is no where near as friendly as the Java community. They insult anyone who has a newbie question. As a result, I gave up on writing games in C++ (after I finished Shmetris, a tetris clone) and moved to Java. I have to say that everyone at java-gaming.org has been very helpful. The community really helps.

I visited renderware.com and am unsure of what exactly it is. Is it a completely new programming language? Is it an IDE? Or a project management software?

Renderware is (last time i checked) a cross-platform rendering API. And when they say cross-platform, then mean ps2, win32 and i think NGC and xbox as well. Its rumoured to be pretty low level, but thats what you get when you have ps2 for your lowest common denominator :stuck_out_tongue:

How much does it cost? I can’t find a price quote anywhere. Or is there a demo version or something? Their site just seems to have a lot of general info on what the program helps with, but not exactly what it does, or how to get it.

I just went to the vertex array thread at LWJGL forum and there is no way I’m coming back. Making portable code with C++ is possible if you have the right wrappers and know what you are doing. Just came here to say hello and suggesting anyone who is thinking about it, do it.

I’ll still hangaround here for some java syntax loving and waiting the day when Sun takes head out of their asshole and gets real.

Also here: http://www.internalmemos.com/memos/memodetails.php?memo_id=1321

I don’t know about you huys but that is pretty lol.

What was it in that thread that scared you off?

Cas :slight_smile:

Theres nothing wierd going on in that thread except my bumbling. I don’t understand? :-*

:frowning: :frowning: :frowning: :frowning: :frowning: ??? ??? ??? ??? ??? ??? ??? >:( >:( >:( >:(

         buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 16.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 16.0f );
        buf.floats.put( 16.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 16.0f );
        buf.floats.put( 0.0f );
        
        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

        buf.floats.put( 0.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 1.0f );
        buf.floats.put( 0.0f );
        buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 0.0f );

buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 1.0f );
buf.floats.put( 1.0f );

buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );

buf.floats.put( 0.0f );
buf.floats.put( 1.0f );

Have you guys ever heard of this thing parsimony? It this really cool ideology developed by continental philosophers of science such as Hume and Locke, further enhanced in 60s by behavioural philosophers such as Skinner.

It says something along the lines:
“Hay dude don’t do it it is not worth it if you can do it simplier ^___^ KEKEKEKEKE”
-John Locke

It is synonym for occam’s razor; it slices, it dices, it makes life simple and easy.

FYI, That memo is dated.

“Sun confirmed the memo’s authenticity, but said that the document is two years old and that the problems it describes have been fixed.”

http://zdnet.com.com/2100-1104-984529.html

The “rereleasing” of it this year in Feb is basically akin to a hoax.

[quote]Also here: http://www.internalmemos.com/memos/memodetails.php?memo_id=1321
[/quote]
I think someone posted the same link here like 1.5 years ago. It’s quite a populare link to people having a dislike towards java for some reason.
While some points are quite real sometimes, like ‘the perception of java being an unstable platform to many customers’, I don’t see the word ‘game’ anywhere in there or anything remotely game related so I don’t know how relevant this is exactly to what I’m doing.

It looks like just another collection of issues to me. Even an issue of ‘disk size’ is mentioned. I mean, really.
My point is, if you just look hard and long enough you’ll always find the things you want to see. If you put them all on a list, things tend to look worse than they really are.

[quote]Making portable code with C++ is possible if you have the right wrappers and know what you are doing.
[/quote]
True, it just takes you a lot longer.

Greetings,
Erik

Exaggerate much?

Hey Captain, take no notice of bedelf’s code, he’s useless ;D :stuck_out_tongue: but he’s going to get better soon :slight_smile: That bit of code could be written in C++ just as daft.

Cas :slight_smile: