Open Virtual Container

El proyecto Open Virtual Container es un proyecto nacido en el ámbito del II Concurso Universitario de Software Libre con el objetivo de aportar a la comunidad una libreria muy extensible y portable que ayude a la interoperatibilidad de proyectos graficos en los que esté incluida una parte fisica.

¿Qué es Open Virtual Container?

Open Virtual Container (en adelante OVC) son varias cosas:

* Es un tipo de fichero que contiene física y gráficos 3d empaquetados de tal manera que se pueda reutilizar entre distintos proyectos software. En un futuro podrá contener más elementos a medida que se vayan desarrollando modulos, se planea incorporar IA y Audio al propio objeto, asi como todo lo que la comunidad vea que resulta necesario.

* Es una libreria modular que es capaz de leer ese tipo de fichero y transformarlo al tipo de objeto de una libreria de alto nivel como puede ser Irrlicht para graficos y PAL para fisica, obteniendo el desarrollador un objeto de este tipo listo para ser usado, de tal manera que uno crea un fichero ovc y muchos proyectos distintos con distintas librerias de alto nivel pueden usarlo.

* Un conjunto de modulos que amplian la expresividad de la libreria ovc de tal manera que pueda entender nuevos elementos dentro de un fichero ovc y que pueda aportar objetos de nuevas librerias de alto nivel.

* Cualquier envoltura de la libreria de manera que pueda ser utilizada esta en distintos lenguajes de programación. Actualmente solo se soporta c++, pero se prevee la portabildad a mono y java.

* Por ultimo OVC es una pagina web alojada en el dominio OpenVirtualContainer.org y que contiene tanto la libreria OVC, como los módulos OVC y los objetos OVC que los diseñadores hayan decidido compartir.

¿Porqué es necesario OVC?

OVC ha nacido para cubrir un hueco en el mundo del software abierto, hasta ahora un objeto hecho para un determinado proyecto libre, tenia que crearse de nuevo para otro proyecto totalmente distinto que necesitase ese objeto, asi un coche en un simulador de carreras, no podia reutilizarse por ejemplo en una aplicación de autoescuela. Obviamente esto hacia que no se pudiera reutilizar el trabajo de los diseñadores y que el software libre en el campo de los juegos avanzara lentamente.

El objetivo de OVC es el de mejorar la productividad y garantizar la interoperatibilidad de distintos proyectos software, habilitando un mecanismo de reuso de objetos entre proyectos, entendiendo que existen, en este momento, muchas librerias de alto nivel y que un determinado desarrollador suele conocer en profundidad uno o dos de estos motores graficos, fisicos( o de lo que se tercie), y asumiendo que para que exista reuso, debe de existir una facilidad maxima en la carga de estos objetos en una determinada libreria.

¿Para quién va dirigido OVC?

Principalmente OVC va dirigido a desarrolladores de aplicaciones gráficas que requieran del uso de la fisica y desarrollen con motores de alto nivel. A este tipo de publico le facilitará la tarea de tratar con objetos y separará la tarea del diseñador grafico del desarrollador.

Seguidamente esta dirigido para todas aquellas personas que desarrollen un motor determinado y quieran que las aplicaciones realizadas con ese motor puedan cargar objetos OVC. Para ellos, creando un determinado modulo que transforme de nuestro lenguaje intermedio a su tipo de objeto podrán tener directamente compatibilidad ovc.

También va dirigido a todos aquellos diseñadores graficos que quieren que sus objetos sean utilizados por muchos programas, de tal manera que se puedan sentir orgullosos y también, porqué no, vender esos objetos para ciertos desarrollos de manera que puedan tener un beneficio economico de su esfuerzo. Los desarrollos gratuitos serán alojados en nuestra página web.

Por ultimo a todos aquellos que quieran ayudar al proyecto a tener mayor extensibilidad y desarrollar modulos para procesar cosas como IA, audio, nuevos motores graficos, o fisicos, nuevos sistemas de ficheros(mysql, http, etc).

¿Cuando usar OVC?

OVC se debe de usar siempre que se quiera tener la oportunidad de compartir ficheros de objetos, de tal manera que podamos tener una base de objetos suficientemente grande como para poder abarcar cualquier nuevo desarrollo grafico sin tener que rehacer objetos.

¿Donde usar OVC?

OVC es un proyecto LGPL, esto implica que se puede utilizar en cualquier desarrollo, libre o no, sin tener que cambiar su licencia, siempre que se utilicen modulos con esta licencia. La página web alojará los proyectos que tengan una licencia LGPL y quieran ser alojados en la web, asi como licencias libres que permitan a los desarrolladores no tener que cambiar de licencia. OVC también enlazará todos aquellos desarrollos (tanto por diseñadores como por desarrolladores de modulos o aplicaciones que usen la libreria ) que lo requieran independientemente de la licencia que tengan estos proyectos, pero en ningun caso se alojaran desarrollos incompatibles con la libertad de uso.

Detalles técnicos del proyecto.

Fichero OVC: Un fichero OVC es un fichero ZIP con un fichero XML que funcionará de apuntador y ficheros de recursos apuntados que podrán ser de cualquier tipo que entienda nuestra capa IO.

Libreria OVC: Es una libreria multiplataforma escrita en c++ que inicialmente soportará ficheros ovc en windows y linux y que devolverá objetos Irrlicht para graficos y PAL o ODE para fisica.

Web OVC: Es una web desarrollada en drupal 5 y que será el contenedor de todos los proyectos y elementos que vayan incorportandose al mundo openvirtualcontainer.

Enlaces

XML http://www.w3.org/XML/ , http://es.wikipedia.org/wiki/XML
C++ http://cppreference.com/ , http://es.wikipedia.org/wiki/C++
PAL http://www.adrianboeing.com/pal/
Irrlicht http://irrlicht.sourceforge.net/