Orc’s Dungeon / Fracture Games

test_alt test_alt test_alt test_alt test_alt
Orc’s Dungeon

Descargar Juego Descargar Código Fuente

Historia

Cuenta la leyenda que en lo más profundo del territorio orco se esconde una mazmorra que alberga el orbe sagrado, capaz de conferir a su poseedor el poder de dominar el tiempo. Solamente alguien tan loco como Grahim se aventuraría en una misión casi suicida, pues el orbe se encuentra custodiado por la guardia real orca y todos los medios de seguridad imaginables.
Las malas lenguas cuentan que quien entra nunca consigue salir: salas laberínticas, portales temporales que te hacen volver al momento inicial, ¿te atreves a entrar?

El juego consiste en avanzar de mapa en mapa venciendo los enemigos que nos encontremos a nuestro paso, ya sean insectos, orcos, arqueros o jefes, evitando ser detectado y conseguir el orbe mágico que se encontrará en la última sala. Los orcos tienen diseñado un sistema de alarmas, así que será mejor no ser descubierto. Hay que llevar cuidado y elegir correctamente la siguiente sala a la que nos movamos, ya que no habrá marcha atrás, y si nos equivocamos de ruta tendremos que volver al principio mediante un portal de teletransporte, para poder continuar nuestra búsqueda del orbe. Una vez consigamos el orbe, habremos superado el juego.

Idea y desarrollo

El entorno de trabajo de Fracture Games

El entorno de trabajo de Fracture Games

Para elegir la idea principal tuvimos ciertas dudas ya que éramos un grupo de cinco personas y teníamos que hacer un juego bastante completo. Pensamos en la opción de dividirnos y realizar dos juegos dentro del grupo, pero al final esa idea no se llevó a cabo. Elegimos implementar un minijuego que nos pueda servir como prototipo de un videojuego mayor para PC y así surgió “Orc’s Dungeon”. Exactamente no es el mismo juego pero posee una esencia parecida.

Empezamos realizando pruebas en lenguaje BASIC para ver cómo funcionaba internamente el Amstrad CPC. Al ver lo limitado que era BASIC y las pocas cosas chulas que se podían realizar, decidimos cambiar a otro lenguaje de programación que nos permitiese realizar un juego con menos limitaciones. Para ellos utilizamos CPC-dev-tool-chain de Cpcitor y el lenguaje de programación C, siguiendo el tutorial de Profesor RetroMan. Como base de código usamos el juego Save The Humor creado por ronaldo/Fremos/Cheesetea y Pote/Cheesetea y a raíz de su estructura principal empezamos a realizar nuestro juego.

Así, los primeros días empezamos a crear los sprites básicos del juego con el programa Retro Game Asset Studio (RGAS) y ya se empezaron a estudiar las colisiones en mapas. Posteriormente se programó la forma del cambio de mapas junto con los movimientos de los enemigos, así como sus correspondientes sprites. Ya puestos en la programación, se miró las colisiones de los enemigos con el protagonista restándole vidas. Como podías ser derrotado pensamos ya en ponerle ataques al personaje y de esta manera hicimos que primero pudiera lanzar cuchillos y luego ya vimos que atacara cuerpo a cuerpo (melé).

Se terminaron de realizar todos los sprites del juego y empezamos la implementación de la IA, realizando primero la del insecto. Luego implementamos la búsqueda de caminos (pathfinding) para los orcos. Por último, creamos un visualizador donde se mostraba los distintos tipos de estados de los enemigos, para poder debuggear más fácilmente.

Paralelamente a la IA se compuso toda la música gracias al programa WYZTracker de Augusto Ruiz / Retroworks y así poder usarla sencillamente en nuestro juego y también se compusieron los efectos. Además se realizaron los sprites de los logos de Fracture Games y Orc’s Dungeon del juego junto al de Game Over. Mientras se desarrollaba la IA, se pudo diseñar e introducir todos los conjuntos de mapas, que conforman la estructura de la mazmorra. En este punto, se nos ocurrió la idea de poner varios caminos y que no pudieras volver atrás hasta llegar al final del elegido, siendo solo uno el correcto.

Por último, realizamos el final del juego y una introducción del logo mediante una animación de un orco y el personaje principal. Finalmente, nos pusimos a realizar diversas pruebas, para detectar y solucionar bugs hasta el día de la entrega.

Los enemigos y su comportamiento

Rangos de escucha y olfato de Orcos y Bichos

Rangos de escucha y olfato de Orcos y Bichos

Del comportamiento de los enemigos podemos decir que actúan conforme a la situación. Ten cuidado de exponerte demasiado, pues si un enemigo te ve o te escucha, lo más probable es que vaya a dar la alarma (si la hay) y entonces todos queden alertados, y el nivel se vuelva más difícil (te detectan antes y van mucho más rápido).

Normalmente cuando te acercas a un enemigo, puede oírte y esto conlleva a que irá a investigar la posición de donde proviene el sonido. Ten cuidado si ya han dado la alarma, ya que puedes llevarte una sorpresa. Si una alarma suena, los orcos se vuelven más agresivos, ampliando el rango de patrulla y los arqueros buscan posibles salidas que defender y patrullan cerca de éstas.

Como en cualquier mundo, éste también tiene sus tramposos y sus autistas, y por ello debes tener especial cuidado cuando andes libremente por el escenario pensando que una supuesta pared te va a librar de un asalto inesperado de un enemigo (sobre todo las arañas e insectos, esos se meten por cualquier lado) tramposos que se comen el mapa y te asaltan en un momento, no te arrimes demasiado a ellos.

Y qué decir de esos autistas, que de repente se quedan quietos pensando en sus cosas o indecisos de donde moverse, que su aspecto no te engañe, no se ha quedado enganchado, está esperando a que te acerques… y hay de ti si te acercas.

Problemas y anécdotas

Fracture Games programando de madrugada

Fracture Games programando de madrugada

Uno de los principales problemas fue el correcto diseñado de los sprites ya que el tamaño del pixel en Amstrad no es cuadrado y algunos sprites al cambiarlos de vertical a horizontal quedaban mal. También tuvimos problemas con la memoria porque nuestro juego ocupaba demasiado y tuvimos que borrar cosas.

Y por último el problema más grave residió en la creación de un pathfinding para los enemigos. Al ser el movimiento continuo y no discreto a nivel de tiles, esto nos generó problemas muy difíciles de localizar, dado que los algoritmos presentaban salidas inestables cuando se ejecutaban desde el medio de dos tiles, pudiendo dar lugar a situaciones muy muy raras. Se pensó mucho sobre el tema y somos conscientes de que si el movimiento hubiera sido simplificado a nivel de tiles, hubiéramos llegado al mismo resultado en la mitad de tiempo, aunque el movimiento hubiera dejado mucho que desear.

Como anécdotas cabe destacar que hemos pasado tres semanas nutriéndonos a base de Mosters y Red Bulls (algunos, no todos) hasta altas horas de la mañana. Y a la mañana siguiente, como no, a seguir donde lo dejamos.

Tecnologías utilizadas e información técnica del juego

  • Tipo: Acción / Mazmorras
  • Modo 0 (16 colores, 160×200 pixels)
  • Notepad++ como editor de código fuente
  • CPCRSLib como librería para pintar sprites en pantalla.
  • SDCC como compilador de código fuente.
  • iDSK para crear los archivos DSK a partir de los binarios.
  • 2CDT para crear archivos CDT a partir de los binarios.
  • RGAS (Retro Game Asset Studio) para crear y editar los sprites.
  • WYZTracker para componer la música.
  • WinAPE como emulador de Amstrad CPC
  • Todos los recursos usados en el juego como gráficos y audios son propios y creados por el equipo de Fracture Games.
  • Como base para el desarrollo se ha usado la librería cpcrslib y se ha tomado como referencia el código fuente del juego “Save The Humor”, que se distribuye bajo licencia GPL.
  • La IA está basada en una máquina de estados finita. El cambio de estados y algunas de las decisiones tomadas en estos, en base a probabilidades, en algunos casos incluso incrementales.
  • El juego posee un sistema de mapas en el que, de forma muy sencilla, se pueden añadir y eliminar más mapas, con sus diferentes enemigos y posición de las puertas y hacia donde te llevan.
  • El juego está basado en tiles de un tamaño 8×16, cargados en memoria a través de una estructura en ensamblador. Hay algunas excepciones en tamaño.

2 comments on “Orc’s Dungeon / Fracture Games”

  1. Pingback: Entrega de premios #CPCRetroDev 2014 (Vídeo)

  2. Pingback: ¿Cómo se hace un videojuego? 32- Desarrollo de juegos para Amstrad CPC y PC en la Universidad de Alicante | ¿Cómo se hace un videojuego?

Leave A Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.