Archivo de la categoría ‘Aplicaciones escritorio’

Galaga. Paso 03: Incremento de tiempo fijo

jueves 14 de julio de 2016

Creación de juegos desde cero: C# y SFML

El sistema que hemos visto en el paso anterior funciona bien, sobre todo si la velocidad de las iteraciones es muy rápida (el procesador es muy veloz y hay pocos cálculos a realizar en nuestros procesos de actualización del mundo). Sin embargo, en el caso de que las iteraciones se produzcan cada mucho tiempo o con variaciones muy variables, este sistema falla.

(más…)

Galaga Paso 02: Velocidad constante

martes 26 de abril de 2016

Creación de juegos desde cero: C# y SFML

Con la implementación realizada en el Paso01, ya tenemos un juego muy simple que permite mover a nuestro jugador (una bola azul) por la pantalla. Toda la magia de este movimiento reside en el bucle principal del juego, un bucle infinito (al menos hasta que la ventana se cierre) que se encarga de obtener las entradas, calcular las nuevas posiciones y redibujar la pelota en su nueva ubicación.

El problema surge con la velocidad de la pelota. Independientemente de que podamos hacer que avance más o menos pixeles en cada actualización, lo que está claro es que el número de veces que se ejecutará el bucle en un determinado tiempo va a ser muy variable.

(más…)

Galaga. Paso 01: Creación de proyecto básico

martes 15 de marzo de 2016

Creación de juegos desde cero: C# y SFML

Vamos a entrar ya en materia. El objetivo de esta entrada va a ser obtener el código desde el repositorio de GitHub y conocer la estructura básica del mismo.

Descarga del proyecto desde GitHub

Los pasos son muy sencillos:

  1. Arranca una Shell de git (Windows) o un Terminal (en Linux o MacOS)
  2. Mediante el comando cd  desplázate hasta la carpeta en la cual quieras que esté la carpeta del proyecto.
  3. Ejecuta el comando git clone https://github.com/aoltra/Galaga-SFML.Net.git Este comando clona el contenido actual del repositorio en la carpeta en la que e encuentres [1]

(más…)

Galaga. Paso 00: Herramientas

jueves 10 de marzo de 2016

Creación de juegos desde cero: C# y SFML

Antes de empezar a entrar en materia hay que definir cuáles van a ser las herramientas con las que vamos a trabajar y como instalarlas. Nuestras herramientas fundamentales de trabajo van a ser el Visual Studio en caso de trabajar con C# o NetBeans en caso de usar Java y, por otra parte, git.

Es posible trabajar tanto en Windows como en Linux como en MacOS si bien en estos dos últimos lo más sencillo es trabajar con el desarrollo en Java [1].

(más…)

Creación de juegos desde cero con SFML y C#

sábado 27 de febrero de 2016

Creación de juegos desde cero: C# y SFML

 

Sin duda, una de las facetas que más interés suscita a los estudiantes que empiezan en el mundo de la programación, es la creación de videojuegos. Desgraciadamente (o afortunadamente nunca lo tendré claro del todo :)),  el desarrollo de videojuegos es una de las especialidades más complejas de la programación,  no solamente por la necesidad de conocimientos de computación sino también de matemáticas, física, diseño gráfico, etc.

Durante estos últimos meses ha surgido la necesidad de crear un curso que permitiera a los alumnos con conocimientos medios de programación introducirse en este mundo.  En estos casos, la solución más  habitual suele ser la de recurrir al uso de algún motor como AndEngine o de más alto nivel como Unity. Sin embargo, la idea en este caso era hacer algo diferente:  el objetivo no tendría que ser únicamente la creación de un juego, si no utilizar el desarrollo del mismo como vehículo para el aprendizaje de técnicas y conceptos de programación.

(más…)

Error de ejecución JOGL con NetBeans

viernes 17 de enero de 2014

 

jogljava

Una de las mejores maneras, sino la mejor, de poder utilizar OpenGL en Java es el uso de la librería JOGL. En la sencillez de su planteamiento radica su potencia, ya que se podría decir lo único que hace es mapear la gran mayoría de las funciones nativas de OpenGL de manera que puedan ser utilizadas de la misma manera que en C o C++ pero en Java. Por ejemplo, lo que en C podría ser el dibujo de una línea:

glBegin(GL.GL_LINES);
    glVertex3f(1.0f,0.0f,0.0f);
    glVertex3f(4.0f,1.0f,0.0f);
glEnd();

en Java quedaría como:

GL gl = drawable.getGL();

gl.glBegin(GL.GL_LINES);
    gl.glVertex3f(1.0f,0.0f,0.0f);
    gl.glVertex3f(4.0f,1.0f,0.0f);
gl.glEnd();

Desde entornos como NetBeans podemos acceder a plugin que además de proporcionar la librería, instalan asistentes, ejemplos e incluso componentes preparados para que se pueda dibujar sobre ellos directamente como es GLCanvas. Generalmente su uso es sencillo (independientemente de la complejidad de OpenGL), pero en ocasiones surgen problemas de ejecución debidos a la no localización de la librería nativa de OpenGL con la que se hace el mapeo. En estos casos el error que suele aparecer es similar a:

java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path

en el que se nos indica que no se ha podido enlazar con la librería nativa (es decir, la de cada SO) correspondiente. La solución suele venir por la indicación de manera explícita a la máquina virtual de donde está ubicada esa librería nativa. En ese caso lo primero es localizar su ubicación. Si estamos trabajamos con NetBeans y hemos instalado el plugin de JOGL, las liberias se suelen encontrar en una carpeta oculta dentro de la carpeta del usuario. Por ejemplo en Linux en /home/usuario/.netbeans/7.0 y allí distribuidas por librería y plataforma. En este caso (Linux sobre amd64) el parámetro necesario para la ejecución correcta sería

-Djava.library.path=/home/usuario/.netbeans/7.0/gluegen-runtime/gluegen-rt.jar-natives-linux-amd64

Este parámetro puede ser añadido desde Run/Set Project Configuration/Customize y en esa ventana dentro de las opción VM Options. Aún así es probable que siga apareciendo el error :(. Si es así lo más probable sea que en el fichero de propiedades del proyecto la plataforma no este bien configurada (cosa muy habitual si trabajamos en plataformas distintas). Para ello no hay más que editar nbproject/private/config.properties y cambiar la propiedad natives.platform por aquella que en esos momentos estemos utilizando.

+info: JOGL
+info: OpenGL pack for NetBeans