Java : Mejor alternativa para software destinado al entretenimiento?
Introduccin
Esta investigacin sera abordada tomando como referencias nicamente la utilidad que se vio denotada por los especialistas en la creacin de software de entretenimiento en la utilizacin de Java como alternativa. Durante la lectura de este articulo se recomienda tomar en consideracin que no se esta comparando las herramientas que se tienen otras empresas para el desarrollo de sus aplicaciones, si no se esta dando informacin descriptiva, cronolgica de el porque seria una opcin el uso del lenguaje Java en este ambiente y la descripcin de sus propiedades mas tiles en esto.
Objetivo
Conocer las caractersticas del lenguaje orientado a objetos Java y las propiedades que lo pudieran hacer la mejor alternativa cuando se planea disear un software de entretenimiento. Se requiere de igual manera saber los aspectos de los lenguajes competidores con Java y los factores que los hacen tan diferentes. Cambien se desea reconocer las diferencias tericas y practicas entre cada uno de estas plataformas para la creacin de aplicaciones usando el dinamismo y participacin del usuario con resultados en tiempo real por parte del software, y decidir en que ocasin realmente puede ser la mejor alternativa Java.
Justificacin
Si bien es sabido la gran gama de software (libre/costo) que aportan tanto la facilidad, eficiencia y motor grficos de todo tipo para el desarrollo de un software destinado al entretenimiento, cabe aclarar que de toda ella, la mayora usan bases o plataformas de desarrollo que en esencia son lenguajes que en general pueden ser usados para distintas otras aplicaciones. Se puede presumir que los principales lenguajes que tienen uso directo o indirecto sobre estas herramientas, son Java, C/C++, Python, Delphin, Ruby, BASIC, y algunos otros como resultado de modificacin o mutacin usando un motor base. El gran problema redice en el hecho de tomar como decisin principal cual sera la herramienta, desde un desarrollador independiente hasta para una empresa dedicada a esto, conocer cual es la mejor alternativa.
Hiptesis
Mediante el anlisis de la metodologa para la creacin de software de entretenimiento basado bsicamente (independientemente de la herramienta) en el lenguaje de programacin Java, se podrn conocer las principales caractersticas que lo hacen una alternativa. Y usando comparacin descriptiva y planes de estudio de algunas facultades que
imparten certificados de programacin de video-juegos, se estudiaran los puntos fuertes que puede tener este lenguaje.
El caso de lo video-juegos basados en Java
Una de las caractersticas que hay que hay que estudiar para decir si Java es o no una buena alternativa a considerar en el desarrollo de un video-juego, es el aspecto econmico y popular que resulta este entorno para las grandes empresas desarrolladoras, por lo cual nos centraremos primero en conocer solo un poco de estos datos antes de ondear en cuestiones mas complejas. Como conoceremos ademas, Java es muy usado en el desarrollo de aplicaciones en todo tipo de aparatos porttiles como lo son los celulares, gadget y smartphones, por lo cual concentraremos nuestra atencin popular y economica en estos productos. En un estudio de Nokia realizado en el ao 2003, se estimaba que del total de los ingresos de la compaas desarroladoras y operadoras solo el 3% se obtena de ventas de software de entretenimiento. Sin embargo y presumiendo del crecimiento que tenia hasta la fecha esa cifra, se predeca que para el ao 2008 este indice tendra un incremento del 11%, en otras palabras se hablaba de un crecimiento del 370% en solo 5 aos. Java realmente tiene mucha popularidad por la caracterstica multiplataforma. Sun publico los siguientes datos: Segn estimaciones, se producen mundialmente ms de 15 millones de descargas de juegos Java cada mes, hasta 2002, Vodafone Japn report 25 millones de descargas de juegos, en mayo de 2003, la compaa japonesa NTT-DoCoMo reportaba entre 100.000 y 200.000 descargas diarias, Desde su creacin en octubre de 2003, hasta mediados de 2004, el servicio Vodafone Live! Report 3 millones de descargas, durante 2003, Telefnica Mviles vendi 3 millones de aplicaciones Java. Debido al fuerte y continuo crecimiento de la telefona mvil, estos datos son actualmente obsoletos, pero si los combinamos con las expectativas de crecimiento anteriormente expuestas, estamos ante un gran mercado emergente que mueve varios miles de millones de dolares al ao, y que proporciona miles de puestos de trabajo. Aparte de estos datos, est contabilizado que la industria del video-juego en general (no slo de telefona mvil), hoy en da mueve ms dinero que la propia industria cinematogrfica.
Desarrollo de un software de Entretenimiento
Antes de discutir las diferencias de cada lenguaje y las herramientas que pueden usarse en cada uno, hay que hablar primeramente de lo que cada uno de ellos debe de contar. Por esto mismo analizaremos el plan de creacin de un video-juego en general y a partir de cada uno de esos tpicos podremos discutir las caractersticas del lenguaje. El desarrollo de un video-juego esta dividido en tres partes primordiales, de las cuales se pueden derivar otras muchas:
1. Un argumento 2. Un componente grfico en el que se produzca la accin del argumento. 3. Objetos en movimiento que den vida al argumento.
Herramientas y componentes grficos
Dejaremos de lado el argumento ya que sabemos de antemano que eso depende en 100% al desarrollador y no al entorno ni a las herramientas que este usando. Uno de los puntos en contra de Java es que este a pesar de la influencia que tiene entre los desarrolladores independientes, no existen muchas herramientas enfocadas nicamente al desarrollo de aplicaciones que faciliten el uso del lenguaje para la creacin de software de entretenimiento. A continuacin se dejara una lista de las herramientas enfocadas, facilitadoras y algunas mas usadas en este mbito: Jclic-Herramienta para el diseo de aplicaciones de entretenimiento, educativo y dinmico. Hephaestus-Plataforma de desarrollo en la cual se facilitan clases hechas en Java, para la creacin de videjuegos RPG. Jgoodies-Herramienta que hace ver a tus aplicaciones Java con mejor esttica y completa a la arquitectura Swing. Junit-conjunto de clases que permite realizar la ejecucin de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los mtodos de la clase se comporta como se espera. Groovy-Si bien es un lenguaje de programacin basado en Java, este realiza comandos mas sencillos para mandar llamar API de Java de manera menos complicada. EMMA- Una herramienta para localizar puntos en el cdigo o argumento que se usaran en Java de manera comercial (para grandes empresas) y busca alternativas gratuitas. NetBeans- Si bien en algunas versiones se muestra como solo un IDE, hay otras mas nuevas que incorporan herramientas para el desarrollo de videjuegos para celular.
Java comparada con otros lenguajes en el software de entretenimiento
Mientras que otros lenguajes de programacin como C++, BASIC, Delphin son dominantes en el mercado de video-juegos...Puedo decir que mucho de esto se debe a la amplia variedad de aplicaciones basadas en ellos, al contrario que Java que en estado puro y con las API que contiene poder dar eso y mas --[David Brackeen, Developing Games in Java]. Muchos desarrolladores independientes y empresas dedicadas al software tienen varias criticas negativas sobre Java cuando discuten su eficiencia (sobre todo sobre su equipo de
trabajo). Mostraremos una lista publicada en el libro de Killer Game Programming in Java que habla sobre las mas principales razones por la cual Java no se usa para el desarrollo de estos software: Java es demasiado lento para la programacin de juegos; Este argumento era valido en 1996 cuando apareci Java y aun dominaba C/C++, sin embargo con las actualizacin de JDK, muchos expertos han opinado que es mas rpido que otros lenguajes en un 20% y todo depende de la maquina en la cual se este ejecutando. Java tiene prdidas de memoria; Esto a menudo se refiere a que lo programadores no conocen como funciona el compilador de Java en comparacin de C/C++, ademas de que Java cuenta con propias API para el manejo de puertos y habilitacin para el uso de controles externos que algunos programadores en C no conocen. Java es un lenguaje de alto nivel; Esto es mas comn en empresas que requieren de personal no tan calificado para el desarrollo de aplicaciones ya que suelen ser mas econmicos y necesitan una herramienta sencilla para la capacitacin del personal. La instalacin de la aplicacin Java es una pesadilla; El punto general aqu es que un usuario necesita ser un experto en Java para poder instalar y ejecutar una aplicacin Java, mientras que la mayora de los desarrolladores slo quieren apuntar y hacer clic en varios cuadros de dilogo para conseguir un juego en marcha. Java no es compatible con las consolas de juegos; Este es realmente el punto mas fuerte y justificado, ya que mientras que la industria del software de entretenimiento recibe alrededor de 29 millones de dolares por consola al ao, menos del 15% de todo eso recibe la PC, y esta es dominada por Microsoft. Nadie usa Java para escribir juegos reales; La palabra reales puede sugerir juegos comerciales. Esto ya que hay una amplia variedad de juegos tanto de costo como libres programados en Java, pero que por cuestiones de marketing no logran tanto reconocimiento que los usados por las grandes compaas. Sun Microsystems no est interesado en apoyar a los juego en Java. Esto tambin es otro punto por el cual Java aun no ha tenido el gran auge en los software de entretenimiento, sin embargounos proyecto como Jaba Game Profile que con el tiempo pueden marcar el curso de su comercializacin.
Observaciones
Una de las cosas mas interesantes al realizar la investigacin, es la cantidad tan inmensa de soluciones al momento de desarrollar una aplicacin que tenga caractersticas grficas, multimedia, interactivas y multiplataforma que hay en Java, en su contrario con las herramientas que se basan en otros lenguajes, que si bien son mas fciles de manipular siempre van a tener un limitante, un costo y hasta en ciertas ocasiones falta de actualizacin. Esto no se sondeo ni argumento en el desarrollo de la investigacin por el hecho de que realmente los parmetros para el uso de cada lenguaje son indudablemente dependientes al conocimiento, habilidades e intenciones que tenga el desarrollador para con su aplicacin y el fin de esta. Dicho de otra manera, hay que recordar que solo se ha estudiado el lenguaje Java como fin de alternativa en su uso de estos software y para justificar su uso, no para debatir sobre el uso de otros lenguajes.
Conclusiones
Podemos decir ahora que conocemos las caractersticas principales por las cuales se puede considerar una alternativa el uso del lenguaje Java, al mismo tiempo que hemos aclarecido varios mitos e incgnitas que existan en su entorno. Se podra presumir tambin, que es posible que Java no sea un lenguaje muy usado para el desarrollo base de software de entretenimiento en las industrias de los video-juegos de la alta gama, por el hecho de que aun es un lenguaje nuevo y ademas que otras herramientas basadas en otros lenguajes distribuidas por diferentes empresas, cuentan con la peculiaridad de ser adaptadas para el entorno del proyecto a llevar a cabo.
Antecedentes
Universidad de Palermo, Facultad de Ingeniera en el Plan de Estudios del Certificado de Creacin de Videojuegos- Disertacin a cargo de Lucas Dima (UP): Evolucin de los Juegos Universidad de Las Palmas de Gran Canaria, Facultad de Informtica- Mario Macas Lloret: Diseo y creacin de aplicaciones de entretenimiento sobre dispositivos mviles. Ral Bonacha Castillo, Programar un videojuego en Java., Proyecto realizado para JavaHispano, comunidad de programadores.
Bibliografia
[Andrew Davison,2004] Killer Game Programming in Java, O'Relly, Department of Computer Engineering ,Prince of Songkla University, Thailandia. Pag: 4-14. [David Brackeen,2003] Developing Games in Java, New Riders Publishing, ISBN: 1-59273005-1, E.U.A., Pag: 1-10.