title: Java 3d mapping
body: <p>I'm creating a 3D game based on the book <a href="https://rads.stackoverflow.com/amzn/click/com/1592730051" rel="nofollow noreferrer" rel="nofollow noreferrer">Developing Games in Java</a> (you don't need to read or know the book to answer). To create the map I'm using a .map file that specifies the walls, floors, ceilings, and so forth. I just don't understand how the walls are created. Instead of using a begin x (coordinate) and a final x, a begin z (coordinate) and a final z, he just uses one x coordinate and one z coordinate. The commands are:</p>
  
  <pre><code>#    v [x] [y] [z]        - Define a vertex with floating-point 
  #                           coords (x,y,z).
  #    mtllib [filename]    - Load materials from an external .mtl 
  #                           file.
  #    usemtl [name]        - Use the named material (loaded from a 
  #                           .mtl file) for the next floor, ceiling,
  #                           or wall.
  #    ambientLightIntensity 
  #        [value]          - Defines the ambient light intensity
  #                           for the next room, from 0 to 1.
  #    pointlight [v]       - Defines a point light located at the  
  #        [intensity]        specfied vector. Optionally, light
  #        [falloff]          intesity and falloff distance can
  #                           be specified.
  #    player [v] [angle]   - Specifies the starting location of the
  #                           player and optionally a starting 
  #                           angle, in radians, around the y-axis.
  #    obj [uniqueName]     - Defines an object from an external
  #        [filename] [v]     OBJ file. The unique name allows this
  #        [angle]            object to be uniquely identfied, but
  #                           can be "null" if no unique name is 
  #                           needed. The filename is an external
  #                           OBJ file. Optionally, the starting 
  #                           angle, in radians, around the y-axis 
  #                           can be specified.
  #    room [name]          - Defines a new room, optionally giving
  #                           the room a name. A room consists of
  #                           vertical walls, a horizontal floor
  #                           and a horizontal ceiling. Concave rooms
  #                           are currently not supported, but can be
  #                           simulated by adjacent convex rooms.
  #    floor [height]       - Defines the height of the floor of 
  #                           the current room, using the current
  #                           material. The current material can
  #                           be null, in which case no floor 
  #                           polygon is created. The floor can be
  #                           above the ceiling, in which case a 
  #                           "pillar" or "block" structure is 
  #                           created, rather than a "room".
  #    ceil [height]        - Defines the height of the ceiling of 
  #                           the current room, using the current
  #                           material. The current material can
  #                           be null, in which case no ceiling
  #                           polygon is created. The ceiling can be
  #                           below the floor, in which case a 
  #                           "pillar" or "block" structure is 
  #                           created, rather than a "room".
  #    wall [x] [z]         - Defines a wall vertex in a room using
  #         [bottom] [top]    the specified x and z coordinates.
  #                           Walls should be defined in clockwise 
  #                           order. If "bottom" and "top" is not
  #                           defined, the floor and ceiling height
  #                           are used. If the current material is
  #                           null, or bottom is equal to top, no
  #                           wall polygon is created.
  </code></pre>
  
  <p>Maybe you can understand the "wall instructions" and explain in more details? I'm about 2 days testing some "theories" but I still can't understand. Other thing I don't get: what is the 'v' command for?</p>
  
  <p>PS: Is there a way to create the .map file from a external program (like a program that construct this kind of .map file)? And what would be a vertex?</p>
  
  <p><strong>Many thanks</strong></p>