tutorial nivel medio

Tutorial videojuegos: juegos con perspectiva isométrica

Hoy comenzamos un tutorial de programación de juegos con perspectiva isométrica, iré completandolo a medida que vaya realizando el juego que estoy preparando. Espero servirte de ayuda si estás preparando un juego isométrico.

Históricamente la perspectiva isométrica podríamos decir que apareció en los años 80 con los ordenadores de 8 Bits. Yo recuerdo el Ant Attack de Spectrum que fue el primer juego para ordenador que usó esta perspectiva, para otras plataformas fueron el Zaxxon y el Q*Bert. Más adelante aparecieron autenticas maravillas de la técnica como el Knight Lore o el Hear Over Heels sin scroll y el The Great Escape con scroll. Nosotros intentaremos hacer un juego isométrico sencillo para comenzar y más adelante quien sabe, igual nos lanzamos y hacemos uno que supere a los grandes clásicos. Seguir leyendo sobre Tutorial videojuegos: juegos con perspectiva isométrica

Tutorial videojuegos: Trucos en Andengine

juego android tutorial programacion videojuegos

En esta sección del tutorial de desarrollo de videojuegos voy a poner los trucos que solucionan problemas que me he encontrado en Andengine.

Retardo y congelación en el juego

Durante unos segundos en el juego parece que todo va "a saltos", como si perdiera los FPS. Esto me costó mucho averiguar por qué ocurría. En mi caso ocurría al principio del juego, pero puede ocurrir en cualquier momento. Esto es porque usamos textos pero no hemos precargado los caracteres, entonces cuando durante el juego le decimos a Andengine que pinte un texto, tiene que cargar las letras una a una. Si luego le pedimos que pinte otras letras y son distintas, volvera a ir a saltos. Esto ocurre por ejemplo si pintamos la puntuación. Para solucionar esto hay que precargar todas la letras posibles que pueda tener nuestros textos: Seguir leyendo sobre Tutorial videojuegos: Trucos en Andengine

Tutorial videojuegos: pool de sprites

juego android fruit pool objetos

Cuando se crea un videojuego uno de los problemas con los que se encuentra un desarrollador de videojuegos es la caida de rendimiento cuando hay muchos sprites. Lo que hacemos todos al crear un videojuego con enemigos es ir creando sprites de enemigos a medida que los vamos necesitando. Cuando un enemigo muere, matamos el sprite para que se vaya al Garbage Collector. Esa forma de trabajar parece la más sencilla y la lógica, pero el rendimiento del juego cae exponencialmente.

¿Por qué noto lags durante el juego?

Si creas sprites en tiempo de juego... estás haciendo algo incorrecto. Los sprites se crean antes de comenzar el juego, si no, lo que nos ocurrirá es que aparecerán saltos ya que crear sprites es algo costoso y probablemente a nuestro motor de videojuegos no le de tiempo a renderizar la pantalla, mover sprites y además leer las texturas para crear los sprites nuevos. Seguir leyendo sobre Tutorial videojuegos: pool de sprites

Tutorial videojuegos: Modificadores de sprites

juego con pathmodifier android

Cuando programamos un videojuego una de las cosas que solemos necesitar es mover un sprite de un lado a otro, ampliarlo, rotarlo, etc. Esto podemos hacerlo a mano calculando la recta que une el punto inicial al final y moviendo determinados pixeles en el eje X y en el eje Y siguiendo dicha recta. Además deberemos hacerlo en un tiempo determinado para que el sprite lleve la velocidad que queramos. Esto no sé si os parece fácil pero no lo es. Además de que además podemos querer que ademas de moverse lo haga con distintos efectos (rebotes, aceleración, etc). Esto complica mucho el desarrollo de videojuegos. Si además queremos combinar movimientos (giros, desplazamientos, ampliaciones,...) la cosa se vuelve bastante complicada. Seguir leyendo sobre Tutorial videojuegos: Modificadores de sprites

Tutorial videojuegos: Fondos parallax

tutorial curso programacion videojuegos android arkanoid

Los parallax son una forma muy sencilla de hacer vistosos nuestros juegos. El referente (no sé si el inventor también) de los fontos parallax fue el Sonic de Sega. Los fondos Parallax son fondos que suelen acompañar (aunque no siempre) al movimiento del jugador pero a distinta velocidad. Si se combinan varios fondos parallax con distintas velocidades el efecto es muy chulo creando una sensación de profundidad casi 3D.

Normalmente los parallax son horizontales y se mueven acompañando al usuario, pero yo en el juego Arkandroid tuve que hacer un fondo parallax, podéis ver el vídeo de ejemplo más abajo. La librería Andengine no disponía de fondos parallax verticales así que basándome en la que tiene horizontal programé una clase que hace parallax verticales. En mi caso son dos fondos a distintas velocidades que se mueven solos, es decir, sin seguir al usuario. Seguir leyendo sobre Tutorial videojuegos: Fondos parallax

Tutorial videojuegos: Scrolling y uso de HUDS

juego android the hump

La mayoría de los juegos suelen tener scroll durante su desarrollo. Esto suele ser un quebradero de cabeza para los programadores que no usan librerías de ayuda en la programación. Voy a explicar como se hace scroll en Andengine, como veréis será muy sencillo. Además explicaré qué es un HUD y para qué se usa en los juegos con scroll.

Creación de un juego con Scroll

Crear un juego con scroll es muy dependiente de la librería de programación de videojuegos que usemos. Yo voy a explicar cómo se hace en Andengine que es una librería muy útil para hacer videojuegos. Seguir leyendo sobre Tutorial videojuegos: Scrolling y uso de HUDS

Tutorial videojuegos: carga de Sprites

Juego android space4kids gratis

Capítulo 3 del curso de programación de videojuegos.

Si habéis llegado hasta aquí es porque sabéis lo que es un sprite, pero por si acaso os daré una breve explicación. Un sprite es una imagen que cargamos en memoria y con la que el usuario y /o la aplicación interactuará. Los Sprites normalmente se realizan en PNG por los motivos que comentamos anteriormente.

En la mayoría de motores gráficos los sprites y fondos (un fondo no es realmente un sprite) se deben cargar en memoria usando lo que se llaman Atlas. Los atlas son superficies de memoria donde se añaden las imágenes unas pegadas a otras ocupando una superficie determinada. De esta se ahorrará rendimiento y memoria. Estos Atlas tienen tamaños que definiremos en nuestra programación como superficies de un ancho y alto potencias de 2. Es común hacer atlas de tamaños como estos: {256x256}, {512x256}, {1024x512}, etc dependiendo del tamaño de las imágenes que vayan a contener. Seguir leyendo sobre Tutorial videojuegos: carga de Sprites

Tutorial videojuegos: Carga de recursos en un videojuego

tutorial programacion videojuegos carga recursos

Capítulo 2 del curso de programación de videojuegos.

Cuando estamos programando un videojuego una de las cosas que necesitamos es la carga de recursos (imágenes, sonidos, archivos de texto, etc). Para cargar recursos hay que tener algunas cosas importantes a la hora de hacerlo:

No cargar recursos en tiempo de ejecución:

En adelante cuando hable de disco hay que entender que me refiero a disco si es un pc y a memoria sólida si es un móvil. Los recursos gráficos y sonidos deben de cargarse de disco, esto consume tiempo de proceso. Durante el juego debemos evitar cargar nada de disco ya que si lo hacemos nos ocurrirá que el juego sufrirá un pequeño parón e irá a saltos ya que los FPS se reducirán durante el tiempo que se tarde la lectura. Puede parecer poco, pero os aseguro que cargar una pequeña imagen en tiempo de juego se notan los tirones. Seguir leyendo sobre Tutorial videojuegos: Carga de recursos en un videojuego

Tutorial videojuegos: Variables de juego persistentes (SharedPreferences)

captura de pantalla de videojuego android de nuestro tutorial

Capítulo 1 del curso de programación de videojuegos.

Variables de juego persistentes (SharedPreferences)

A veces es necesario guardar determinados datos durante el juego para que estén disponible en ejecuciones posteriores. Ejemplos de estos datos son: puntuaciones, progreso del jugador, mapas creados por el jugador, etc. Esto puede hacerse de forma muy sencilla usando una característica de la programación Android que se llama SharedPreferences. Las SharedPreferences son "cajones" persistentes donde podemos guardar cualquier tipo de información, desde cadenas hasta booleanos pasando por enteros. Estos cajones son persistentes hasta que el usuario borra los datos de la aplicación para liberar espacio o desinstala la app.

Inserción de datos en las SharedPreferences

Os ponemos un poco de código para mostraros cómo se meten varias variables en las SharedPreferences (enteros, booleanos y strings) Seguir leyendo sobre Tutorial videojuegos: Variables de juego persistentes (SharedPreferences)

Curso de programación de videojuegos móviles en Android

captura de pantalla de videojuego

Comenzamos un curso de teoría de programación de videojuegos para móvil. Aunque estará basado en videojuegos para Android, muchos de los conceptos teóricos son aplicables a otros sistemas como iPhone o Windows (adaptando los códigos fuente). Este curso será una explicación teórica de los fundamentos de los videojuegos, por tanto no esperéis muchas lineas de código, simplemente encontraréis las bases teóricas para hacer un videojuego y nociones de código muy sencillas. Una vez cogido los conceptos básicos podríais buscar un tutorial con código, pero antes de eso es lógico que debáis saber qué es lo que se puede hacer y cómo se hace a la hora de programar un videojuego para móvil.

Recordad, este curso usará cosas de Andengine (librería para desarrollo de videojuegos) y Java (para programar android). Si no conoces estas dos tecnologías, no pasa nada, podrás seguir el curso para comprender los conceptos básicos y luego adaptarlos a la librería que vayas a usar. Seguir leyendo sobre Curso de programación de videojuegos móviles en Android

Información de interés sobre tecnología