Jme (Llama) Terra Editor / RPG proof of concept

An editor for Llama’s jme terra large terrain engine, in combination with my own version of texture splatting.

Sorry, 20mb download (I couldn’t resist adding a “playable” demo of my current project :smiley: ), java 6, Windows and glsl 2.0 required.


Tell me what you think!


By the way, technology overview in case anybody wonders about the gazillion libraries used:

Very impressive. Both  :smiley:

For me it looks like this terrain editor should be integrated with MW3D

Yes, I thought of that to. But right now parts of the code are rather specific to my style of setting up the game world. I'll abstract away enough of that to release the editor as a standalone solution after I have the base functionality working as I want it, and then I guess it won't be too hard to integrate it with MW3D.

Kinda neet to have an endless terrain to play with

I am very sad that I couldn’t see anything, because of my shitty card  :’(.

But its looking great. And would be more than happy to do anything that it needs to bring it to MW3D.

Nice work hevee, still trying to get it to run though

What's going wrong, any errors?

Wow, that is scarily good, i get 60 fps with it.

This is so nice …

I get 9~ fps, but that is because my card doesn't handle shaders too good…

theprism said:

Wow, that is scarily good, i get 60 fps with it.

Heh, actually the demo is still not doing llama's engine (and jME, of course!) much justice, the terrain resolution is about double as high as necessary, and I am currently brutally loading the textures from pngs inside of the render loop }:-@, so expect performance to improve quite a bit as I am going on.
Hardware support for glsl shaders is a requirement, yes, I decided to draw the line there for my own project, because I couldn't get any acceptable framerates with 6 layers of textures on my own card with multipass rendering. And my own laptop with it's trusty geforce go 7400 is set as the minimum hardware requirement for my project ;)
The terrain editor will eventually allow falling back to fixed pilepline multipassing, though.

just to catch up with what implementation of the terra you are using - are you using the abstracted view version or the original from llama's website

How do I tell? I think I am using the latest archive you posted over in the dev thread, but TerraView is not abstract, or anything… But I have a TextureStore class I can't remember to have seen before, is that enough to identify the version?

Trouble running ((((

13.08.2007 16:20:43 class editor.WorldEditor s
SEVERE: Exception in game loop
java.lang.IllegalStateException: Function is n

With the clipped stacktrace, I can only guess, but it looks a bit like something is not supported by your card. Have you tried the webstart demos, specifically in the shaders section, before running this? Also, could you provide the full output? What's your graphics card/OS/driver version?

If TerraData and TerraMesh is abstract - then its the latest …

yep, both are abstract

llama said:

The single player demo doesn't work here though (I'll look into why some time later I guess), makes me even more curious what it does though!

Turns out this was a driver problem on my side: something related to displaymodes. It works now :)

Totally awesome! I never knew jME had -this- much potential!

One question though: The debug information on the bottom shows you render alot but how did you maintain that 60fps? I really find it hard to believe, even though the facts speak for themselves, that everything runs so smooth. I guess im just curious how you optimized everything :slight_smile:

Hehe, glad you like it  :smiley:

My optimizations so far:

  • Llama's terrain engine (see first post for link)provides automatic LOD for terrain

  • GeometryInstancing for small plants

  • SharedNode for trees

I might have forgotten something, but will happily answer more specific questions.

Since I created the demo package, performance got even better (from min. 70 to min. 90 fps in singleplayer demo) by using jME 1.0rc1 and multithreaded texture loading (well not really a performance booster, but eliminates lag when loading new parts of the terrain).

My next steps  performance-wise will be

  • experiment with an alternate way of calculating bounds for KeyframeController-animated meshes

  • Use those bounds to determine if we even have to bother with updating the KeyframeController

  • somehow "invent" some kind of SharedKeyframeController to reduce memory usage with lots of players  on the screen

But it will be a while until I get to those, I'll put a lot of work into gameplay/rules first.
Also I'll research ways to get blender->collada->jME working properly for skeletal animation if nobody beats me to it.

Have you tried experimenting using imposter quads for the trees ??