Totalmente destructibilidad en 2D

Sep 08 2020

Me gustaría crear un pequeño juego sobre batallas en la Edad Media. Imagine un mapa 2d generado por procedimientos con ríos, campos y un pequeño castillo.

Dos lados. Un jugador atacará el castillo y el segundo jugador lo defenderá.

Todo el juego tendrá una vista, de arriba hacia abajo. Me gusta este look (y tal vez simplifique el trabajo).

Imagina el cañón de un jugador acercándose al castillo y atacándolo. El cañón dispara (por ejemplo, hacia una torre) y la torre comienza a desmoronarse. ¿Cómo hacer más interesante este proceso? Con varios efectos (por ejemplo, en el lugar donde la pistola se cayó de un trozo de pared, y en el techo de la torre hubo una grieta).

Me gusta el proceso de destrucción en AE defenite edition, pero se ve igual para todos los tipos de edificios (tarde o temprano lo convertirán en el mismo grupo).

El ejemplo a lo que me refiero cuando digo castillo 2d en la vista de arriba hacia abajo:

¿Cómo romper este castillo en chips?

PD: Espero que veas al mecenas del autor, de su mecenas esta imagen se puede descargar gratis. Tiene muchas otras imágenes asombrosas.

AGREGA alguna guía visual:

ingrese la descripción de la imagen aquí

Respuestas

4 G.Sliepen Sep 09 2020 at 07:49

Física

Trate de pensar en lo que sucede cuando una bala de cañón que viaja por el aire golpea algo. La pelota tendrá una cierta masa y velocidad y, por lo tanto, una cierta cantidad de energía cinética que potencialmente puede causar daño.

¿Qué sucede con la propia bala de cañón después de una colisión? ¿Rebota, cae, se rompe, rueda, se incendia o explota? Podría rebotar (por ejemplo, si golpea el suelo en un ángulo rasante), pero si golpea un muro de piedra, es probable que pierda toda su energía cinética, se caiga y tal vez se aleje rodando.

¿Qué sucede en el punto de impacto? Un muro de piedra reacciona de manera diferente a un techo de madera. Y existe una pequeña posibilidad de que golpee a una persona o algún equipo. Como mencionó Zibelas, es posible que todas estas cosas deban manejarse de manera diferente.

En cuanto a los materiales que se agrietan cuando son golpeados por una bala de cañón, podría realizar una simulación detallada de cómo reacciona el material, pero no creo que se ajuste a su estilo visual, y será mucho trabajo codificar y ejecutar. . En su lugar, haz algunas simplificaciones. Tenga en cuenta algo de física básica: una bala de cañón tiene una cantidad limitada de energía cinética que puede impactar. Cuando esta energía se transfiere al material, hay varias formas en que esta energía se puede distribuir, que incluyen:

  • El objeto como un todo puede heredar la energía cinética y así comenzar a moverse.
  • La energía se puede disipar completamente como calor.
  • Se puede crear una grieta

Por lo general, será una combinación de todo lo anterior. Bien, ahora mirando solo las grietas, dependiendo del material, existe una preferencia por la dirección de una grieta, y una vez que comienza una grieta, es probable que continúe en la misma dirección. Pero los materiales típicos tienen impurezas y habrá puntos en los que sea más favorable cambiar la dirección de una grieta. Para simular esto, usaría el siguiente algoritmo:

  • Desde el punto de impacto, gaste una fracción de la energía en una grieta que continúa aproximadamente en la dirección del impacto. La cantidad de energía gastada determina la longitud de esa grieta.
  • Luego, haga una elección aleatoria al final de esa grieta:
    1. Cambiar la dirección de la grieta
    2. Dividido en dos ramas, cada una en su propia dirección
  • Luego avanza repetidamente todas las grietas hasta que hayas gastado toda la energía.

Puede modificar los parámetros, como la posibilidad de bifurcar una grieta, hasta que encuentre que genera un patrón de grieta agradable.

Aparte de eso, desea verificar si una línea de grieta se cruza con una grieta existente o si golpea el borde del objeto que se está agrietando. En ese caso, habrá una pieza de material que ahora se ha aflojado por completo. Puede decidir darle un poco de energía cinética de su presupuesto de energía restante y enviarlo volando.

Representación

Parece que puedes dibujar las líneas de la grieta usando una línea negra con propiedades similares a los contornos utilizados en el dibujo del castillo. Pero las grietas simplemente no aparecen de repente de una vez. Crear una animación convincente puede resultar complicado. Sin embargo, piense de nuevo en la física del impacto de una bala de cañón: habrá polvo y partículas finas que se alterarán y podrían formar una pequeña nube con forma de humo. Esta nube se disipará en unos segundos y podría moverse en la dirección del viento. La nube ocultará la formación de grietas, por lo que no tiene que preocuparse por eso. También puede hacer que salgan algunas partículas pequeñas desde el punto de impacto para darle un aspecto más dinámico. Debería ser fácil agregar algo de aleatorización a estas cosas, para que se vean diferentes cada vez.