anchor.diff:  === How do I make procedural or custom shapes?
   
   You can programmatically create com.jme3.scene.Mesh'es.
  -+*Learn more:* <<jme3/advanced/custom_meshes#,Custom Meshes>>
  +
  +*Learn more:* <<jme3/advanced/custom_meshes#,Custom Meshes>>
   
   
   == I want to change the surface of objects in the scene
  
positive.code: === How do I implement game logic / game mechanics?
  
  Use Controls to define the behaviour of types of Spatials. Use Application States to implement global behaviour, to group subsets of input handlers or +++<abbr title="Graphical User Interface">GUI</abbr>+++ screens, etc. Use the `simpleUpdate()` and `update()` loops for tests and interactions. Use Cinematics to remote-control objects in scenes.
  +*Learn more:* <<jme3/beginner/hello_main_event_loop#,Hello Loop>>, <<jme3/advanced/update_loop#,Update Loop>>, <<jme3/advanced/custom_controls#,Custom Controls>>, <<jme3/advanced/application_states#,Application States>>, <<jme3/advanced/cinematics#,Cinematics>>
  
  
  === How do I let players interact via keyboard?
  
  Use com.jme3.input.KeyInput and a Input Listener.
  +*Learn more:* <<jme3/beginner/hello_input_system#,Hello Input>>, <<jme3/advanced/input_handling#,Input Handling>>
  
  
  === How do I let players interact by clicking?
  
  Players typically click the mouse to pick up objects, to open doors, to shoot a weapon, etc. Use an Input Listener to respond to mouse clicks, then cast a ray from the player; if it intersects with the bounding volume of a spatial, this is the selected target. The links below contain code samples for both “fixed crosshair picking and “free mouse pointer picking.
  +*Learn more:* <<jme3/beginner/hello_picking#,Hello Picking>>, <<jme3/advanced/mouse_picking#,Mouse Picking>>, <<jme3/advanced/collision_and_intersection#,Collision and Intersection>>, <<jme3/advanced/input_handling#,Input Handling>>, com.jme3.bounding.*, com.jme3.math.Ray, com.jme3.collision.CollisionResults.
  +*Code sample:* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bounding/TestRayCollision.java[TestRayCollision.java]
  
  
  === How do I animate characters?
  
  Create an animated OgreMesh model with bones in a 3-D mesh editor (e.g. Blender).
  +*Learn more:* com.jme3.animation.*, <<jme3/beginner/hello_animation#,Hello Animation>>, <<jme3/advanced/animation#,Animation>>, link:http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation[Blender animation tutorial]
  +*Code sample:*  link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/model/anim[animation]
  
  
  === How do I keep players from falling through walls and floors?
  
  Use collision detection. The most common solution is to use jme's physics integration, jBullet.
  +*Learn more:* <<jme3/beginner/hello_collision#,Hello Collision>>, <<jme3/advanced/physics#,Physics>>, com.jme3.bullet.*, CapsuleCollisionShape versus CompoundCollisionShape, CharacterControl versus RigidBodyControl.
  
  
  === How do I make balls/wheels/etc bounce and roll?
  
  Add physics controls to Spatials and give them spherical or cylindrical bounding volumes.
  +*Learn more:* <<jme3/beginner/hello_physics#,Hello Physics>>, <<jme3/advanced/physics#,Physics>>, com.jme3.bounding.*, com.jme3.bullet.collisions, com.jme3.bullet.controls.RigidBodyControl,
  +*Code sample:* link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestSimplePhysics.java[TestSimplePhysics.java], link:https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/bullet[more physics samples]
  
  
  === How do I debug weird Physics behaviour?
  
negative.code: Spatial ninja = assetManager.loadModel("Models/Ninja/Ninja.j3o");
  ----
  
  *Learn more:* <<jme3/beginner/hello_asset#,Hello Asset>>, <<jme3/advanced/asset_manager#,Asset Manager>>, link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/asset/AssetManager.java[com.jme3.assets.AssetManager], link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/scene/Geometry.java[com.jme3.scene.Geometry], <<sdk/model_loader_and_viewer#,jMonkeyEngine SDK j3o converter>>, +
  *Code sample:* link:http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/model/TestOgreLoading.java[TestOgreLoading.java], link:http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/export/TestOgreConvert.java[TestOgreConvert.java].
  
  
  === How do initialize the scene?
  
  Use the simpleInitApp() method in SimpleApplication (or initApp() in Application).
  
  *Learn more:* <<jme3/beginner/hello_simpleapplication#,Hello SimpleApplication>>, link:https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/app/SimpleApplication.java[SimpleApplication.java].
  
  
  == I want to transform objects in the scene
  