Tech Demo: Infinite World with Vegetation

A tech demo of infinite terrain, grass, flowers, trees and an ocean.

Available on jMonkeyStore:

This tech-demo utilizes the following libraries:

There is a GUI to alter various settings available to determine how much of each layer is displayed to optimize the framerate according to your customer-base.

The world does load almost instantly in run-time - FRAPS was killing the generation time.


Note: I’ve found OBS to be much better for this. But I guess mileage may vary. (I’m a paid FRAPS user but I switched to OBS a long time ago.)

1 Like

I have it installed. I should have asked my son :confused: he does more AV than me.

1 Like

FYI: FRAPS does uncompressed captures and thus saves raw AVI files, which means you have a big disk IO (1920x1080x3x30 = 178MiB/s), which is good for CPU but bad for the disk, probably killed the loading time.

OBS does compress on the fly and saves them. This consumes CPU Usage or if you have a recent Nvidia GPU you can use nvenc to encode on the GPU.
Apart from that, OBS provides a dozen ways of capturing and you can fine tune the compression algorithms and also do some layering (e.g. Available on jMonkeyStore, Infinite World by jayfella).


Yeah, kind of veering off topic for Jay’s post but I find I get the best luck overall with the OBS mode that requires remuxing to MP4 afterwards.

…though, looking, what I have my game dev machine set to is nvenc to flv.

NVIDIA Shadowplay is the best if you can use it. I’ve used plenty and my software fallback is ShareX. With that I do get some stuttering, but better than nothing. But with NVIDIA Shadowplay I get absolutely no performance downgrades. Smooth from the start to the end. And this is not paid advertisement :slight_smile:

@jayfella this looks very nice :slightly_smiling_face:

1 Like

As cool as the demo looks, I couldn’t find a way to run it. gradle run complains about task run not being defined and after manually adding it and pointing it at the main class, I got a weird error about lwjgl jars being sealed or something.

EDIT: Importing it into IntelliJ and then running the main class did the trick, but you might want to add a run task anyway

1 Like

I’ll take a look. Thanks for the heads up.

1 Like

My first thought on this demo was Simarboreal’s multi-lod trees.

Have not looked at the code, but wonder how well they’d play together?

1 Like

If he could get it to work, he could have a LOT more trees and much less popping, I guess. But the popping may be a limitation of load distance, I guess.

1 Like


1 Like