(February 2025) Monthly WIP Screenshot Thread

Flying snakes. Got get 'em.

Pure Heat
Buy It Now!

9 Likes

I’ve recently added a new debug feature to the engine’s shaders which should be helpful for debugging issues with materials.

It can often be a guessing game trying to determine what is wrong when a material isn’t rendering as expected after importing a model, but now you can set a uniform on your materials to visualize each individual texture/layer.

Here’s a few screenshots from the same spot in one of my scenes showing the new capability



This debug view of the normalMaps revealed that norrmal maps are not working for my mushroom models, as indicated by a black render. So now I know I probably need to generate tangents or check my normal maps for this model.

You may have seen similar capabilities in other model viewer web apps that let you inspect a model’s material, so this isn’t anything particularly new or special. But now you will be able to inspect your materials like this in jme too.

17 Likes

Nice work!

Have you ever considered adding geometric grass? I think it may make your scene seem more alive, especially since you’re using a grass ground texture.

1 Like

Yes that is in my plans, but I’ve been procrastinating on adding grass for a long time now. It feels like I managed to develop some type of mental block that stops my from doing this anytime I think about it :sweat_smile:

I have done some experimenting generating grass in the past. But I was still fairly new to the engine at the time and I ended up removing grass from my scenes because I thought it was causing a low framerate

I do have one screenshot of some grass in one of my first scenes I made with jme a long time ago:

Now, in hindsight, I’ve realized most of my FPS issues were actually a result of little mistakes (like misuse of filters, updating float uniforms every frame, not using mipMaps, etc etc).

I can only imagine what mistakes I was making to cause a simple scene like that to render at 33fps in that screenshot, meanwhile my current huge scenes are all over 120 fps even with shadows on.

But when I was new, I made the mistake of adding too many extra things like grass and filters to my scene at the same time (whereas i should’ve spent a week or month adding and testing each on its own), and I managed to scare myself away from all of these features for quite a long time as a result.

5 Likes

The big rocky boi is back. It’s the danger zone.

7 Likes

Hey. I’ve made a small plugin to enable ai completion similar to copilot, but within the limitations of netbeans. By calling up the completion hotkey (ctrl+space) it will take some of the context and send it to an open ai compatible api. It’ll then appear at the top of the completion options.

In the example I’m using a local llama.cpp server with Qwen2.5 Coder 1.5b, but you could of course use a cloud ai provider for more intelligence.

ai_completion

Now comes the boring part of making settings for it. Then I’ll post it to github, so that the 10 or so people still using Netbeans can benefit from it.

My hope is to get some more productivity when developing the SDK, and maybe for my other projects as well.

Edit: I should also mention that the plugin itself was coded with chatgpt as a pair programmer. It’s quite good for obscure frameworks, including jmonkeyengine.

Edit2: GitHub - neph1/AiCodeCompletion: AiCodeCompletion plugin for Netbeans IDE

10 Likes

I’ve uploaded a version of Crossy Roads Arcade version, anyone can download it and check it out. I would like to see if anyone else finds any issues with the game.

It supports multiple displays using jme 3.7. by default I have it set to display 0, non full screen. You can change it in the configuration window and change it to full screen and then select the monitor you wish. I have had no problems with my computer using LWJGL3 multiple screen support.

I have been using it for a long time in my Arcade Room that I have in the house. It is loaded on one of the machines and it is a big hit with everyone, basically because it is a simple relaxing game for quick games. We found that it becomes this objection to beat the other person high score and out of all the arcade machines, the crossy roads machine gets the most use.

This was the first game I wrote for JME, so it not the best written into the JME style that it should be, I used it for learning JME while writing my large game “Alternate Reality The Remake”.

If you check it out, please let me know if you like it or have issues with it.

9 Likes

Nice work, kind of addictive and fun. I liked it – although I think sometimes that stupid chicken jumps on the wrong diagonal! :laughing:

What do you mean on the wrong angle? Since there is no movement, the game randomly picks jumping left or right when needed, it will prevent you jumping off the screen when you get to the edge.

There is a few bugs, I’ve died and it came up with a water splash when you didn’t die from that.

Don’t get me wrong, I’m not reporting a bug. I noticed that the diagonal movement is random, the thing is that sometimes I expected to jump diagonally to the left but the chicken would jump to the right, and vice versa. It’s fun because it’s random, and it makes it feel like the chicken can make its own decisions.

1 Like

Hi @kevinba99

It’s a great project!

If you check it out, please let me know if you like it or have issues with it.

When running with default settings, the presented scene was very strange (like it had a bug), changing to a different resolution (window size) fixed it; I’m not sure if it’s because of the full screen.

[ NOTE ]
By the way, I’m using Wayland and a single monitor.

I think I’m getting too good at this. :joy:

4 Likes

Working on the UI for the Domino Simulator. Bought the UI designs and started working on the implementation. I also added the customization menu where players can set the table and tiles they will use when playing in wither single player or online.

For the customization I am loading the assets on another thread to avoid some freezing

4 Likes

I’m always looking for good vendors. Where did you buy the UI assets? And are you using Lemur UI or some other UI for JMonkey?

1 Like

For UI assets I have 2 sources:

There is also itch.io. but you need to do a better search for what you want. I have not used Unreal or Fab at all, so I cannot say if it’s good or not. I do sometimes get good deals on Humble Bundle, though.

I am using Lemur UI. It’s a lot better than Nifty for me. While for some reason I cannot use groovy for the style, I learned to define the styling in Java code and became easier over time. I also like how I can code my own custom effects for my buttons (re-size/re-texture/change colors) and I can use its tween system for custom animations or animate any non-UI spatial.

2 Likes

I was checking for 3dexport.com for UI assets, but your sources are way better.

I might need some pointers from you for Lemur. I use Lemur as well. But I have no idea how to customize it. So I’m using the basics for now.

If I find great UI assets I might try to incorporate it to Lemur to move away from the Default style.

1 Like

There is also Kenney. A free asset repository, usually for retro styles

Sure: I’ll be glad to help :slight_smile:

2 Likes

What resolution did you change it? Can you send me your .pref file?

What resolution did you change it?

I changed to a resolution of 500x800 (window size)

Can you send me your .pref file?

...
SettingsDialogImage(string)=/com/jme3/app/Monkey.png
CenterWindow(bool)=true
volume(float)=10.0
Frequency(int)=60
VSync(bool)=true
Height(int)=1080
dayNight(bool)=false
OpenCL(bool)=false
WindowYPosition(int)=140
highScore(int)=141
Samples(int)=0
Resizable(bool)=false
BitsPerPixel(int)=24
WindowXPosition(int)=710
Renderer(string)=LWJGL-OpenGL33
UseInput(bool)=true
posY(int)=140
GammaCorrection(bool)=false
Fullscreen(bool)=false
WindowWidth(int)=500
SwapBuffers(bool)=true
FrameRate(int)=-1
DisableJoysticks(bool)=true
DepthBits(int)=24
Display(int)=0
ratio(float)=0.0
UseRetinaFrameBuffer(bool)=false
AudioRenderer(string)=LWJGL
Width(int)=800
posX(int)=710
Title(string)=Crossy Roads
StencilBits(int)=0
MinHeight(int)=0
OpenCLPlatformChooser(string)=com.jme3.opencl.DefaultPlatformChooser
MinWidth(int)=0
WindowHeight(int)=800

I will check it out with these settings.