Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code 3 - Estructura de datos #3

Open
Heikelol opened this issue Apr 3, 2014 · 3 comments
Open

Code 3 - Estructura de datos #3

Heikelol opened this issue Apr 3, 2014 · 3 comments

Comments

@Heikelol
Copy link
Owner

Heikelol commented Apr 3, 2014

Hola. Estoy en el trabajo y no puedo abrir el entono. Cuando llegue a casa pruebo lo que has hecho en mi entorno.

Como es un juego basado en monstruos, vamos a necesitar una base de datos de los mismos. Tengo pensada una estructura de datos que propongo, si ves que tiene carencias lo hablamos.

En principio vamos a tener una tabla para una base de datos interna, la tabla que propongo es la de monstruos, y la denominaremos "MONSTERS".

Bicho

  • ID bicho
  • ID sprite (sprite asociado a ese id de monstruo)
  • color sprite (todos los sprites tendran base color morados, y cambiaremos los tonos con el engine)
  • rango (D, C, B, A, S, SS, SSS)
  • nivel
  • experiencia (0/100, 20/100, etc...)
  • arquetipo (arquetipo ID)
  • sincronia con creador (0-100%)

Caracteristicas

  • Ataque (fuerza de ataque básico)
  • Cadencia de fuego
  • Poder (intensidad de las habilidades)
  • Vida
  • Mana
  • Alcance (la distancia a partir de la cual el monstruo dejará de avanzar y empezará a lanzar proyectiles o ataques)
  • Velocidad (la velocidad a la que avanza el monstruo)

Resistencias

  • Fuego
  • Hielo
  • Rayo
  • Arcano
  • Oscuridad
  • Luz

Habilidades

  • porcentaje de uso de habilidad en cada ataque (cada vez que el monstruo ataque habrá una probabilidad de que en vez de eso lance una de sus habilidades)
  • habilidad enfocada en exp ( desde la pantalla de gestión del monstruo, podemos decidir cual de las habilidades recibe más experiencia, 0 para repartir)
  • habilidad 1 (habilidad id)
  • hab 2
  • hab 3
  • hab 4

Un ejemplo de cómo puede ser la llamada a creación de la tabla:

db_table_create("MONSTERS","name|string,idSprite|real,spriteColor|real,rank|string,level|real,exp|real,idType|real,synchro|real,atk|real,fireRate|real,pow|real,hp|real,mana|real,range|real,vel|real,resFire|real,resIce|real,resElec|real,resArca|real,resDark|real,resLight|real,abPerc|real,focusedAb|real,ab1Id|real,ab2Id|real,ab3Id|real,ab4Id|real");

En vez de reales podemos usar "int" a discrección, excepto en aquellos más sensibles como la velocidad o la experiencia.

Al generar la pantalla de mazmorra, tenemos que cargar los valores de la tabla de nuestro monstruo en su clase interna, de tal manera que pasen a ser propiedades del objeto.

@FuRi0n
Copy link
Collaborator

FuRi0n commented Apr 3, 2014

Veo unos cuantos problemas.

  1. Se debería dividir la tabla en tablas más pequeñas, por ejemplo 1 tabla para cada uno de los apartados.
  2. El color no tiene sentido almacenarlo como un real ya que en realidad son 4 (r,g,b,a). Aquí habría dos opciones: Almacenarlo como una cadena de texto (120,230,85,255) o crear otra tabla en la que se almacenen los valores de r, g, b y a.
  3. El tema de la experiencia, supongo que no todos los niveles necesitarán la misma cantidad de experiencia, por lo que se debería añadir otra columna para indicar la experiencia necesaria para subir de nivel.
  4. Según das a entender las habilidades ganan experiencia y supongo que también subirán de nivel, por lo que habría que indicarlo.

@Heikelol
Copy link
Owner Author

Heikelol commented Apr 3, 2014

  1. Podemos hacer tablas cruzadas, donde cada monstruo tenga sus entradas correspondientes. Hacemos 4 tablas: MONSTER_BASE, MONSTER_STATS, MONSTER_RES, MONSTER_AB, y una tabla maestra MONSTER que relacione las cuatro anteriores a un ID. Me parece buena idea.
  2. La idea que yo tenía del color es que fuera un rango 0-100, de tal manera que 0 es el color del sprite sin modificar, y 100 es el mismo color del sprite sin modificar. Al variar el rango, cambia la gama de colores. Hay una función en photoshop que hace esto mismo, "tono". Siguiendo esta idea, el 50 sería la gama de colores inversa. ¿Ves un problema en este planteamiento?
  3. No tiene por qué, podemos hacer que todos los niveles sean 100 de exp. pero que cueste más ganarla en base al nivel del monstruo, su rank y la dificultad de la mazmorra que se esté pasando. Puedes mirarlo como un porcentaje de tipo real, y si cambiamos de idea, aplicar ese porcentaje a unas tablas de experiencia.
  4. Ahí a lo que se hace referencia es a una ID de habilidad. La idea era crear una tabla de instancias de habilidades, con su coste, daño, elemento, nivel, experiencia actual, % de experiencia que va a parar a esta habilidad, animación, sonido, su alcance, efectos adicionales, física aplicable a su movimiento, etc.

@FuRi0n
Copy link
Collaborator

FuRi0n commented Apr 5, 2014

Base de datos preparada

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants