BML - Bennufied Modelling Languace, ingeniería del software con Bennu

Started by Windgate, June 06, 2009, 01:24:50 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

Hola adorables amigos,
tras muchos proyectos realizados en Bennu y mucha separación de entidades del videojuegos en distintos .prg, miro hacia atrás y siempre he caído en el error de empezar a tirar código sin planificar correctamente.

He decidido empezar a aplicar UML (Unas directrices estándar para planificar proyectos de software) a Bennu para mi próximo proyecto de videojuego de puzzle, celebrando el 25 aniversario de Tetris ya de paso...

Pretendo tener una especie de cubo de rubbick con un cursor que permite intercambiar posiciones de piezas adyacentes para hacer líneas, y así ir eliminando las capas del cubo poco a poco.

El caso es que la idea la tengo clara, sin sueños locos, un juego de puzzle con unas reglas y objetivos sencillos y bien definidos, y creo que es ocasión de aplicar la organización más exhaustiva que jamás he puesto en un proyecto de software.

Para ello he empezado a revisar apuntes de UML y aplicarlos a Bennu. Lógicamente UML se basa en clases, objetos y métodos, pero lo estoy adaptando a estructuras TYPE, variables asociadas a ellas y PROCESS y FUNTIONs que las modifican.

Aquí os dejo el primer ejemplo de diagrama de clases, el primer diagrama según el estándar UML al que he puesto el nuevo nombre BML (Bennufied Modelling Languace).

DESCARGAR DIAGRAMA BML: http://www.mediafire.com/?mjymthnz5uj

La idea de BML es adaptar un estándar de programación orientada a objetos a Bennu, lenguaje que yo considero orientado al proceso... Con ciertas similitudes pero sutiles diferencias. Esto facilitaría notablemente la realización de grandes proyectos de forma colectiva.

¿Alguien había planteado ya algo similar? Opinad, que no es moco de pavo :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

josebita


Windgate

La idea es similar, pero lo propuesto en el link que me has pasado es a más "bajo nivel", sigue siendo útil por supuesto, pero para pequeños proyectos.

En su día también hice algunos diagramas parecidos, pero ahora estoy siguiendo un estándar. El UML propone hasta 13 tipos de diagramas distintos que sirven para determinar con exactitud cada objeto, cada una de sus variables privadas o públicas, las relaciones entre ellos, los momentos de ejecución en los que se crean, etc.

Una vez terminados los diagramas con UML, el videojuego debería poder codearse directamente y sin mayores problemas, funciona a la perfección con Java, y mi idea es portar esta idea a Bennu.

Dejo los 2 primeros diagramas que ya los tengo terminados:

Diagrama de clases: http://www.mediafire.com/?yd2imdjny1w

Diagrama de componentes: http://www.mediafire.com/?nmgtxcjkozz
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Prg

ja ja ja, no les entiendo, ja jaja, pero bueno, si te funcionan amiigo nos cuentas, saludos :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

Je je je amigo Prg,
cuando se produce software de forma profesional, más del 50% del tiempo del proyecto se dedica a hacer este tipo de diagramas.

Por experiencia veo que muchos de mis proyectos en Bennu se quedan estancados, al final terminan siendo ficheros con cientos de líneas de código, y cada nuevo cambio cuesta más y más esfuerzo.

Los diagramas sirven para conocer, antes de empezar a escribir código, qué es exactamente lo que se va a programar y cómo va a hacerse, cómo va a repartirse, etc.

No es algo imprescindible, pero visto que la gran mayoría de las empresas que producen software hacen uso de UML u otros diagramas similares, quiero probar qué ocurre si aplicamos esto a Bennu.

Como mínimo espero poder repartir el trabajo con un amigo y realizar el proyecto de forma fluida y sin problemas.

Os mantendré al corriente, esto por ahora no es más que un borrador de diagramas.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

josebita

Genial, suerte. Había oído hablar de UML, pero nunca lo he usado.

Tiene buena pinta.

DCelso

Voy a leerme los documento. No puedo entender cómo has hecho las similitudes entre procesos bennu y clases y componentes. Porque no las veo :D. Lo más parecido que veo son las clases runable
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

a todo esto caigo en la cuenta que es "lenguage" y no se que es "fied"... ;)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Josebita: No soy un experto de UML ni mucho menos, pero simplemente me gustaría contar con alguna metodología aplicable a proyectos Bennu en general.

DCelso: Las similitudes va a ser algo complicado de salvar. Las clases las he identificado como la creación de un TYPE (Por ejemplo la pieza de mi cubo que es tp_pieza), las operaciones asociadas a él (PROCESS y FUNCTIONs) y todo ello incluirlo en un .PRG separado. Es algo bastante experimental por el momento. En cuanto a los componentes... Estuve por saltarme ese diagrama, ya que está más orientado a sistemas donde hay servidores, bases de datos, periféricos u otros componentes asociados al sistema, y para un videojuego "normal" en Bennu no es necesaria tanta complicación...

SplinterGU: Language... Cierto, es language... A veces confío demasiado en mi oxidado inglés... ¿Alguna forma de cambiar el nombre de este hilo? ¿Puedes hacerlo tú por mí Splinter? :-[

Bennufied es como un juego de palabras. Unified viene de uni + fied que es algo así como hecho + unido, y yo quería expresar con bennu + fied algo así como hecho + bennu... Fue lo que se me ocurrió en el momento xD

Estoy de exámenes :o, como muchos otros, espero no dejar morir este tema y seguir con novedades durante las próximas semanas, quiero hacer mi nuevo juego de puzzle basándome en el BML.

Gracias a todos!
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Windgate

Clases runable DCelso... Ahora lo veo pero ni tan siquiera las conocía, threads sí que había usado con C, pero Java no es lo mío.

Como te digo, hay adaptaciones pendientes de discusión, quizá lo que sabes de Java pueda ser de gran ayuda, todo esto es muy experimental y va a ser probado con el desarrollo de un videojuego a ver qué sale de todo esto.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es