¿Cómo hacer (crear) un árbol artístico (2D) en tiempo real (L-System?)

20

Recientemente programé un módulo del sistema L , me interesó aún más. También soy adicto a Plants vs Zombies, me gustó mucho el concepto de Árbol de la Sabiduría. Me encantaría crear un arte procesal similar solo por diversión y aprender más.

Pregunta: ¿Cómo debería abordar el proceso de creación de un árbol artístico (2d quizás con cámara / perspectiva fija) dinámicamente?

Idealmente, me gustaría comenzar con una planta (solo un tallo con una hoja) y cultivarla dinámicamente usando cierta influencia (entrada / acción del usuario) sobre su estructura. Estas influencias pueden dar como resultado diferentes tipos de ramificación, curvas en las ramas, su extensión, ubicación de las frutas, color de las flores, etc. Desean que esté realmente lleno de vida / espíritu. :)

Plantas contra zombis: árbol de la sabiduría Sería genial cultivar dinámicamente un árbol similar, pero con muchas más variaciones y animaciones.

Mi experiencia: Programador, he usado pocos motores de juego (Ogre3d, cocos2d, unity). Realmente no he programado directamente usando openGL, tratando de arreglar eso :).

Estoy listo para pasar un tiempo considerable. ¿Me avisas sobre las API? ¿Y cómo un experto como tú asumiría este problema?

¿Por qué 2D? Creo que es más fácil resolver el problema considerando solo 2 dimensiones.

Inspiraciones artísticas:

Solo el árbol, con frutos y hojas, sin los arbustos en el fondo

El árbol grande (ramas visibles, hojas verdes, flores, frutas, etc.) a la izquierda, detrás del mono.

PixelJunk's Eden (inspiración de estilo artístico).

Manzano procesalmente generado usando fractales

Avíseme si le fue fácil entender la pregunta, puedo dar más detalles.

Espero que una discusión sobre varios enfoques sea útil para todos. Ustedes chicos son geniales

lal
fuente
2
Puede que no tenga una respuesta para ti, pero definitivamente me gustaría ver a dónde va esto. Concepto impresionante!
Bloodyaugust
Gran pregunta, he estado interesado en L-Systems por un tiempo, pero no he hecho nada con ese interés :)
Luther
1
@Stephen para que lo sepas esta pregunta es a partir de 2011 y consiguió necro'd a la parte superior por parte del usuario que hace la pregunta de editar a cabo Student/a partirStudent/Programmer
PeterT
@lalan Por favor, solo realice ediciones que sean sustanciales para la pregunta, el hecho de que ya no sea un estudiante no es un cambio sustancial o una razón para editar.
MichaelHouse

Respuestas:

8

Algunas ideas para tu "juego":

  • Solicite al usuario un nombre para su árbol primero. Use ese nombre para generar una semilla para el algoritmo. Entonces cada nombre tendrá su árbol único. La semilla también podría influir en el tipo de follaje y fruto del árbol.
  • Podrías implementar algún tipo de "árbol de tamagotchi " donde el árbol se hace más grande y más agradable cuanto más le importa al usuario (fertilizar, agua, etc.)
  • Crea una lista de mejores puntuaciones de los árboles más altos. Otra idea sería mostrar las alturas y los nombres de otros usuarios al lado de su árbol. Para que pueda comparar la altura de su árbol directamente con otros usuarios. Vea este video como ejemplo. Las nubes indican la altura que otros usuarios han logrado.

Existen muchos algoritmos y documentos para la generación de árbol de procedimientos ( este hilo puede ser interesante ). Una tarea difícil es mezclar bien las ramas. Definitivamente, 2D será más fácil en ese sentido, ya que puedes resolver eso con la combinación alfa.

Como tienes experiencia con Ogre3D, Unitiy y cocos2d, puedes seguir adelante e implementar eso (no es necesario comenzar a aprender OpenGL ahora en mi humilde opinión). Personalmente elegiría cocos2d y lanzamiento para iPad y / o iPhone, para que todos puedan llevar su árbol con su dispositivo móvil.

bummzack
fuente
1
Con ese juego solo jugaría con L-Systems de una manera social / competitiva.
deft_code
1
Gracias por señalarme al hilo de gamedev ... Buenas ideas, tamagotchi y goo-tower ... la aplicación móvil sería realmente genial. encontrado un video 3DS Max Plugin - que es bastante impresionante enlace ..
lal