Most graphically polished (HD)3D games developed in Java?

I’m always on edge, wondering which direction I should take my project that I want to become serious. I have almost a year of planning put into it; but I honestly just don’t know what I want to create it with. Java is by far my favorite language, and I know it far better than any other language out there, but I also still have heaps to learn. Sometimes I stumble on common logic way more than I should, but it’s usually because I’m over-thinking things and making everything super complicated.

Currently I’m staring at Java and Unity3D for a multiplayer game; Either way I’m still going to use my server that’s written in Java to handle the multiplayer, but I just can’t decide on which direction to go.

Unity3D has a ridiculously large and active community, and people that are wanting to get started with game development all flock to it; This brings in a large amount of great talent for things such as art, level design etc. The drawbacks with Java is that I’d have to create my own level editors, etc… which isn’t a problem, definitely more time consuming but not a problem.

My main concern is my lack of knowledge in the rendering/graphics field- I have a friend that uses jPCT like stated before and he’s written me a lovely example with everything I really need to get started, shading, camera snapping, movement, animations, coliision, etc; However even after rewriting it I don’t understand the background behind it. There’s a few tutorials I am thinking about following that are around 25-30 hours long where people create full 3D games using LWJGL as well, I believe this may give me some good knowledge.


What are the most graphically polished games that you’ve seen in Java? It’s hard to keep up with what the kids call “pretty” these days, and while I don’t need anything that’s off-the-wall high definition I would surely love to see some work that doesn’t make me feel like I’m wasting my time; I know that art has a lot to do with the definition of display, however I’ve read (note: read) that when messing with Java games (Especially in OGL) that the code behind it makes a huge difference to the quality as-well.

This is a little hard to answer because most people don’t advertise the fact that they use Java. Minecraft is the obvious go-to answer.

Java has JOGL and LWJGL which are just OpenGL wrappers, so anything you can do in OpenGL, you can do with Java. Jumping into that can be a bit daunting though, because 3D math is just sorta gross (imho). But you’ll have to do that math no matter what flavor of OpenGL you use.

Unity is nice because it takes away a lot of that programming, which I guess is awesome if that’s what you’re looking for.

I’ve never heard of jPCT, but you might also want to look into libGDX: http://libgdx.badlogicgames.com/

Edit: You might also want to look into jMonkeyEngine: http://jmonkeyengine.org/

The following are some really big and really beautiful games made in Java:

Also, if Java is your favorite language, I’d say go with that. It’s always hard to keep motivation to keep going on a project, but if you are programming it in a language you know well and enjoy programming in, then you 1) can focus on game development, instead of learning a language and 2) you will have less of a chance to get unmotivated.

JME is gross, perhaps that’s just my opinion, but everytime I’ve even attempted to use it, I lost my will to program for a week.

Minecraft is NOT the go-to option in my opinion, it’s just a bunch of blocks with some… meh textures.

I can’t believe I frogot that Runescape was written in Java, considering when I first started taking programming seriously I was working on Runescape emulators.

Why would language have any effect on quality of graphics?
(Aside from the certain threshold of performance and features required to do interactive rendering, which virtually all candidate languages would have)

But to answer your specific question, here is a thread of answers: http://www.java-gaming.org/topics/best-lwjgl-game-graphically/32402/view.html
(There are other threads as well)

Fair enough. If you’re more specific about what you’re looking for, maybe we can give you better answers.

Also consider the fact that most Android apps and games are written in Java.

Exactly. This has far more to do with artists than it does programming languages. I personally think that most Unity games are ugly, but that’s just my opinion.

The bottom line is that this is going to depend much more on your art ability (or your ability to hire an artist) than it will on which language or framework you choose.

But if you’re just looking for good-looking Java games, you should also check out the featured board: http://www.java-gaming.org/boards/featured-games/60/view.html

Also totally forgot about Spiral Knights, which I remember from somewhere… I think it was/is free on Steam. So you could probably download it and see.

http://www.spiralknights.com/

Editing in more as I find them:

WURM looks great.

It most definitely is your opinion. JME has an absurd number of features, none of which are forced upon you - it is quick and easy to setup a 3d scene to your liking. Purely out of curiosity, what didn’t you like?

As far as polished graphics go, I honestly havn’t seen much in Java - for obvious reasons. This is currently my most graphical game, again in JME

NOTE: FPS is set to 62 by me, not running at full speed.
If you want to see the fullscreen screenshots,


Java is a neat language for mid to low level graphics coding , it simply isnt powerful enough and developed enough to handle the extreme intensity and expectations of modern day graphics without a large group of extremely talented coders cough JGO cough , thats why most games are written in native languages , comparing games made in java to other games is difficult because the people who program in those languages have different expected outcomes from each . From what you will see though a lot of large scale java games are fairly rectangular and linear in look , well apart from that beautiful game made by one of the members here , Hardland . Still it’s an extremely dynamic and efficient language on par with that of others such as c# and c++ in some areas even exceeding in others.

What I will say though is it almost seamlessly integrates with opengl and other libraries with the syntax being clear and mostly handled internally making it a very safe choice with little effort required to stop memory leaks as such.

Gimme a rendering engine roughly equivalent to Unity 4.5 and I’ll make you a game you’ll all poo yourselves over.

£10,000 prize to the first person to make such an engine for me :wink: Must be able to import OpenGEX format models/animations.

Cas :slight_smile:

Challenge accepted.

I was actually being serious. And exploitative of course. Dan! Where are you.

Cas :slight_smile:

I’ve heard that this has less to do with Java’s (modern-day) performance and more to do with the availability of gaming frameworks and engines.

Most frameworks and engines are written for C or C++, before Java was even really a thing. But even though Java has caught up (or surpassed) C++ performance, we have decades worth of engine development in C++, compared to the handful of engines in Java. That’s why most “real” games are still developed in native languages.

Also, we’re comparing “games made by 1 or 2 people in Java” to “games made by entire paid professional teams in C++” so it might get a little more unfair to compare them.

IIRC Hardland isn’t written in Java but a C++ engine and DirectX.

Good luck with that, Unity3d is developed by a company with 500+ employees and been in development for over 10 years to get to version 4.5 :slight_smile:

Me too. However, I’ll most likely fail.

Fortunately 80% of the effort goes into the analysis and design of a system… and someone’s already figured all that out, if you get me. Also I have far, far narrower requirements (desktop only, OpenGL3.0+).

Cas :slight_smile:

I think my Army Men game looks decent :slight_smile: