(May 2020) Monthly WIP Screenshot Thread

That’s really awesome! Is it open source?

2 Likes

Yes it will be.

It will be a plugin for JmeDevKit that you can also include in your game to load and switch themes.

3 Likes

This is my contribution for May. I decided to give Nuklear gui a try. This node thing is not working at all but it is a nice playground for testing out many features.

You might ask why I would try another gui toolkit since we have this powerful lemur.
Mostly because I want to play with something new, but besides:

  • I like the immediate gui way and the c-style functions for fast prototyping
  • the possibility to draw simple shapes and curves
  • the predefined widgets fit my needs
  • many layouting and styling options
  • I have not worked with lemur yet

So far it turns out to be a valuable option but we will see how this develops.
You know that I got disappointed if the next screenshot is with lemur :wink:

Imgur

5 Likes

When I work with plain LWJGL3 for my Vulkan powered projects, I am mostly confined to Nuklear because thats the only lib LWJGL3 offers for gui. Obviously you can embed Vulkan / OpenGL context in a AWT/SWT window in order to have a gui but that comes with cons that I don’t want to deal with.
Its “lightweight”, not like Lemur as you said.
Though in my jME3 projects, Lemur is way to go, I suggest you still try it at some point :wink:

2 Likes

No screenshot, but just these days upgraded my Dyn4J to the new 4.0.0 branch, that is suppose to do way better performance-wise. (30%-40%)

I’ve also implemented a 2d polygon merger (Clipper) and decomposer (Dyn4j), so im now able to keep the number of static physics object to a minimum

3 Likes

Nothing to show here either, but it’s nice to see all the good stuff that everyone is doing.

Now that I’m taking my project more seriously instead of just a hobby, I had to put it under some reengineering, fixing bugs and improving performance. Some of my classes had to be completely rewritten! :confounded:

In the next few months I will have some pics to show!

4 Likes

Me again,

This time I add a GUI (Thank you Paul Speed for Lemur) so you can choose a Process ID from a List and see the results.

ps: sorry again for the video quality

3 Likes

What does the position visualize? Why do the spheres move?

What does the position visualize? Why do the spheres move?

Spheres are function calls.
If a sphere is near the origin that means that the function is deeper in the call stack, the more away from origin means that the function is called later in the execution runtime.
Also the sphere size means that the function was called more frequently, the size of the spheres started to shrink if the time goes by and there is no call to that function.

Lines is just a way to see which function call other function.

It is supposed that colors of the spheres are different if they are called from other threads, but I couldn’t find a good example to show. Notepad seems to have a few threads.

And finally, spheres move just because I think is a cool effect.

Thanks for asking,

1 Like

Indeed, it looks a bit like breathing.
I was hoping though that you’ve found a metric that behaves in this cyclic way.
Maybe you could tie the animation to the cpu usage or (boost) frequency so it will breathe faster when under load? :slight_smile:

Indeed, it looks a bit like breathing.
I was hoping though that you’ve found a metric that behaves in this cyclic way.
Maybe you could tie the animation to the cpu usage or (boost) frequency so it will breathe faster when under load? :slightly_smiling_face:

Good idea! I will see how can I accomplish that…

Thanks!

Finally got a bit of time to do some JME stuff.

I have managed to cram pretty much everything I need into a single .json file. Fonts, TbtQuadBackgroundComponents, IconComponents… everything. And you can change them all from the GUI and save the changes.

“Technically” you could even send partials to people since everything is just text. Like my font? Here you go. Have a few lines of text. Paste them into your theme. Now you have my font.

You have to define a style for an ElementID in java code if you want it to be editable, but it’s as simple as extending ThemedElement and specifying the attributes. So in the example below the attribute “color” would be set to the value of the field named “color” and so on. You don’t even need getters/setters. The example below is for a Button.

public class ButtonTheme extends ThemedElement {

    private final ColorRGBA color = new ColorRGBA(0.8f, 0.9f, 1.0f, 0.85f);

    // strictly these aren't set in the style, but I want to be able to set them.
    private final ColorRGBA focusColor = ColorRGBA.Green.clone();
    private final ColorRGBA highlightColor = ColorRGBA.Yellow.clone();

    private final TbtQuadBackgroundComponent background = BackgroundComponents.gradient(new ColorRGBA(0.0f, 0.75f, 0.75f, 0.5f));

    private final Insets3f insets = new Insets3f(2, 2, 2, 2);

    // The elementID I want to apply these attributes to...
    public ButtonTheme() {
        super("button");
    }

}

which is saved in json:

"ButtonTheme" : {
      "@class" : "com.jayfella.lemur.theme.ButtonTheme",
      "elementId" : "button",
      "child" : "",
      "color" : {
        "r" : 0.8,
        "g" : 0.9,
        "b" : 1.0,
        "a" : 0.85
      },
      "focusColor" : {
        "r" : 0.0,
        "g" : 1.0,
        "b" : 0.0,
        "a" : 1.0
      },
      "highlightColor" : {
        "r" : 1.0,
        "g" : 1.0,
        "b" : 0.0,
        "a" : 1.0
      },
      "background" : {
        "base64Image" : "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAWRUlEQVR4Xu3b5ZIjyQ4F4H2OZWZmZmbeWWZmZmZmZmZmZnqq2lBFKEM+faSEKnu6d3oidH/caXtcq8+CrOrlusU/y/Sf5eR/Lr744u7SSy/tLrvssu6KK67orrrqqu6aa67prrvuuu6GG27obrrppu7WW2/tbrvttu6OO+7o7rrrru6ee+7p7rvvvu7+++/vHnzwwe7hhx/uHn300e7xxx/vnnjiie7JJ5/snn766e6ZZ57pnnvuue7555/vXnzxxe6ll17qXn755e6VV17pXn311e7111/v3njjje7NN9/s3nrrre7tt9/u3nnnne69997r44MPPujjww8/7D7++OM+Pvnkk+7TTz/tPvvss+7zzz/v44svvui+/PLL7quvvurj66+/7r755pvu22+/7eO7777r4/vvv+9++OGHFD/++GOKn376qfv5559T/PLLL338+uuvffz22299/P777yn++OOP7s8//5yIv/76ayL+/vvvPv75559RQ9/X/lv2c+hnlM8sn1+vR65NrjcBuPDCC10E119/fY/g5ptvHh2BAHjttdcSAgEgIQDefffdHsD777+fACgCC0ARCAAJBKAIFAAimC8A/v33XzfwZxFBKQBFMAfA+eef7yK49tprewQ33njjBII777yzu/vuuxOCBx54oHvooYfmIHjqqadcBFoFEIFWAYbgo48+moNg2lVgDACYuNLk5xDUANDkzwFw7rnnViO4/fbbXQSPPPIIRfDss8+6CARAhKCkFWgVUAQCwCIYWgUWEgD5XMUAzj777ITgggsuWKoIBAAisPOAbQWKAKtASSsorQK5NjALAPjzNvktAOT6JgCcddZZPYJzzjmnO++883oEF1100VJFEA2F3jwwVitgVcADwBAwADkEHgT8GQTAki+ByQ8BnHHGGd2ZZ545MwQyD9QiqJkHcq3AQ1BTBaYBoCai5Efffgm5PrneBOD000+fg0BawqwR5NbDFgS2CtTOA/ofDBFMswqUBCbfAvCSj9/+CQCnnnrqBAJpCbNAwNpBhMDbDHJDIbaCUgS5VhABmAYC1vOj5OO33yZ/AsApp5zSIzjttNN6CEMQRCvi2AjYZsDmgVIEuXlgaBWwCGog5BJfknwJvSa5PgGfAJx00kndySef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",
        "color" : {
          "r" : 0.0,
          "g" : 0.75,
          "b" : 0.75,
          "a" : 0.5
        },
        "margin" : {
          "x" : 1.0,
          "y" : 1.0
        },
        "margin2" : {
          "x" : 126.0,
          "y" : 126.0
        },
        "zOffset" : 1.0,
        "lit" : false,
        "blendMode" : "Alpha"
      },
      "insets" : {
        "top" : 2.0,
        "left" : 2.0,
        "bottom" : 2.0,
        "right" : 2.0
      }
    }

The editor will then find the class automatically, read the fields and apply the style to the elementID you specified. This means your theme can also have custom elements in the theme, too. So things like my window library, menubar library, or something you made yourself can also be themed and distributed with the theme. And if the user doesn’t have that library installed, it’s just ignored.

I had to submit a PR for lemur to get a couple of things working - nothing big, but would be appreciated if you would take a peek @pspeed so I can publish this to git without having to use my own Lemur version as a dependency.

The standard glass theme that comes with lemur comes in at around 97K in size. But that’s with the images and font file included - which is kinda fine I guess. It’s nowhere near a megabyte. I could gzip that - which turns it into around 34K in size. So there are options if size is an issue for some reason.

I guess nothing comes for free. I like the uncompressed version because its just json - really easily editable and easy to inspect. I don’t know if it’s worth sacrificing that for what is amounting to crumbs on the table in terms of file size. And in the end the bulk of it is going to be images. Maybe I’ll support both - raw json for development and gzip for production :man_shrugging:

The hardest part of this project - and something I’m still struggling with - is how to design a theme editor GUI. You can end up with nests of children of children that is really annoying to work with and ruins the whole experience. I guess that will evolve over time.

13 Likes

I think it’s starting to get somewhere near an actual working product. I added a background scene so the theme creator can see what their game will look like in a game environment and moved a few things around. As you can see in the video, you can pretty much create an entire theme pretty easily. The video shows the theme re-loading at the end.

14 Likes

Hello dear monkeys,

long time no see guys, hope you are all doing well :wink:

We had to develop a mobile app as a coursework for univsersity. My choice was to design and develop a Jump 'n Run game using jMonkeyEngine. Look here what I built so far :slight_smile:

The game is called “Suburb Runner” :slight_smile:

Imgur

Imgur

Imgur

All the best
Domenic

17 Likes

@jayfella it looks very cool :slightly_smiling_face:

Hi @Domenic welcome back :grinning:

Nice game

Slowly my gui stabilizes. My first real usecase is a user interface for our AppProfiler. Still a long way to go but here is a first preview. The low fps is due to snipping tool…

Imgur

Do you know any color palletes with many distinct colors?

5 Likes

I usually search themeforest admin templates and start from there. It gives you a good base to work with and some ideas for colors that match in a live environment.

If you really like it or the images it has you can pick them up for relatively nothing.

2 Likes

Worked recently on a simple intro level where I try to introduce the player to the game basics.

7 Likes

Hi again,

I put my “process viewer” in a Swing GUI, It is not as good as I expected but I had some much fun developing it.
Colors are incorrect, and the image is inverted, but at least I can see something.

@1000ml I also put some code to check the CPU, but is killing the overall performance since my procedure is horrible…I will give it a second chance

4 Likes

Yet another Minie demo! PoolDemo demonstrates 3 kinds of dynamic friction, with PointLight and a dark background to enhance the mood …

And here’s a debug view, just after the break, with velocity visualization enabled. Looks like that cue ball is going down …

Complete source code available:
Minie/PoolDemo.java at master · stephengold/Minie · GitHub

18 Likes