Jump to content
  • Advertisement
Sign in to follow this  
itguru80

[java] Java or C# for 3D game dev??

This topic is 4980 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I'm a Java/C# programmer and I'm starting a new 3D project, and I'm wondering what technology to use? I'm probably more familiar with Java, but my C# skills are not too bad either. Anyway I've been researching the possibilities. I would like to avoid C++ at all costs, so I am looking for a 3D Engine that supports Java or C#, and it would be great if it were open-source ;-) I was looking at using Irrlicht. There's a Java binding for that called bindenlicht and another called jirr, although they are not up to date with the latest release of Irrlicht (0.8). There's also a .NET wrapper with 0.8 (although it's only partially complete). I have been reading a bit about Java 3D on the net and wonder if it could be the way to go? What I want is an easy-to-use API that gets me up and going with the minimal fuss. I am not a games programmer and so therefore I want something that is not too low-level, as I simply don't have the time!!! Can anyone give me some tips and advice on what technology to use, and what are the advantages of using Java instead of C# .NET???? Thanks

Share this post


Link to post
Share on other sites
Advertisement
Well, I can't say anything about C# since I don't use that language, but I have a project in java, using the java 3D game SDK, described here.

Other options you might have are the OpenGL bindings, LWJGL and JOGL.

There's also the Java3D SDK, it is a scenegraph API that could match your need for high level stuff. But there are some annoying bugs with it... and a pretty bad sound support.

There are quite a number of engines and renderers for Java3D, try a small search at google for it.

Forgive my poor english
Son of Cain

[edit: lwjgl link fixed]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
dont even think about java3d, it's [rubbish].

Try Xith3D or jME, those are the main ones.

Others here:

http://javagamesfactory.com/tech.html

Share this post


Link to post
Share on other sites
hands down, use C# with Managed DirectX. The actual DirectX code is just as fast as the unmanaged, C++ version, but with very coherent interface. The C# code is very easy and actually quite nice. It has features that Java completely lacks that I find myself using to great extent (delegates, for example, go to great use in many of my components)

Share this post


Link to post
Share on other sites
If you go the C# route you can use both DirectX and OpenGL(Through TAO.Net). You can also use SDL.Net (Not SDL_Net!).

I personally am heavily biased towards C# just because I feel like I've been led on wild goose chases by Java often enough (You want to play a sound? First do this, then this, then this, don't forget this, la la la, now hit play. In .Net 2.0, you make a Sound Player and pass it a path to a sound, and presto!).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Ive been using Java3D since its first release. Its not rubish. its good. It all depends on what youre after. Java3D its excellent for a quick easy use 3D engine. I wouldnt however advise full-on game development with it unless you really know its strengths and limitations. I myself am planning to move into a more game orientated field and am researching into other APIs.

Share this post


Link to post
Share on other sites
Chances are you can accomplish your goals on either platform. Both have their own strengths and short-comings. If you don't mind having your game run on Windows only, I'd probably go with C#/Managed DirectX. If you don't mind using a 3D API from a 3rd party and cross platform compatibility is something you'd like to have, go with Java. One other thing to concider is the languages themselves. C# has some features that make it more flexible (but also potentially more confusing) than Java. .NET version 2 also features true generics (not syntactic sugar like Java's, but real generic types). These features generally don't make C# any more capable than Java, but when used properly they can speed up development a lot. Generics, along with user-defined value types and delegates are the main features that I would be looking at. If you anticipate needing these features you may want to go with C#. On the other hand, Java's runtime doesn't require quite as powerful a system as the CLR, so if that's a concern you might find Java a better choice. In the end, you'll have to make the decision.

Share this post


Link to post
Share on other sites
Thanks for all the info.

From what I've seen everyone has their own opinion/preference and there is no "right" answer.

I think I'm leaning slightly toward Java because I can have an Applet version of my game that means I can reuse the same code as the client version. That is a big advantage!!

Any recommendations on Java 3D engines (apart from Java3D?)

Thx

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!