Tutorial jME: 2. Configurando el entorno.

Ahora que tenemos todo lo necesario para crear nuestro juego lo primero que tenemos que hacer es configurar nuestro entorno de trabajo.

Para esto lo primero que hacemos es abrir el NetBeans y damos a "File > New Project...", esto nos abrira un dialogo para crear nuestro nuevo proyecto, en donde dice 'Categories' seleccionamos "Java" y en 'Projects' seleccionamos "Java Application", presionamos 'Next'.

Esto nos llevara al dialogo que vemos aqui a la izquierda el cual nos permitira elegir donde podremos elegir donde almacenar nuestro proyecto. En este caso en 'Project Name' pondremos "miJuego", en 'Project Location" seleccionamos la carpeta que creamos en la entrada anterior ("c:/miJuego"), podran notar que no marque la opcion que pone 'Use Dedicated Folder for Storing Libraries', lo que hace esta opcion es que copia las librerias que usemos en nuestro proyecto a tal directorio, pero prefiero no usar esta opcion, Marcamos la opcion que dice 'Create Main Class' y Set as 'Main Project', estas opciones nos crean un archivo con la estructura clasica del main en Java y lo coloca como el proyecto principal a desarrollar en NetBeans respectivamente. La ultima opcion la pueden desactivar sin ningun problema. Ahora damos a Finish y esperamos a que se cree el proyecto.



Ya que se creo el proyecto agregaremos las librerias que vamos a usar, para eso haremos click derecho en la rama libraries de nuestro proyecto (se encuentra en la parte izquierda, si no lo ven hagan click en "Window > projects" en la barra de menu) y seleccionamos "Add Jar/Folder..."

En el dialogo que nos aparece navegaremos al nuestro directorio "libs/jME" y agregaremos todos los .jar que tenemos (deben ser 12), podemos apoyarnos de la tecla shift para no tener que hacerlo uno por uno. Repetimos este procedimiento pero ahora lo haremos con el LWJGL con la diferencia de que aqui los .jar se encuentran en el subdirectorio "libs/LWJGL/jar", aqui tambien agregamos cada uno de los jar (deben ser 5).

Aparentemente con esto deberiamos poder compilar pues ya hemos importado las librerias y si colocamos un poco de codigo el IDE nos lo reconocera como valido, pero si hacemos eso nos encontraremos con una excepcion que nos dira que no se puede encontrar el LWJGL y ustedes se diran - pero si ya lo agregue como libreria!!! - y muchos comenzaran a correr en circulos (xD), pero no se preocupen esto es normal. Recuerden que java es un lenguaje multiplataforma, por lo que no puede acceder directamente a gran cantidad de harware (ya saben, por eso de la web y la seguridad y todas esas cosas) entre el hardware al que no puede acceder se encuentra la grafica, es por eso que deberemos usar un binding de acuerdo al Sistema Operativo (a partir de aqui pondre SO en lugar de Sistema operativo) que estemos usando. Pero, ¿cual es el chiste de usar un lenguaje multiplataforma si mi juego va a necesitar de el binding para el SO, este es uno de los principales "inconvenientes" de usar java como plataforma de videojegos (entre comillas por que pasa con todos los lenguajes xD) pero el LWJGL nos provee bindings para Win32 (alias windows), Linux y MacOS con lo que nuestro juego recupera gran parte de lo "multiplataforma".

Para colocar el binding correspondiente debemos hacer click derecho sobre el nombre de nuestro proyecto y seleccionamos "Properties" en el explorador del proyecto, esto nos abrira la ventana de propiedades de nuestro proyecto. En el listado de la izquierda seleccionaremos 'Run' y en donde pone "VM Options" colocaremos el argumento "-Djava.library.path" acompañado de la ruta al binding correspondiente a nuestra plataforma, los bindings los encontraremos en nuestro directorio "libs/LWJGL/native/" en este caso yo lo estoy haciendo desde Windows por lo que me quedaria algo asi: -Djava.library.path="H:\miJuego\libs\LWJGL\native\win32" damos OK y ya tenemos nuestro entorno listo para empezar a programar nuestro juego. Notese que a partir de ahora no podemos modificar los nombre o cosas asi en nuestro directorio de trabajo o nos empezara a tirar error y tendremos que reconfigurar todo nuevamente.

Supongo que ya estaran desesperados por ver en funcionamiento el jME, asi que les dejo este cachito de codigo, es un vil plagio del wiki de jME pero nadamas es para que vean que lo que acabamos de hacer si funciona, no crean que todo lo que pondre sera plagiado, nomas es por esta vez xD.


package mijuego;

import com.jme.app.SimpleGame;
import com.jme.scene.shape.Box;
import com.jme.math.Vector3f;

/**
*
* @author StuMx
*/
public class Main extends SimpleGame {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Main app = new Main();
app.setDialogBehaviour(SimpleGame.ALWAYS_SHOW_PROPS_DIALOG);
app.start();
}

@Override
protected void simpleInitGame() {
Box b = new Box("cuadrito", new Vector3f(0,0,0), new Vector3f(1,1,1));
rootNode.attachChild(b);
}
}


Cuando compilemos esto (presionando F6 o presionando el boton de play) veremos algo como esto:

Para la proxima les hablare de los bucles o ciclos que nos ofrece el jME y de como es que los juegos los usan.

Y gente, ya me di cuenta de que me han estado leyendo y no dejan comentario, asi que ustedes me oblicaron a esto... Cada vez que visitan mi blog y no dejan comentario un gatito muere!!! muahahaha!!!...