(April 2019) Monthly WIP & Screenshot thread


Here is a little demo of character movement I did for a thread topic in the forum.
It showcases a snow man which you can send to certain points on the floor by left clicking with your mouse. I used only primitive shapes and some math.


I don’t think the gpu cares about frames. Removing the framecap will cause the gpu to run at 100% load, assuming there are no bottlenecks in your system. I don’t see the difference between this and running software on the gpu at the same load.


Now with explosions:


Two things.

  1. I added random power-up loot drops from asteroids. You can’t pick them up and they don’t do anything yet… but they are there.
    (Note: colors are messed up because a recent screenshot commit to JME “fixed” one thing that almost no one uses and broke colors… and then found a different solution to their problem. And I haven’t reverted/fixed the real problem yet.)

  1. I put the app up on my web site if people want to download and try it. It’s very rough around the edges and I can tell you that you’ll want to run in 16:9 aspect or you won’t see the ships some of the time.

Multiple gamepad support should work fine, though. Left/right to steer, up to move… some button to shoot. Or on the keyboard player 1 is WASD + spacebar. Yeah, I should have put player 2 on the keyboard for when there is only one gamepad but I’m dumb.

Edit: P.S.: If you were looking for an easy way to test the various joystick changes without rebuilding JME or Lemur… this is it.


Sorry about that. I created a PR to revert the changes, please feel free to merger it.


My fantasy tree pack


I got a bit further on my game. After the logging in flow, I started working on character creation.


And of course the wizard has to be named Volo :smiley:




It’s all fun and games until you have to eat your children.


Today I played around with some 2D physics. Making use of jME and my Dyn4J integration.


Billboard grass, flowers, tree leaves…
Post processing: FXAA.

Performance-wise, works okay.
Since deffered rendering is used, I use screen door transparency (dithering.) What’s left to do is to blur the resultant dither patterns. As can be seen fxaa alone is not enough for the job.

flower power :sunflower: :blossom: :hibiscus:


Since it’s such a problem doing transparency in deffered, why use transparency for simple “cut out” shapes like flowers, grass since they’re not semi-transparent after all.
Well, reason 1: so that the edge is smooth. However then, I remembered of distance field text. No clue why this hasn’t crossed my mind before.

Thus, I converted my images to distance fields, 128x128 for grass, 64x64 for flowers:

As bonus, added a gradient, + outline for flowers.
As before, fxaa for final finish.
[the tree has been left intact for now] :hibiscus:
Next time you’re doing billboards, grass/flowers: don’t forget distance fields are an option.


An Indian guide might help you cross the river. Or he may be just a rip off. Who knows?


Today I spend some time figuring out how to get mixamo models and animations to work in jME.
I implemented a basic controller for character steering and added some physics to the scene.
In this example I placed a few crates on the ground for the character to bump.
As soon as the character reaches his destination it will play one of the standing animations (idle, jump, kick, box, etc.).
When that animation has finished it will choose a new destination to walk or run to.

Here is a little video of the test:


Finally added basic player login service

I decided to not to go with Http and Auth for now.
Client sends a hashed password to server, and server rehash it again with salt and save it to user-db.
At the moment I use a FileUserRepository which is encrypted with password using Java CipherOutputStream. (I may add an SqlUserRepository later if I ever need).

For the next step I am going to add forgot password option, as I am already getting users email on registration, I can use Java Mail API to send them a new temp password.


Send them a link to reset their password. That way passwords are never transferred plain, and will follow your hash flow from client to server as normal.

Good job getting it set up. Its the beginning of a whole new set of tools at your disposal :slight_smile:


Yes, thank you. I was discussing this with my brother right now and he exactly suggested me to do as you said. :slightly_smiling_face:


why so low fps? some kind of limit?


Yes, when developing I limit it to 30 fps (AppSettings.setFrameRate(30);) to save some laptop battery. (It is not precisely locked at 30 fps, for me it runs around 27)