[LibGDX] Project Tranquil

Shout out to jrenner for the inspiration to start this!

  • Dynamic terrain generation
  • Near infinite world size
  • Directional lighting
  • Dynamic shadows
  • Simple Physics
  • Texture support
  • Transparency
  • Wireframe
  • More to come!


Source: https://github.com/Zaneris/Tranquil

Desktop: http://dev9.ca/Tranquil.jar
Arrows/WASD to move, mouse to look, space to jump. Escape to quit.

Android: http://dev9.ca/Tranquil.apk
Left thumb to move, right thumb to look. Double tap right thumb to jump. Back to quit.

Looks nice!

Just thought I’d give you guys an update.

Made some pretty crazy performance improvements.
Uses minimal ram at high draw distances. (200MB at a radius of 320 blocks)
Running well on mid-powered android devices.

Few more updates:

Basic lighting in place, I’ll try to work on shadows next depending on the performance cost.
Texture ids are stored directly in the VBO now allowing all textures to have proper mipmaps.

Scroll up for new pics/video.


Realtime shadows!

Don’t get excited yet though, currently running like crap, needs a lot of optimization.
Proof of concept.

Shadows now at 60fps, and as a bonus, softer :wink:

Current RAM usage on android is ~105MB.

Looking pretty. What content do you plan to put in this world?

Thanks! Once the engine is mature enough I plan on building an RPG within the world.

I just now saw this! Super cool!

What did I do that inspired you? Kotlin Voxel?

Your memory optimizations are pretty amazing. I’m gonna have to look at github to see what you did.

The code is a mess right now, lol (working on that). Mostly by packing several shader attributes into a single float. Results in lots of branching within the shader which isn’t ideal but frees up a ton of memory.

And yes to the kotlin voxel!

Got some artifacts on when I run it on my linux machine, (nvidia 760 I think?)

Maybe it’s from your unique shader packing? who knows.

Interesting… Looks like the shadow bias needs to be set higher for your system.

Want advice?)
Forget about performance. Terrain generation,
Visual Img quality, Code optimization (for now).
Make raw gameplay – inventory, craft – Stupid NPC etc.
As faster as you can, without optimize code, without plug-in system and another time consuming features
– forget about everything else (you can returns to it later).
Or you projects eats you ^^

You even can’t imagine how many time will be spend on code optimization
Even if its looks like optimization is fun same as creating cool engine system.

First make raw gameplay – even without NPC models (use box instead), sound, textures,
And after you will have at least minimal playable game, add properly quality content to it.
This is very important for one man project.

Hope you listen me and this help make project real)

This is always a hard balance, if you build a lot on a rough framework, it may end up costing you even more time to go back and try to fix it than if you did it correctly in the first place. But yes you can easily get lost in early optimization.

Anyway, just updated the source with a new screen based rendering/execution system.
Should be a lot easier to read/follow. Also cut the chunk gen time in half.

Opted for a harder more defined shadow.
Reduced RAM usage further.

Had some free time, improved shadows further, added frustum culling and first person camera controls.

Looks great, so thumbs up!!!

BUT, listen to icecore’s advice, or you’ll end up with another abadoned cube world renderer…

Done, just added some simple physics, collisions, jumping etc…

Will push commit in 8 hours or so.

I’m getting the same effect on Windows 8.1

Also running an nVidia? More info would be helpful.

Edit: Mind trying this? https://dl.dropboxusercontent.com/u/53848210/Test.jar