ソースを参照

remove header macros and manual pagination links

mitm001 5 年 前
コミット
f6c1d12154

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_animation.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (7) - Hello Animation
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, intro, animation, documentation, keyinput, input, node, model
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_material#,Hello Material>>,
-Next: <<jme3/beginner/hello_picking#,Hello Picking>>
-
 This tutorial shows how to add an animation controller and channels, and how to respond to user input by triggering an animation in a loaded model.
 
 

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_asset.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (3) - Hello Assets
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, intro, documentation, lightnode, material, model, node, gui, hud, texture
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_node#,Hello Node>>,
-Next: <<jme3/beginner/hello_main_event_loop#,Hello Update Loop>>
-
 In this tutorial we will learn to load 3D models and text into the scene graph, using the jME <<jme3/advanced/asset_manager#,Asset Manager>>. You will also learn how to determine the correct paths, and which file formats to use.
 
 

+ 9 - 14
docs/modules/tutorials/pages/beginner/hello_audio.adoc

@@ -1,15 +1,10 @@
 = jMonkeyEngine 3 Tutorial (11) - Hello Audio
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
+:author:
+:revnumber:
+:revdate: 2020/07/06
 :keywords: sound, documentation, beginner, intro
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_terrain#,Hello Terrain>>, Next: <<jme3/beginner/hello_effects#,Hello Effects>>
-
 This tutorial explains how to add 3D sound to a game, and how to make sounds play together with events, such as clicking. You learn how to use an Audio Listener and Audio Nodes. You also make use of an Action Listener and a MouseButtonTrigger from the previous <<jme3/beginner/hello_input_system#,Hello Input>> tutorial to make a mouse click trigger a gun shot sound.
 
 
@@ -52,7 +47,7 @@ public class HelloAudio extends SimpleApplication {
   @Override
   public void simpleInitApp() {
     flyCam.setMoveSpeed(40);
-    
+
     /** just a blue box floating in space */
     Box box1 = new Box(1, 1, 1);
     player = new Geometry("Player", box1);
@@ -78,7 +73,7 @@ public class HelloAudio extends SimpleApplication {
     /* nature sound - keeps playing in a loop. */
     audio_nature = new AudioNode(assetManager, "Sound/Environment/Ocean Waves.ogg", DataType.Stream);
     audio_nature.setLooping(true);  // activate continuous playing
-    audio_nature.setPositional(true);   
+    audio_nature.setPositional(true);
     audio_nature.setVolume(3);
     rootNode.attachChild(audio_nature);
     audio_nature.play(); // play continuously!
@@ -248,7 +243,7 @@ The two sounds are two different use cases:
 **  This is why you `setLooping(true)`.
 
 
-Now every sound knows whether it should loop or not. 
+Now every sound knows whether it should loop or not.
 
 Apart from the looping boolean, another difference is where `play().playInstance()` is called on those nodes:
 
@@ -284,7 +279,7 @@ As of 3.1-alpha2, the Enum in the AudioNode constructor defines whether the audi
 ----
 audio_gunshot = new AudioNode(assetManager, "Sound/Effects/Gun.wav", DataType.Buffer); // buffered
 ...
-audio_nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", DataType.Stream); // streamed 
+audio_nature = new AudioNode(assetManager, "Sound/Environment/Nature.ogg", DataType.Stream); // streamed
 ----
 
 Typically, you stream long sounds, and buffer short sounds.
@@ -301,7 +296,7 @@ a|audio.play()
 a|audio.playInstance()
 
 a|Plays buffered sounds.
-a|Plays buffered sounds. 
+a|Plays buffered sounds.
 
 a|Plays streamed sounds.
 a|Cannot play streamed sounds.
@@ -333,7 +328,7 @@ If you don't do that, the results of 3D audio will be quite random.
 
 == Global, Directional, Positional?
 
-In this example, you defined the nature sound as coming from a certain position, but not the gunshot sound. This means your gunshot is global and can be heard everywhere with the same volume. JME3 also supports directional sounds which you can only hear from a certain direction. 
+In this example, you defined the nature sound as coming from a certain position, but not the gunshot sound. This means your gunshot is global and can be heard everywhere with the same volume. JME3 also supports directional sounds which you can only hear from a certain direction.
 
 It makes equal sense to make the gunshot positional, and let the ambient sound come from every direction. How do you decide which type of 3D sound to use from case to case?
 

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_collision.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (9) - Hello Collision
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, collision, control, intro, documentation, model, physics
-:relfileprefix: ../../
-:imagesdir: ../..
-:stylesheet: twemoji-awesome.css
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_picking#,Hello Picking>>,
-Next: <<jme3/beginner/hello_terrain#,Hello Terrain>>
-
 This tutorial demonstrates how you load a scene model and give it solid walls and floors for a character to walk around.
 You use a `RigidBodyControl` for the static collidable scene, and a `CharacterControl` for the mobile first-person character. You also learn how to set up the default first-person camera to work with physics-controlled navigation.
 You can use the solution shown here for first-person shooters, mazes, and similar games.

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_effects.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (12) - Hello Effects
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, documentation, intro, transparency, effect
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_audio#,Hello Audio>>,
-Next: <<jme3/beginner/hello_physics#,Hello Physics>>
-
 [.right]
 image::jme3/beginner/beginner-effect-fire.png[beginner-effect-fire.png,150,165]
 

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_input_system.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (5) - Hello Input System
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: input, intro, beginner, documentation, keyinput, click
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_main_event_loop#,Hello Update Loop>>,
-Next: <<jme3/beginner/hello_material#,Hello Material>>
-
 By default, SimpleApplication sets up a camera control that allows you to steer the camera with the kbd:[W] kbd:[A] kbd:[S] kbd:[D] keys, the arrow keys, and the mouse. You can use it as a flying first-person camera right away. But what if you need a third-person camera, or you want keys to trigger special game actions?
 
 Every game has its custom keybindings, and this tutorial explains how you define them. We first define the key presses and mouse events, and then we define the actions they should trigger.

+ 2 - 8
docs/modules/tutorials/pages/beginner/hello_main_event_loop.adoc

@@ -1,16 +1,10 @@
 = jMonkeyEngine 3 Tutorial (4) - Hello Update Loop
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: documentation, state, states, intro, beginner, control, loop
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_asset#,Hello Assets>>,
-Next: <<jme3/beginner/hello_input_system#,Hello Input System>>
-
 Now that you know how to load assets, such as 3D models, you want to implement some gameplay that uses these assets. In this tutorial we look at the update loop. The update loop of your game is where the action happens.
 
 
@@ -139,7 +133,7 @@ Link to user-proposed solutions: <<jme3/beginner/solutions#,Some proposed soluti
 
 == Conclusion
 
-Now you are listening to the update loop, the "`heartbeat`" of the game, and you can add all kinds of action to it. 
+Now you are listening to the update loop, the "`heartbeat`" of the game, and you can add all kinds of action to it.
 
 The next thing the game needs is some __inter__action! Continue learning how to <<jme3/beginner/hello_input_system#,respond to user input>>.
 

+ 1 - 7
docs/modules/tutorials/pages/beginner/hello_material.adoc

@@ -1,16 +1,10 @@
 = jMonkeyEngine 3 Tutorial (6) - Hello Materials
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: documentation, beginner, intro, model, material, color, texture, transparency
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_input_system#,Hello Input System>>,
-Next: <<jme3/beginner/hello_animation#,Hello Animation>>
-
 The term Material includes everything that influences what the surface of a 3D model looks like: The color, texture, shininess, and opacity/transparency. Plain coloring is covered in <<jme3/beginner/hello_node#,Hello Node>>. Loading models that come with materials is covered in <<jme3/beginner/hello_asset#,Hello Asset>>. In this tutorial you learn to create and use custom JME3 Material Definitions.
 
 image::jme3/beginner/beginner-materials.png[beginner-materials.png,320,240,align="center"]

+ 1 - 7
docs/modules/tutorials/pages/beginner/hello_node.adoc

@@ -1,16 +1,10 @@
 = jMonkeyEngine 3 Tutorial (2) - Hello Node
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, rootNode, node, intro, documentation, color, spatial, geometry, scenegraph, mesh
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_simpleapplication#,Hello SimpleApplication>>,
-Next: <<jme3/beginner/hello_asset#,Hello Assets>>.
-
 In this tutorial we will have a look at the creation of a 3D scene.
 
 *  This tutorial assumes that you know what <<jme3/the_scene_graph#,the Scene Graph>> is.

+ 2 - 8
docs/modules/tutorials/pages/beginner/hello_physics.adoc

@@ -1,16 +1,10 @@
 = jMonkeyEngine 3 Tutorial (13) - Hello Physics
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, intro, physics, documentation, input, model, control
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_effects#,Hello Effects>>,
-Next: <<jme3#,JME 3 documentation>>
-
 Do you remember the <<jme3/beginner/hello_collision#,Hello Collision>> tutorial where you made the model of a town solid and walked through it in a first-person perspective? Then you may remember that, for the simulation of physical forces, jME3 integrates the link:http://jbullet.advel.cz/[jBullet] library.
 
 Apart from making models “solid, the most common use cases for physics in 3D games are:
@@ -421,7 +415,7 @@ This code sample does the following:
 .  You attach floor_geo to the rootNode
 .  You position floor_geo a bit below y=0 (to prevent overlap with other PhysicControl'ed Spatials).
 .  You create a RigidBodyControl floor_phy for floor_geo.
-**  floor_phy has a mass of 0f 
+**  floor_phy has a mass of 0f
 **  You add floor_phy to floor_geo.
 **  You register floor_phy to the PhysicsSpace.
 

+ 1 - 7
docs/modules/tutorials/pages/beginner/hello_picking.adoc

@@ -1,16 +1,10 @@
 = jMonkeyEngine 3 Tutorial (8) - Hello Picking
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, documentation, intro, node, ray, click, collision, keyinput, input
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_animation#,Hello Animation>>,
-Next: <<jme3/beginner/hello_collision#,Hello Collision>>
-
 Typical interactions in games include shooting, picking up objects, and opening doors. From an implementation point of view, these apparently different interactions are surprisingly similar: The user first aims and selects a target in the 3D scene, and then triggers an action on it. We call this process picking.
 
 You can pick something by either pressing a key on the keyboard, or by clicking with the mouse. In either case, you identify the target by aiming a ray –a straight line– into the scene. This method to implement picking is called _ray casting_ (which is not the same as _ray tracing_).

+ 1 - 8
docs/modules/tutorials/pages/beginner/hello_simpleapplication.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (1) - Hello SimpleApplication
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
+:revdate: 2020/07/06
 :keywords: beginner, intro, documentation, init, simpleapplication, basegame
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3#installing_jmonkeyengine_3,Installing JME3>>,
-Next: <<jme3/beginner/hello_node#,Hello Node>>
-
 *Prerequisites:* This tutorial assumes that you have <<documentation#,downloaded the jMonkeyEngine SDK>>.
 
 In this tutorial series, we assume that you use the jMonkeyEngine <<sdk#,SDK>>. As an intermediate or advanced Java developer, you will quickly see that, in general, you can develop jMonkeyEngine code in any integrated development environment (NetBeans IDE, Eclipse, IntelliJ) or even from the <<jme3/simpleapplication_from_the_commandline#,command line>>.

+ 11 - 18
docs/modules/tutorials/pages/beginner/hello_terrain.adoc

@@ -1,17 +1,10 @@
 = jMonkeyEngine 3 Tutorial (10) - Hello Terrain
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
+:author:
+:revnumber:
+:revdate: 2020/07/06
 :keywords: beginner, heightmap, documentation, terrain, texture
-:relfileprefix: ../../
-:imagesdir: ../..
-:experimental:
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
 
 
-Previous: <<jme3/beginner/hello_collision#,Hello Collision>>,
-Next: <<jme3/beginner/hello_audio#,Hello Audio>>
-
 One way to create a 3D landscape is to sculpt a huge terrain model. This gives you a lot of artistic freedom – but rendering such a huge model can be quite slow. This tutorial explains how to create fast-rendering terrains from heightmaps, and how to use texture splatting to make the terrain look good.
 
 
@@ -67,7 +60,7 @@ public class HelloTerrain extends SimpleApplication {
     flyCam.setMoveSpeed(50);
 
     /** 1. Create terrain material and load four textures into it. */
-    mat_terrain = new Material(assetManager, 
+    mat_terrain = new Material(assetManager,
             "Common/MatDefs/Terrain/Terrain.j3md");
 
     /** 1.1) Add ALPHA map (for red-blue-green coded splat textures) */
@@ -102,7 +95,7 @@ public class HelloTerrain extends SimpleApplication {
     heightmap = new ImageBasedHeightMap(heightMapImage.getImage());
     heightmap.load();
 
-    /** 3. We have prepared material and heightmap. 
+    /** 3. We have prepared material and heightmap.
      * Now we create the actual terrain:
      * 3.1) Create a TerrainQuad and name it "my terrain".
      * 3.2) A good value for terrain tiles is 64x64 -- so we supply 64+1=65.
@@ -131,7 +124,7 @@ When you run this sample you should see a landscape with dirt mountains, grass p
 
 == What is a Heightmap?
 
-Heightmaps are an efficient way of representing the shape of a hilly landscape. Not every pixel of the landscape is stored, instead, a grid of sample values is used to outline the terrain height at certain points. The heights between the samples is interpolated. 
+Heightmaps are an efficient way of representing the shape of a hilly landscape. Not every pixel of the landscape is stored, instead, a grid of sample values is used to outline the terrain height at certain points. The heights between the samples is interpolated.
 
 In Java, a heightmap is a float array containing height values between 0f and 255f. Here is a very simple example of a terrain generated from a heightmap with 5x5=25 height values.
 
@@ -206,11 +199,11 @@ The jMonkeyEngine SDK comes with a <<sdk/terrain_editor#,TerrainEditor plugin>>.
 ====
 
 
-Splat textures are based on the `Terrain.j3md` material defintion. If you open the Terrain.j3md file, and look in the Material Parameters section, you see that you have several texture layers to paint on: `Tex1`, `Tex2`, `Tex3`, etc. 
+Splat textures are based on the `Terrain.j3md` material defintion. If you open the Terrain.j3md file, and look in the Material Parameters section, you see that you have several texture layers to paint on: `Tex1`, `Tex2`, `Tex3`, etc.
 
 Before you can start painting, you have to make a few decisions:
 
-.  Choose three textures. For example grass.jpg, dirt.jpg, and road.jpg. + 
+.  Choose three textures. For example grass.jpg, dirt.jpg, and road.jpg. +
 image:jme3/beginner/grass.jpg[grass.jpg,64,64] image:jme3/beginner/dirt.jpg[dirt.jpg,64,64] image:jme3/beginner/road.jpg[road.jpg,64,64]
 
 .  You '`paint`' three texture layers by using three colors: Red, blue and, green. You arbitrarily decide that…
@@ -277,7 +270,7 @@ The three other textures are the layers that you have previously decided to pain
 
 The individual texture scales (e.g. `mat_terrain.setFloat("Tex3Scale", 128f);`) depend on the size of the textures you use.
 
-*  You can tell you picked too small a scale if, for example, your road tiles appear like tiny grains of sand. 
+*  You can tell you picked too small a scale if, for example, your road tiles appear like tiny grains of sand.
 *  You can tell you picked too big a scale if, for example, the blades of grass look like twigs.
 
 Use `setWrap(WrapMode.Repeat)` to make the small texture fill the wide area. If the repetition is too visible, try adjusting the respective `Tex*Scale` value.
@@ -316,7 +309,7 @@ terrain = new TerrainQuad(
 
 You have created the terrain object.
 
-.  Remember to apply the created material: 
+.  Remember to apply the created material:
 +
 [source,java]
 ----
@@ -407,7 +400,7 @@ try {
 ***  What happens if the size is not a square number +1 ?
 **  Which value controls the number of hills generated?
 **  Which values control the size and steepness of the hills?
-***  What happens if the min is bigger than or equal to max? 
+***  What happens if the min is bigger than or equal to max?
 ***  What happens if both min and max are small values (e.g. 10/20)?
 ***  What happens if both min and max are large values (e.g. 1000/1500)?
 ***  What happens if min and max are very close(e.g. 1000/1001, 20/21)? Very far apart (e.g. 10/1000)?

+ 1 - 4
docs/modules/tutorials/pages/beginner/hellovector.adoc

@@ -1,10 +1,7 @@
 = hellovector
 :author:
 :revnumber:
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+:revdate: 2020/07/06
 
 
 image:jme3/beginner/hellovectorsumm2.png[hellovectorsumm2.png,width="",height=""]

+ 11 - 14
docs/modules/tutorials/pages/beginner/solutions.adoc

@@ -1,13 +1,10 @@
 = Some proposed solutions
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+:author:
+:revnumber:
+:revdate: 2020/07/06
 
 
-This is a user-proposed group of solutions for some or all of the exercises presented throughout the beginner tutorials (<<jme3#tutorials_for_beginners#,jme3#tutorials_for_beginners>>). 
+This is a user-proposed group of solutions for some or all of the exercises presented throughout the beginner tutorials (<<jme3#tutorials_for_beginners#,jme3#tutorials_for_beginners>>).
 There are several ways to do them, so take what you see with a grain of salt, and actually try to do them yourself instead of jumping to the solution, for it is the best way to learn!
 
 
@@ -30,19 +27,19 @@ protected Geometry redCube;
 
 public void simpleInitApp() {
     ...
-    
+
     // Creates the new cube
     Box b2 = new Box(Vector3f.ZERO, 1, 1, 1);
     redCube = new Geometry("red cube", b2);
-    
+
     // For the new cube to become red colored
     Material mat2 = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
     mat2.setColor("Color", ColorRGBA.Red);
     redCube.setMaterial(mat2);
-    
+
     // To position the red cube next the other cube
     redCube.move(2, 0, 0);
-    
+
     // Makes the red cube appear on screen
     rootNode.attachChild(redCube);
 }
@@ -57,7 +54,7 @@ To have the red cube spin twice as fast as the other cube, simply make it rotate
 public void simpleUpdate(float tpf) {
     // make the player rotate
     player.rotate(0, 2*tpf, 0);
-    
+
     // make the red cube rotate twice as fast the player
     redCube.rotate(0, 4*tpf, 0);
 }
@@ -270,7 +267,7 @@ When the controls are user-chosen.
 
 === Exercise 1
 
-You can jump right off and obtain the hit object's material, by acessing the “closest object we previously acquired, obtain it's geometry through .getGeometry(), and then get the Geometry's material through .getMaterial(), like so: 
+You can jump right off and obtain the hit object's material, by acessing the “closest object we previously acquired, obtain it's geometry through .getGeometry(), and then get the Geometry's material through .getMaterial(), like so:
 
 [source,java]
 ----
@@ -296,7 +293,7 @@ material.setColor("Color", ColorRGBA.randomColor());
 === Exercise 2
 
 First of all, we need some light shed to make the model visible! Add a simple DirectionalLight like previously showed.
-Then, declare a `Spatial golem` variable outside of methods. Then initialize golem to load his model: 
+Then, declare a `Spatial golem` variable outside of methods. Then initialize golem to load his model:
 
 [source,java]
 ----

+ 17 - 20
docs/modules/tutorials/pages/beginner/what_s_an_ide.adoc

@@ -1,26 +1,23 @@
 = What's an IDE?
-:author: 
-:revnumber: 
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
+:author:
+:revnumber:
+:revdate: 2020/07/06
 
 
 *  IDE stands for Integrated Development Environment. It's a software tool for developers.
-*  NetBeans IDE, Eclipse, IntelliJ are examples of development environments (=IDEs) for developers who are writing Java applications. 
+*  NetBeans IDE, Eclipse, IntelliJ are examples of development environments (=IDEs) for developers who are writing Java applications.
 *  Java is a programming language.
 **  “Java Beans is just a funny way of naming a certain type of data object that you can write in Java. +
 (Java = coffee… coffee beans, get it? No, developers aren’t very funny.) +
 _Java Beans have nothing to do with this topic or NetBeans!_
 
-*  jMonkeyEngine is a game engine written in Java. You use it by putting a JAR library on the class path, and calling its +++<abbr title="Application Programming Interface">API</abbr>+++ from your Java code. 
+*  jMonkeyEngine is a game engine written in Java. You use it by putting a JAR library on the class path, and calling its +++<abbr title="Application Programming Interface">API</abbr>+++ from your Java code.
 *  The jMonkeyEngine <<sdk#,SDK>> (Software Development Kit) is a customized NetBeans IDE that has special tools that help you develop 3D Java games.
 
 
 [IMPORTANT]
 ====
-The writing of the game (the actual game development) is still up to you, the person using these tools. There is an expectation that you, the person using these tools, already know how to program in Java. 
+The writing of the game (the actual game development) is still up to you, the person using these tools. There is an expectation that you, the person using these tools, already know how to program in Java.
 ====
 
 
@@ -33,7 +30,7 @@ image::sdk/jme3-jmonkeyplatform.png[jme3-jmonkeyplatform.png,width="640",height=
 
 Let's say you have no IDE. The typical stuff that you need for game development is:
 
-.  Install the Java SDK (“JDK 6) from Sun/Oracle. 
+.  Install the Java SDK (“JDK 6) from Sun/Oracle.
 **  The JDK includes essential development tools, such as the Java compiler (`javac`) and Java runtime (`java`).
 
 .  Install the jMonkeyEngine JAR libraries.
@@ -42,21 +39,21 @@ Let's say you have no IDE. The typical stuff that you need for game development
 
 .  Get a text editor to write .java and .xml files.
 .  Get a 3D model editor to preview 3D models and arrange them in scenes.
-.  Create Java project: 
-..  create directories for Java packages, 
-..  create more directories for textures and sound files and 3D models, 
-..  write an Ant build script, 
+.  Create Java project:
+..  create directories for Java packages,
+..  create more directories for textures and sound files and 3D models,
+..  write an Ant build script,
 ..  move JAR files around and check the classpath…
 
 .  Write code:
-..  write code in text editor, 
-..  look up javadoc in the web browser, 
-..  compile and then run code in the terminal, 
-..  when you get error output in the terminal, go find the file and line back in text editor… 
+..  write code in text editor,
+..  look up javadoc in the web browser,
+..  compile and then run code in the terminal,
+..  when you get error output in the terminal, go find the file and line back in text editor…
 
 .  Repeat.
 
-Basically, you switch back and forth between terminal, 3D model editor, web browser, and text editor a lot. You have to repeat lots of manual fine-tuning for every new file and project. 
+Basically, you switch back and forth between terminal, 3D model editor, web browser, and text editor a lot. You have to repeat lots of manual fine-tuning for every new file and project.
 
 Some people got annoyed by these maintenance tasks, and that's why they invented the IDE.
 
@@ -75,7 +72,7 @@ The essential word here is *integrated*: An IDE integrates all development tools
 
 *The Editor* is the heart of the IDE, and it has tons of great additional capabilties:
 
-*  The IDE tries to compile in the background what you write in the Editor. If you made a horrible, but obvious, mistake (forgot semicolon, mixed up data types, made a typo in a method call…) it tells you so immediately through warning colors and icons. This is called syntactic and semantic code highlighting. 
+*  The IDE tries to compile in the background what you write in the Editor. If you made a horrible, but obvious, mistake (forgot semicolon, mixed up data types, made a typo in a method call…) it tells you so immediately through warning colors and icons. This is called syntactic and semantic code highlighting.
 **  You still get Terminal output for errors and warnings (in the “Output window inside the IDE), but this way you erradicate tiny typos and compiletime errors immediately, and you can focus on serious runtime errors in the Output window.
 
 *  The number of commands in the Java +++<abbr title="Application Programming Interface">API</abbr>+++ is limited. So while you type a method or class name, there is only a limited number of things it can be. If you temporarily forgot what a method was called, the Editor pops up a list of options (plus javadoc comments), and you can simply select it.