My Project and some Questions about Env3D Features

1 reply [Last post]
Offline
Joined: 06/13/2012
Hello Community!
 
I am working on a scientific thesis these days where I want to develop a simulation-software for 
small robots (lego mindstorms) driving, orientating and communicating inside a virtual 3D environment.
These robots shell have actors (to perform their movement in the scene) and sensors (for their orientation in the scene).
 
I am a real newbie in writing simulation-programms and I have never written a 3d-game before too. 
But I want to use a 3D-(Game)-Engine for my work an, and I am searching for an appropriate one.
 
1. Is is possibile to create a virtual 3D Environment including placing the robot, placing objects and texturing floor, walls and arbitary scene objects (at runntime) with Env3D?
 
2. Is it possible to read values from the scene for example with Env3D... for example
-- the color and brightness of the object which is in front of a robot
-- the distance to the next obstacle
 
3. Is it possible to manipulate the scene at runtime.. means changing position and state of objects and robots?
 
4. Has Env3D built-in collision detection (collision detection between robots and obstacles should be possible.)
 
5. Has Env3D built-in physics like gravity, friction and idleness/inertia?
 
6. Is it possible to save the state of a scene and to load it later?
 
7. Does Env3D have a built-in renderer for rendering the scene continously?
 
8. Is there a higher lever documentation besides the javadoc?
 
Do you think Env3D would be a good choice for me?
 
Thanks in advance.
Offline
Joined: 12/13/2010
Sounds like you have an

Sounds like you have an interesting project there!  Let me try to answer your questions one at a time:

 

1. Is is possibile to create a virtual 3D Environment including placing the robot, placing objects and texturing floor, walls and arbitary scene objects (at runntime) with Env3D?
 
Yes it is possible, in fact, the entire SceneCreator is created using env3d itself, so if you need a hint on how to add objects dynamically, you can look at the source code to SceneCreator.
 
2. Is it possible to read values from the scene for example with Env3D... for example
-- the color and brightness of the object which is in front of a robot
-- the distance to the next obstacle
 
There is no magic way to "read" a value from a scene, it really depends on how you want to place objects in the scene.  If you are using a height map for your simulation, you can read the values from your heightmap in your program.
 
3. Is it possible to manipulate the scene at runtime.. means changing position and state of objects and robots?
 
If I understand you correctly, this is something that env3d (and all game engines) can do, as the basic definition of a game engine is to allow game objects to change states in real time :)
 
4. Has Env3D built-in collision detection (collision detection between robots and obstacles should be possible.)
 
Env3D itself has no collision detection, but jME (http://javamonkeyengine.org)  (which is what env3d is based on) has jBullet built-in, so you can definitely access that part of jME from env3d.  I have a demo somewhere if you are interested...
 
5. Has Env3D built-in physics like gravity, friction and idleness/inertia?
 
Same answer as #4.
 
6. Is it possible to save the state of a scene and to load it later?
 
Yes it is possible, you just need to iterate over all the game objects and write out each object's state.  There is no magic "save all" function in env3d.
 
7. Does Env3D have a built-in renderer for rendering the scene continously?
 
Same answer as #3 above.
 
8. Is there a higher lever documentation besides the javadoc?

The high-level docs are presented under the "Lessons" link on the website.

 

As far as if Env3D is a good choice for you -- the answer really depends on what you want to achieve and how knowledgable you are with programming (and using Java).  You could get started learning about env3d first, since it is fairly easy to get into and the lessons are written for beginners.  As time goes on, if you want something more full-featured, you can either: 1) access the jME features from env3d, or 2) switch to jME or a different engine altogether.   Rest assured that most of the concepts that you learned from env3d are applicable to other engines as well, so your initial investment is not wasted.

 

Good luck on your project and let us know how it goes.  If you have additional questions, feel free to ask!

 

Jason