Graphic Capacities of jME?

I am new to jME and game programming in general and I am just curious about what kind of quality level you can achieve with the jME and what techniques are required for that?

Something similiar to this:

1 Like

For such graphics you just need the models and shaders.

Then you will also want to use techniques that optimize the rendering. Such as, using Lod control for distant trees, or swapping distant trees with billboards.

For clouds there are various techniques that can be used. Either render a picture of a cloud or you can do the more complex volumetric cloud rendering.

2 Likes

It depends mostly on your models and textures quality.

Without skilled graphic designers and proper software you will make a crap even if you have top AAA game engine.

Here you can see what JME is able to do:

5 Likes

If you have the assets yes you can do something like this in jME.
But the quality of a game mostly depends on the team skills rather than on the engine.

2 Likes

Sorry if this is even more off topic but how to create such assets?

1 Like

You can download and use a free opensource program called Blender for 3d modeling and animating. It’s important to note that you have to do a few more things to export the models so they’re compatible with JME and look good in the engine.

There’s a lot of information about doing so in the tutorials to help you out when the time comes, and you could also find some tutorial videos that show how to model and prepare a JME compatible model.

https://jmonkeyengine.github.io/wiki/jme3/external/blender.html

2 Likes

Sorry to be that guy, but you’re heading into a steep learning curve and time sink if you’re new to game programming (you should at least have a rather strong programming/java background, so good knowledge about OOP, Java Interfaces, floating points (e.g. why equals checks fail pretty often)) AND Art, you have much work to do.

First and Foremost: To achieve any “good” quality, you need a team of multiple people and/or a shitload of money.
Your picture looks like a multiplayer game, if so, that’ll throw you back 1-2 years, since this influences the structure of the game, you handle all kinds of problems like lag and desync.

The only advantage Unity/Unreal have is that you can download everything. Player Models (assets), skies, even Multiplayer is somewhat built in, many premade things like UIs, Post Effects etc. For JME you have to do them your own, get open source libs and/or get the assets from somewhere and convert them.

So if you are completely new, start with something really simple like walking around on a plane surface, jumping etc. Then you could add stuff like doors which open when you are in proximity (there you can make the door animated, so you can teach yourself how to do simple animations in blender) [Note: Usually you would not animate doors unless they perform complex motions].

Anyway it’ll take you multiple years until you have something to be proud of, but if you don’t mind, you’ll enjoy that adventure.

And yeah, try blender tutorials on youtube, but alone the models may take multiple years (and they have their own dependencies like textures. Buy or DIY).

4 Likes

This is what I managed to create after spending 2 months with JME :slight_smile:

image
image

A bit over 2 years later and I am now creating custom shaders that do stuff like this :slight_smile:

Super Nova Reminant

It’s all about how much time you want to put into learning how to make a 3D game.

6 Likes

Hey I saw that supernova reminant on shadertoy a few weeks back! That was you? Man that’s impressive.

2 Likes

These are not finished games and it’s far from being one, but it’s just a few short videos to show you what you can do. (Physically based rendering, etc …)

4 Likes

Thanks for your help, I will start with creating a door now

1 Like

Btw can someone tell me if you can change the code suggestion behaviour? In Eclipse it suggested me “object.setWidth(int)” when I just typed “object.width” in NetBeans it only suggests “object.setWidth(int)” when I type “object.setW”.

1 Like

Are you using Netbeans as in the jME SDK?

I’m very used to Eclipse, so I use gradle, bootmonkey, and jMonkeyBuilder. That combined has the same functionality as the SDK, and you can use it in Eclipse.

However, if it’s your first project you should still go for Netbeans (as you have a 98% chance it builds first try), but I don’t think there’s an option for changing that.

2 Likes

Okay, thanks for your help

I know this isn’t a blender forum but can someone tell me how to smooth out edges / create more vertices in an edge?
My door needs more detail:

Or should one use a normal map for that?

Subdivide your mesh in edit mode or cut the mesh with the function knife.

the Modifier Bevel can help you too (in object mode).

You can also create your door in highpoly and then create a normalmap to use it on a lowpoly version in the game.

The Modifier - Multiresolution is used for this, it allows to work on a highpoly vesion of the model while keeping the lowpoly version. once the baking of normalmap realized, just apply it on the lowpoly version

1 Like

Okay, thanks alot

Is this already too high poly for the low poly mesh? What vertex count should I aim for when creating a door for a game that has of course a lot of other objects rendered in the scene?

First decide whether your platform is PC or mobile. Then you can set an approximate triangle budget for a scene. Eg. 1m tris for PC.
At most how many doors will be visible at once? Then multiply that number with the number of tris of the door model. Let’s say, eg 5 doors.
Your door has 1516 tris x 5 = 7580 tris.
Once you got that. You might decide that you have triangle budget for a good quality door.
However if you would be doing some game with a lot of doors. eg. 1000,
then 1000 x 1516 = 1516000 = 1.516m tris. And that is over 1m, our set budget. (Ofc. you might not need that many doors, but it might apply to different objects such as trees and then forests. In which case we use Lod control and/or billboards for distant objects.)

1 Like

Well… 1500 triangles is fine per se, but it’s a bit of a waste for a door.
Usually you have a high resolution mesh with a lot of polygons, and a low resolution mesh that matches the high res one.
Then you bake the small details into a normal map, so you can render the low resolution mesh giving the illusion it’s as detailed as the high resolution one.
You should look into this process on google. look for “baking normal map from hi res mesh”.

2 Likes