[Devlog] - GodoRogue

AikonCWD

#60 A mí también la verdad xdddd. Y en reddit ha gustado mucho el tileset ascii y la paleta de colores. De todas formas no me cuesta nada dar la opción de jugar en ascii o con un pack gráfico.



(Click para agrandar el GIF)

Pathfinding funcionando correctamente.
Sistema de mensajes implementado. Tiene un historial de hasta 3 mensajes (el color blanco es el mensaje nuevo y el gris es el más viejo). Si el mensaje nuevo es repetido, se añade un (x2) al lado y evitamos perder el histórico.

Tengo algún bug con el pathfinding de los enemigos, en una de las pruebas una serpiente ha atravesado el mapa xdddd. Espero poder debugar mañana con calma. Todavía no me he metido con el sistema de inventario. Me he centrado en mejorar la UI y los mensajes.

Mañana más!!

1 1 respuesta
carra
#61AikonCWD:

Y en reddit ha gustado mucho el tileset ascii y la paleta de colores

Anda, no sabía que estabas poniendo tus proyectos en Reddit jeje

1 respuesta
AikonCWD

#62 siempre! y tú deberías hacer lo mismo con vircon a poco que puedas postearlo en inglés. Da mucha visibilidad

1 respuesta
carra

#63 Totalmente de acuerdo. Sí pensaba ponerlo en algún sitio en inglés, lo que no tengo decidido es cuál pero Reddit no parece mal lugar...

1
AikonCWD

Pues ya tengo preparado el Trello con el roadmap del desarrollo: https://trello.com/b/81ytwHMf/godorogue

1
AikonCWD

Estoy implementando el sistema de combate/daño y tengo la siguiente duda con los enemigos que atacan varias veces en un turno.

Por ejemplo el Griffin, que ataca con 4d3+3d5+4d3. Como creéis que debería funcionar el sistema:

  • Calcular la probabilidad de acertar el golpe y aplicar 4d3+3d5+4d3 de daño.
  • Calcular la probabilidad de acertar el golpe y aplicar 4d3. Luego calcular de nuevo y aplicar. Finalmente calcular de nuevo y aplicar 3d5

Con el primer sistema, tenemos menos probabilidad de ser atacados (1 vez), pero nos comemos todo el daño posible (los 3 golpes)
Con el segundo sistema, tenemos más probabilidad de ser atacados (3 intentos), pero cada intento comemos menos daño.

Cómo debería implementarlo? Qué es lo más justo?

3 respuestas
Kalgator

#66 3 intentos diferentes, que se note que ataca 3 veces, puede no acertar los 3, pero comer algo de daño

3 3 respuestas
AikonCWD

#67 Así es como me lo imagino en mi cabeza. Voy a implementarlo y luego echamos unas partidas para probar si el juego está roto o no xd

1
AikonCWD

Bueno, lo dejo por hoy.

https://aikoncwd.ovh/roguelike/

Se puede correr por los pasillos si la tecla Ctrl se mantiene pulsada al moverse. Te pararás automáticamente en las intersecciones. Si pulsas Shift en lugar de Ctrl, te saltas las intersecciones. Me falta implementar que se detenga ante un combate.

Añadido sistema de combate (falta retocarlo mucho). Otorga experiencia y subida de nivel. Tu HP y HP máximo aumentan al subir de nivel

La vida se regenera con el tiempo. El hambre no funciona todavía. Tampoco hay inventario, así que es complicado progresar más allá del nivel 5. Pero podéis hacer pruebas.

1 2 respuestas
carra

#69 Acabo de probarlo un poco, no he hecho mucho pero parece que lo básico funciona bien

thenanox

#66 pienso lo mismo que #67

1 respuesta
thenanox

#69 pues de primera impresion, veo que funciona bien la verdad, congrats :0

AikonCWD

#71 #67 Pues al final lo he cambiado xd. Hay varios motivos:

El principal, si un enemigo tiene 1d8+1d8+1d8, con los 3 intentos me podría soltar en el log:

  • You miss the drake
  • Drake hits you with 5 dmg
  • Drake hits you with 3 dmg
  • Drake hits you with 8 dmg

Solo muestro 3 líneas, así que la info de tu golpe jamás se vería en pantalla y eso es un fallo de diseño gordo. El otro motivo es que solo tendría sentido si tuviera tipos de ataque diferente, es decir, si un 1d8+1d6 fuese el primer ataque de fuego y el segundo de golpe. En ese caso tiene sentido hacer 2 calculos para intentar mitigar uno de los 2 golpes.

En resumen: Que si me ataca un dragon con 1d8+1d8+1d8, yo veré en el log:

  • You hit the drake dealing 6 dmg
  • Drake hits you with 16 dmg

Mucho más simple, más visual y creo que escala mejor.


Por cierto. Lo acabo de actualizar con sonidos. Los combates tienen un pequeño delay para que se note el intercambio de golpes. El auto-run ahora funciona sin bugs (a no ser que me reportéis algñun bug nuevo).

Solo se puede correr en los pasillos verdes. Manteniendo pulsado Ctrl (te paras en cada intersección) o Shift (solo te paras si no puedes continuar)
https://aikoncwd.ovh/roguelike/

Voy a empezar a programar los items y el inventario.

2 respuestas
Kalgator

#73 calcular daño =/= mostrar daño en 3 lineas

guarda el daño en una variable y luego envías la suma de los 3 golpes en una linea de texto

1 respuesta
AikonCWD

#74 Es un poco royo. Puedo morir al primer golpe. Además que al hacer 3 tiradas, tienes más probabilidades de ser golpeado. Una sola tirada beneficia en lategame (con armadura buena y poca probabilidad de ser golpeado). Creo.

Pero bueno, lo dejo en el trello para seguir haciendo pruebas a ver que sistema me gusta más. Voy a ponerme con los items que tengo como 200 por programar xd

thenanox

#73 a ver, siempre podrias poner todo en una linea tambien:

  • Drake hits you with first attack deals 5 dmg, second attack deals 3 dmg, third attack deals 8 dmg
  • Drake hits you with first attack deals 5 dmg, second attack deals 3 dmg, missed third attack!

Habria que ver el tema del ingles en esa frase...

Tambien puedes tener un dragon con 1d20 + 1d20 + 1d20 en vez de 1d8+1d8+1d8, y eso escala igual de bien (sino mejor) que tener 3a1d+8

Una opinion que conste. solo digo que todavia no mates la idea, sobretodo porque en diseño tiene solucion, y puede ser muy importante cuando empieces a avanzar

1 respuesta
AikonCWD
#76thenanox:

solo digo que todavia no mates la idea

Eso lo tengo asumido. De momento lo dejo así y cuando tenga el resto implementado (armas, magia, anillos, etc...) veremos si el diseño de combate se tiene que volver a cambiar :)

1
B

Macho así no dan ganas de abrir un devlog jajaja genial trabajo tío, tiene buena pinta como estás pensando todo.

pd: una pregunta fuera de contexto el dinero que te ha dado Cursed Gem te has tenido que hacer autónomo para sacarlo? lo has declarado? puedes contar un poco de ello o lo has contestado en alguna otra parte?

2 respuestas
B
#66AikonCWD:

4d3+3d5+4d3

Qué quiere decir esto?

3 respuestas
Alfrik

#79 Es como se representan las tiradas de daño en el rol con dados

4d3 significa tirar 4 veces un dado de 3 caras y el resultado sería la suma, por ejemplo

1 1 respuesta
AikonCWD

#79 #80 https://donjon.bin.sh/

Aquí tienes un simulador. Pon en el cuadro superior esa tirada y simulará que se lanzan esos dados, mostrando el resultado final.
Lo bueno es que el jugador no tiene ni que saber que el sistema funciona así. Simplemente verá un número total de daño.

thenanox

#79 en los juegos como neverwinter, funcionan asi por detras y te lo esconden

carra
#78Mahjunia:

Macho así no dan ganas de abrir un devlog jajaja genial trabajo tío

Hacedlo, hombre! Que estos días casi parece que sólo estamos aquí Aikon y yo :sweat_smile:

1 1 respuesta
AikonCWD

#78 Mi madre es autónoma y el ingreso de Steam va contra su CIF. Su categoría laboral permite la venta de productos en internet y eso es lo mismo que vender juegos.

Cuando eres autónomo, los ingresos que recibes deben provenir de ese trabajo por el cual eres autónomo. Aunque esto tampoco lo miran mucho si las cantidades son normales.

De todas formas, con el poco dinero que he sacado con el Cursed Gem, podría no haber declarado nada y no pasaría nada, pero bueno. Mejor prevenir que curar. Steam no te obligan a ser autónomo, eso es problema de cada uno. Pero si pegas el bombazo y empiezas a recibir transferencias de varios miles de euros al mes a nombre de Steam... Hacienda tocará a tu puerta xd

1 2 respuestas
thenanox

#84 "Hacienda tocara a tu puerta" suena a juego de este foro

thenanox

#83 yo prometo que cuando me libere de un side project que tengo, volvere a ponerme con el jueguito que tengo para darle un arreon final

2
AikonCWD

Bueno, pues lo dejo por hoy.

Le he estado dando caña a los monstruos. Ahora por defecto todos están durmiendo. Cada monstruo tiene su FLAG configurada. Cada FLAG ha sido programada y con las pruebas que he hecho parece que todo funciona bien.

Las FLAGS son:

(M)ean: Se despiertan y te atacarán nada más entrar en la habitación.
(F)ly: Se desplazan más rápido y se mueven mientras luchan.
(R)egenerate: Al empezar su turno, regenera 1d6 puntos de vida.
(G)reedy: Esta la he eliminado. En su lugar el Orco tendrá el flag M
(I)nvisible: Auto explicativo

A la noche me pongo con los drops, dropratio, especiales e inmunidades. Si no me dejo nada, el tema de los monstruos estarán todos terminados.


2
Kalgator
#84AikonCWD:

Steam no te obligan a ser autónomo

No se supone que debes de ser autonomo o empresa para poder crearte la cuenta de desarrollador?

1 respuesta
AikonCWD

#88 Nope. Para create la cuenta solo tienes que pagar la tasa inicial. Lo que tú seas o dejes de ser es problema tuyo con la hacienda de cada país. Steam ahí no se mete.

1
AikonCWD

Bueno, hoy me he divertido mucho programando y aprendiendo nuevos conceptos. Le he estado dando a la generación procedimental de objetos, stats, nombres, etc...

He definido unas cuantas listas de adjetivos y nombres (colores, árboles, piedras, metales) que se asignan a cada objeto específico, de forma random y única. De tal manera que en una partida, un "anillo de jade" puede ser un anillo de invisibilidad y en la siguiente partida un anillo de destreza -2.

Lo mismo ocurre con el resto de objetos, a excepción de los scrolls mágicos, que cada uno de ellos tiene un nombre en un lenguaje desconocido (y que también es random entre partida y partida):

La parte entre paréntesis no es visible para el jugador. A no ser que use un scroll de identificación y pueda traducir la frase.

Para ello he implementado "Cadenas de Markov", para poder generar nombres aleatorios. Hoy ya es tarde (sorry @Alfrik xd) pero mañana abriré un thread a parte explicando esto mismo con detalle. Os dejo otra foto con un anillo y poción random a modo de ejemplo. También he puesto ranks a cada nivel, solucionado un bug con la generación de monstruos tras 80 pasos.

5