Hello everyone,
I’m pretty new to the jMonkeyEngine (and 3D-programming in general), thus having a lot of questions which I thought would be better to ask in a single thread instead of spamming a new thread for each. About me, I have ~1 year programming experience with Java (which is my first, main (and only) programming language). In that time I have been snooping around in the Internet and the Minecraft code and finished a Minecraft Tetris ( http://minecraftjp.mi.funpic.de/craftris/ ) some weeks ago. Now I want to step on into 3d-games and I am willing to learn!
So here are my (probably pretty nooby beginner) questions (I’m sorry in case that they have already been asked and solved elsewhere (and ask for the link in that case ) :
- Before trying out SeaMonkey, I tried to simulate an ocean by placing lots of SimpleWater-Quads next to each other. Actually it would have looked pretty fine from “overwater” if the single quads weren’t processed each on its own, giving the ocean an overall asynchronous look. For oceans this is no problem (since SeaMonkey is of great use), but if I e.g. wanted to give a winded river water with the SimpleWater-option by accordingly placing named quads, what would I have to do to get rid of the asynchronous look?
- Is there a (more or less) convenient way to simulate underwater-graphics, or would one have to simulate them by themselves?
- Is there a possibility to set the “look” of the mouse cursor?
- The terrain editor is a very useful tool, but it’s often inconvenient to have to move the mouse cursor each time you want to create a little change on the terrain, which is becoming really painful if you want to make a mountain or generally change large parts of the terrain. Is there an option to change that so you only have to keep the mouse button pressed, but not to move the mouse cursor anymore?
- Is there an option to show a 3D-space coord grid in the scene/terrain editor? I often get confused when it comes to comparing the scale of a composed scene with the game scale (or even have to do fine-tuning of object positions) because I’m missing an orientation point or similar…
- In my “simple” test application, I have a MenuState for the main menu and a GameState for the game itself (both children of AbstractAppState). Now the problem is, when I want to switch from the game back to the main menu by listening to keyboard input (the stateManager detach()es the game state and attach()es the main menu state), the cleanup() method of the game appstate leads either to ConcurrentModificationExceptions, or Nullpointerexceptions, or more exceptions derived by the renderer. The corresponding code is:
[java]public void cleanup()
{
super.cleanup();
app.enqueue(new Callable<Object>() {
//app is my SimpleApplication “child”
public Object call() throws Exception {
bulletAppState.getPhysicsSpace().removeAll(sceneNode); //the sceneNode is this states “rootNode”; everything used from this class is attached to it, while it itself is attached to the app’s rootNode
sceneNode.detachAllChildren();
rootNode.detachChild(sceneNode);
return null;
}
}); //this Callable-action was a (successless) desperate attempt to fight those exceptions
List<SceneProcessor> spl = viewPort.getProcessors();
for(SceneProcessor sp : spl)
viewPort.removeProcessor(sp);
waves.setLooping(false); //just an audioNode, I didn’t run into any problems here
waves.stop();
inputManager.removeListener(this); //this shouldn’t be problematic at all too
}[/java]
So, what would be the correct approach in such a case?
- A totally other kind of question, after having gone through the “Documentation and Tutorials”, my actual plan is to create a little RPG (just a linear story with around half a dozen of quests, built step-by-step). Do you have any advice you can give me (maybe about community-based project I should use, more jME3 tutorials (if there are even more out there) or specific systems of application logic)? I must admit I am sort of clueless about the implementations of NPCs, drivable means of transportation or similar …
Any answers are much appreciated, thanks in advance