Processing 2.x in JME (again :)

There are various ways for creating a terrain with objects. In almost any case the terrain is totally separate from the world objects like trees and buildings.

The terrain itself is usually either a mesh (as in most games and JME3), or a voxel thing (e.g. like in the old game DeltaForce). It can be made destructable with another handful of tricks… The world objects are separate and placed on the terrain. So, for example, if you change the landscape, then vehicles travelling over it will move and behave exactly the way they should - climbing up the hills and going down from them. That’s just math and it depends on the type and data representation of your landscape. However, such things are not usually granted to work as you expect, even when you get them out-of-the-box, some tuning or a specific solution might be required.

For terrain - check the JME terrain thing. I did not use it (coz I did not make games of this type yet), but people use it much. Not sure if it is based on heightmaps or or manual or procedural generation or all of this.

As for destructability of objects - that’s another huge topic. The most simple case is to prepare several meshes, as you’ve said. Other techniques may involve more math and make your single mesh destructable, but that’s another story, and it is not quite straightforward.

As for vegetation you can also use various auto-generation methods, like this and this and others.

All in all the approach that you’ve described is correct. I would suggest you start thinking of what technologies will you apply first from describing in your game design document how you want to create things and what they should be able to do. Out of that you will then be able to figure out the ways of achieving them.

You can always ask on this forum regarding your questions on game programming with JME and general game programming questions, we will be glad to help! :slight_smile: