Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - El_Chavo

#1
Proyecto dx_lib32 / Juego RPG. Dudas en general
18 de Marzo de 2011, 04:10:43 PM
Es la primera vez que programo un juego RPG así que querría saber vuestras opiniones acerca de ciertos aspectos del juego, NO de la programación.

Veamos pués:

1.- El juego que estoy desarrollando usará un sistema de objetos aleatorio, de forma que existirán varias clases básicas de objetos invariables, con características fijas, pero se le añadirán aleatoriamente propiedades mágicas. Algo así como sucede con el juego de Diablo 1 o Diablo 2. No sé si lo sabréis, pero ambos juegos usan un sistema de prefijos y sufijos para los objetos, por ejemplo, prefijos podrían ser "Brutal" o "Huge" o "Necromaner's", etc... y sufijos podrían ser "of the Titans", "of the Gods", etc...
Ambos prefijos y/o sufijos se le añaden a lo que es el nombre del objeto, dando como resultado cosas como "Brutal Axe of the Titans".
La cosa es que cada prefijo/sufijo indica que ese objeto va a tener ciertas propiedades mágicas definidas por dicho prefijo/sufijo, por ejemplo, "Brutal" indica que dará +5 de fuerza, por poner un ejemplo.
la pregunta es: ¿cómo usaríais vosotros este sistema: añadiríais primero las propiedades mágicas de forma aleatoria y a continuación le pondríais el prefijo/sufijo correspondiente, o al revés, primero el prefijo/sufijo y luego las propiedades mágicas definidas por ese prefijo/sufijo?

2.- Otra cosa que estoy empezando a hacer es un sistema de "crafteo", es decir, que se podrán fabricar todo tipo de cosas usando convinaciones de elementos, algo así como en muchos MMORPGs actuales. Y la pregunta es: ¿qué método usaríais para hacer esto? De momento he hecho un método de combinaciones de valores: los objetos ingredientes todos tienen un valor de dos o más caracteres. Al combinar varios de ellos, también se concatenan sus valores, dando como resultado otro valor diferente que podría ser el del objeto a fabricar. Es decir, tengo tres ingredientes con los siguientes valores: A1, A2 y A3. Al combinarlos darían A1A2A3, y el objeto a fabricar tiene dicho valor, por lo tanto la combinación de ingredientes es correcta.
#2
Proyecto dx_lib32 / Acerca de valores ¿hexadecimales?
15 de Marzo de 2011, 06:56:32 PM
Buenas.

Quería preguntar una cosa que siempre me ha tenido intrigado:

en algunos juegos, sobretodo juegos de rol, el jugador puede conseguir objetos con cualidades mágicas y nombres aleatorios.
Generar nombres aleatorios y añadirle cualidades mágicas correspondientes no me parece difícil, sim embargo me he fijado que dichos juegos usan una especie de valor hexadecimal o algo parecido para almacenar la información de las propiedades y características del objeto en cuestión.
También utilizan dichos valores numéricos para otras cosas que tienen algo de aleatoriedad, así, por ejemplo, en un juego llamado "Dungeon Hack", se puede general el mapa de forma aleatoria, parametrizando valores como dificultad de monstruos, número de trampas, cantidad de objetos-tesoro, etc... En este juego, puedes ver la "semilla aleatoria" del nivel que se va a generar, y es algo así como "8756g12hg546ahjh", con números y letras.

La pregunta es: ¿cómo narices puedo usar un método similar para almacenar características aleatorias de los objetos, o qué explicación lógica tienen dichos valores hexadecimales o alfanuméricos? Por que me imagino que no serán cadenas de texto que el engine las vaya dividiendo en partes, como hago yo con cada una de las celdas del mapa de juego.

Lo pregunto por que hasta el momento lo que tengo que hacer es una serie de Select Cases, que en principio no es muy largo, pero que cuando empiece a añadirle al juego nuevas posible scaracterísticas a los objetos, puede convertirse en una lista considerable de Cases.
#3
Proyecto dx_lib32 / Opinion de nuevo formato de mapas
11 de Marzo de 2011, 05:52:48 PM
Hola.

Quería saber sus opiniones acerca de una formato de mapas que voy a usar en un juego cRPG que llevo programando desde hace un tiempo.
El juego tendrá un aspecto clásico como The Magic Candle, Gates of Delirium o incluso el juego Lenges/Legends 2 de las viejas TI-99.

Para aquellos que no conozcais dichos juegos, son juegos 2D que consisten básicamente en un enorme mapa del mundo por el que libremente puedes moverte. El mapa del mundo contiene ciudades, catacumbas y etc... Además no suelen ser juegos muy lineales.

La cuestión es que los mapas todos están ya preconstruidos, no son como un Roguelike que todo es al azar, así que he creado un formato de mapas para este tipo de juegos, hecho en simple texto plano.
Os describo como lo he hecho:

los mapas se pueden abrir con un editor de texto plano, y se verá algo como esto (sin las líneas horizontales)

---------------------------------PARTE 1
Bosque Maldito
10
10
---------------------------------PARTE 2
0103,0103,0103,0103,0103,0103,0103,0103,0103,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0001,0001,2001,0001,0001,0001,0001,0001,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0001,0001,0001,0001,0001,1001,0001,0001,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0001,0001,0001,0001,0001,0001,0001,0001,0103
0103,0103,0103,0103,0103,0103,0103,0103,0103,0103
----------------------------------PARTE 3
1,2
2,1
----------------------------------PARTE 4
2,3,1
4,6,2
2,5,1
7,2,3


La explicación es la siguiente, aunque seguro que ya os imaginais qué son algunas de las partes:

Parte 1: definiciones básicas del mapa: nombre, anchura y altura, en este caso, 10x10 tiles de superficie.

Parte 2: defición de cada celda del mapa. Cada número guarda información de la celda a la que corresponde.
Estos números tienen el siguiente formato:

<A><B><MM>

En donde:

<A> es la acción a la que se llamará cuando el jugador entre en dicha celda. Por ejemplo, en la celda cuya posición es [3,4] (empezamos a contar por el cero), vemos que se realiza la acción número 2.

<B> celda que bloquea o no el paso del jugador u otros monstruos o NPCs. 0 es no bloquea, y 1 es que sí bloquea.

<MM> tipo de material, o lo que es lo mismo, imagen que se colocará en el mapa. Viene definida por números de dos dígitos, desde el 01 hasta el 99. Cuando el juego empieza, carga la imagen con ese índice. El valor 0000 no está permitido, ya que se usará para informar al juego de que esa es una celda vacía.

Por lo tanto: 0002 es que es una celda que no bloquea, no realiza ninguna acción y usará la imagen número 02
Otro caso: 5014 es una celda que tampoco bloquea, y que usará la imagen 14, y cuando el jugador entre en ella, se realizará la acción 5
Otro más: 0101 es una celda que bloquea y usará la imagen numero 01.


Parte 3:
Es la lista de acciones.
Cuando el mapa se inicia se carga toda la lista. Cada vez que el jugador entre en una celda que contenga un indicador de acción, entonces se buscará entre la lista de acciones la que se indica en la celda, y se ejecutará. Es decir, si la celda del mapa tiene la acción 0, entonces no se hace nada, pero si es mayor que 0, pues se buscará en la lista de acciones esa acción y se ejecutará.
Tiene el siguiente formato:

<A><P>

En donde:

<A> es el número de acción a ejecutar
<P> el parámetro que se puede usar si fuese necesario.

Por ejemplo: 1,2 llamará a la acción 1, con el parámetro 2
3,0 llamará a la acción 3 con el parámetro 0. En este caso, el 0 siempre hay que ponerlo para indicar que no se necesita parámetro.



Parte 4:

Es la lista de objetos, NPCs y demás.
Tiene el siguiente formato:

<N><X><Y>

En donde:

<N> es el número de objeto a colocar
<X> e <Y> son las coordenadas del mapa en el que se colocará.

En este caso, los NPCs se almacenan en una matriz a parte, no en la del mapa.
Para comprobar colisiones entre jugador y objetos, cada vez que el jugador quiera moverse a una nueva casilla, se comprueva si en dicha casilla de la matriz de objetos hay algo o no.






Eso es básicamente la definición del mapa y todos sus elementos.
Me interesa mucho sus opiniones para que así pueda mejorarlo.



Otra cosa que quería preguntar:
me he creado un editor de mapas sencillo para crear los mapas.
Cuando creo un mapa en blanco, en realidad está relleno de celdas con valor "0000".
El problema que tengo es que cuando quiero crear el mapa del mundo, que será unos 300x300, tengo que crear una matriz de esas mismas dimensiones, y rellenarlas de "0000"
El problema reside en que usando bucles for..next tarda demasiado, y cuando digo demasiado, hablo de varios minutos.
Y la pregunta es: ¿hay alguna manera para evitar esto, quizás algún otro método que no sean bucles for...next?

Gracias por las respuestas.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.