Java Game Development without OpenGL

Hi Monkeys,

I have been learning a lot from this forum. I currently have one question that I can’t get it out of my mind :slight_smile:

“What do you if you created a Java game website, and the users can’t play any of your Java OpenGL games?” Let’s say small children come to your website, and they don’t have much graphical capability.

Jmonkey needs OpenGL always correct? Does any of you know any Java game framework that does not use OpenGL?
Does Jmonkey team plan to support or build any library that would not use so much graphic hardware in the near future?

Thank you so much.

Yes. Since it’s an OpenGL based game engine.

Probably… but you may not hear much about it on a 3D game engine forum. Not OpenGl means not 3D. So probably look at 2D game engine forums.

Nope. We also don’t plan to write relational database software or cloud databases or operating systems or spreadsheet apps or cash register apps… etc…

JME is a 3D game engine. 3D = OpenGL in this case. 3D also means you probably need to have a GPU from the last 10 years or so.

2 Likes

Considering that JME can be used to make games on android just fine I see no reason why you wouldn’t be able to make games for low end PC’s just fine with it.

Just stay away from super complex models and thing among those nature and if your target audience are small kids not having super detailed, overly realistic 3d models is probably also a good thing.

Yes, openGL is 3D and thus it takes more resources than a 2D engine would but that doesn’t mean you can’t make games for low end hardware with it.

Yeah i mean if you look at the likes of mario where the footprint was puny and re-used textures (grass and clouds, etc) were one of a virtual gameful of tricks, you can do some amazing things. But that takes some serious know-how on any engine. Lightweight games are really hard. Really hard.

I’m so disappointed right now :frowning:

2 Likes

maybe in 3.3… wasn’t it the plan ? :wink:

jMonkey → monkey → throw poo → spread shit → spreadsheet.
QED.

11 Likes

Go to http://java-gaming.org/
Maybe there you’ll find something for you.

Note: On Android it’s still openGL and some mobiles have a more powerful graphic chip than you might assume.
Do you know about what computers we are talking? I mean the computer from the ~2000s Era budget crap thing supports openGL, the PC I bought 2008 even has 1GB of VRAM and Supports openGL 3.3 if not 4.

Software Rendering requires a potent CPU and you may say bye-bye to 3D. So it depends on your definition, nearly any computer which has a GPU Supports openGL, only those pre-Core-i Office Computers don’t because they don’t have a GPU, but even each new Core-i3 has a GPU built-in.

So where does that information come from that they don’t support openGL?
http://store.steampowered.com/hwsurvey/openGL/ that link used to show openGL Versions, it doesn’t anymore, however you can see that already 82% of the Users have DX12 support, which is like Vulcan, so they also have the latest openGL Support

I keep thinking about WebGL approach, which does not have hardware minimum requirement. Java also runs nearly anywhere, and I thought JMonkey might have similar plan in the near future, so I decided to ask.

Thank you.

That is nonsense… you have the exact same hardware limitations with webgl, and a lot less features than in opengl.

Webgl is opengl for internet browsers. So basically your only option to use it is to use javascript. And javascript is not java despite the name similarity. Also don’t believe you’ll have less hardware compatibility issues with webgl… and on top of that you’ll also have browser compatibility issues…

What you seem to look for is flash… unfortunately it’s dead.

1 Like

unfortunately? I’d say ‘at last’. :slight_smile:

2 Likes

Note: there are alternatives to flash these days that use HTML5 and/or javascript, etc… but yes, that’s the kind of thing he’s looking for.

I remember stuff like:
http://flex.apache.org/

…and there may have been something else.

Anyway, anything ending in “GL” is likely going to be OpenGL based.

For my day job I’m writing a renderer that runs on WebGL 2.0 via Emscripten’s automatic translation from OpenGL ES 3.0 to WebGL 2.0. WebGL is impressive for a browser, but it’s got significant overhead compared to raw OpenGL. State changes are quite expensive and had a very noticeable impact on our renderer’s performance.

@sethanath, JS and web tech are doing better these days than they ever have before, but… they’re still a mess. Your only options for development for WebGL are (a) JavaScript (nasty!), (b) Typescript (better, but inherits plenty of nastiness from JavaScript and isn’t nearly as nice as Java), or (c) write in C/C++ and compile to the new WASM format via Emscripten (good luck debugging - all you got right now is sticking prints all over the place until you get lucky and find the problem. Plus, C/C++ is a pain to develop in.). Browsers right now are making the mistake of trying to be everything to everyone. It’s the old “If you try to please everybody, you’ll end up pleasing nobody” problem. The move towards standardizing everything should improve the works-on-one-browser-but-not-the-next mess we have now, but JS and web tech are trying to be the universal panacea to all development problems, and neither one is at all well suited for it. Web tech is good for making websites, not for making 3D games that can rival their desktop/mobile peers (or most other traditionally desktop-only applications). JS doesn’t even have a standard library, and npm is a mess. I have yet to find any other language/ecosystem that’s nearly as painless to develop in as Java & the JVM. In addition to the language itself, there is a plethora of outstanding libraries that, in my experience, no other ecosystem can come close to approaching in terms of features, code quality, etc.

As far as your concern about relying on OpenGL… forget it. Practically everything has OpenGL these days, and every platform you’d consider releasing a game on certainly does. jME depends on OpenGL 2.0, which is ancient history. I’m not sure of exact numbers, but I’d bet good money that a huge portion of machines in use today support OpenGL 3.0 or even OpenGL 4.0+ - both of those are fairly old news in the OpenGL spec history. If a device is significant enough for you to consider supporting it for publishing games, I 100% guarantee you that it has OpenGL support and probably support for much newer OpenGL versions and features than jME needs (even the Raspberry Pi has OpenGL support, and it’s hardly a big target for game publishing).

2 Likes

Thank you so much for the information :slight_smile:

No problem. Good luck!

Actually… I think that even java swing uses 3d acceleration since 10 years or so. Even if you restrict yourself to 2d only, it might be surprisingly difficult to avoid opengl altogether.

1 Like

I got it. Thank you so much for your time.