New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
ScummVM - Wikipedia, la enciclopedia libre

ScummVM

De Wikipedia, la enciclopedia libre

ScummVM  

Interfaz de ScummVM
Desarrollador: The ScummVM Project
Última versión: 0.9.1 / 25 de junio de 2006
S.O.: Multiplataforma
Género: Emulador
Licencia: GPL
En español: No
Sitio Web: www.scummvm.org

ScummVM (Scumm Virtual Machine, máquina virtual de Scumm en español) es un programa informático que permite ejecutar las aventuras gráficas creadas originalmente para el motor SCUMM de LucasArts. ScummVM también soporta una variedad de juegos que no utilizan el motor SCUMM, realizados por compañías como Revolution Software o Adventure Soft.

Como su nombre indica, ScummVM ejecuta los juegos a través de una máquina virtual, usando solamente sus archivos de datos, de manera que reemplaza los ejecutables con los que el juego fue originalmente lanzado. Esto permite ejecutar los juegos en sistemas para los cuales nunca fueron diseñados, como por ejemplo pocketPCs, PalmOS, Nintendo DS, PSP, Linux, Xbox o teléfonos celulares.

ScummVM se encuentra bajo la licencia GNU GPL por lo que es software libre.


Tabla de contenidos

[editar] Radiografía

Éste es un pequeño estudio realizado al proyecto de software libre ScummVM.

[editar] Historia ScummVM

Creada por Ludvig Strigeus (Ludde) durante septiembre del año 2001, cuando él intentaba crear su propio motor de aventuras gráficas; para llevar a cabo esto se puso a investigar el funcionamiento interno de la Scumm (Propiedad de LucasArts), con la finalidad de tomar prestadas ideas de la misma, pero durante esta etapa surgió una idea en la mente de Ludde, la de crear un interprete capaz de ejecutar el juego Monkey Island 2 (MI2), por lo que comenzó a usar un desensamblador y a trabajar en su idea.


Su versión inicial fue la 0.0.1, la cual se empezó a distribuir entre la comunidad de fans de las aventuras gráficas, específicamente entre aquellos que eran desarrolladores, la misma contenía una funcionalidad muy limitada pero sirvió como inspiración para que los mismos se unieran al proyecto logrando liberar su primera versión pública el día 13 de Enero del 2002 y su nombre fue ScummVM 0.1.0, la misma era muy funcional y poseía soporte básico para los juegos hasta la versión número 7 de la Scumm (LucasArts), luego con el paso del tiempo se ha agregado compatibilidad para varios juegos y diversas plataformas.

[editar] Desarrollo ScummVM

La máquina virtual o emulador de ScummVM, es un proyecto que por muchos de sus colaboradores ha sido descrito como una experiencia de aprendizaje y fascinación, no solo debido a que deben aprender nuevas técnicas de programación e ingeniería inversa para poder colaborar en el mismo, sino también porque deben estudiar de los programadores que ellos están intentando emular (los de LucasArts) e imaginarse las formas en que sus metodologías y técnicas originales pueden ser mejoradas.


La ScummVM comenzó principalmente a ser desarrollada en lenguaje C, encapsulado dentro de unas pocas clases de C++, pero luego al madurar el proyecto y al unirse nuevos programadores que trajeron nuevas perspectivas al mismo (como James Brown), el proyecto se migró de manera correcta a C++. Esta migración se llevó a cabo básicamente porque querían agregar soporte al programa de diversas plataformas y juegos nuevos, y la herencia de objetos de C++ permitía que el código fuese más fácilmente entendido por otros desarrolladores. Aunque C++ fue el lenguaje escogido para su implementación, el uso de otros lenguajes durante su desarrollo fue crucial, por ejemplo Perl fue usado varias veces para llevar a cabo prototipos y probar varias funcionalidades, también se procedieron a usar herramientas escritas en otros lenguajes como Delphi desarrolladas por personas afectas al proyecto, cuya única funcionalidad era recolectar información del funcionamiento interno de la Scumm para que en conjunto con la información obtenida del desensamblador permitieran realizar las labores de ingeniería inversa a la misma.


De igual forma código perteneciente a otros proyectos de software libre fue utilizado para la elaboración de la ScummVM, como por ejemplo la Simple Directmedia Layer (SDL) la cual es una librería multimedia que facilita escribir código de manejo de sonido/gráficos portables entre diferentes plataformas, el motor avanzado de escalas e interpolación 2x (Kreed's 2xSaI), el códec Ogg Vorbis y la librería de decodificación de audio MAD MP3 library principalmente para proveer compresión de audio con la idea de hacer más portables los mismos (ocupen menos tamaño) y puedan ser ejecutados en dispositivos móviles como las iPAQ o teléfonos celulares. Lo cual constituye una demostración de una de la ventajas del software libre, no hay que reinventar la rueda, es más sencillo tomar ventaja de código ya existente que ha sido probado con detenimiento y enfocarse en realizar aquella parte del problema que aun no ha sido solucionada o es novedoso como el motor de Scumm.


Otra cosa importante es que la Scumm original de LucasArts posee aproximadamente 8 versiones cada una de las cuales tiene sus propios caprichos, modificaciones, singularidades y en ocasiones fue modificada para un solo juego en particular. Cada juego posee un interprete diferente de la Scumm, por lo que uno de los problemas con los que se consiguió la ScummVM fue como soportar estas múltiples versiones del interprete en un único árbol de código fuente, lo ideal seria que cada versión del interprete poseyera su propio árbol de desarrollo de código fuente independiente, pero esto necesitaría de mucho mantenimiento, también existiría una gran duplicidad de funciones, lo que haría crecer el árbol de código del proyecto enormemente, por eso optaron por esta solución.


[editar] Estructura de decisión del Proyecto

El proyecto ScummVM tiene propiedades de una meritocracia, es decir mientras más logros tenga una persona, más peso tiene su opinión, por ejemplo alguien que ha escrito dos librerías y mantiene un port (versión especifica de una plataforma) tiene una opinión de más peso que alguien que nunca ha codificado una línea de código y se limita a reportar errores.


En el proyecto no existe una autoridad que controle los procesos que se están desarrollando ni planifique de manera estricta lo que va a suceder, el liderazgo y la toma de decisiones posee las características de un dictador benevolente descentralizado en un ambiente de bazar, según afirma Max Horn alias fingolfin (uno de los dictadores benevolentes del proyecto) donde todo el trabajo se divide en sub-equipos que deciden como hacer las cosas a su manera, pero algunas veces se les indica a los sub-equipos como quisieran los líderes del proyecto que se hicieran las cosas o que no les gusta de algo, pero se trata de reducir al mínimo para no molestar a los miembros, por ejemplo cuando nuevos parches son enviados, los mismos son revisados y forzados a cumplir las pautas de codificación del proyecto antes de aceptarlos.


En cuanto a la comunicación entre los aproximadamente 41 desarrolladores del proyecto, su principal método es el canal irc #scummvm en irc.freenode.net, donde los mismos discuten todo el trabajo que se está llevando a cabo, sin embargo para las decisiones importantes envían un borrador de propuesta al tópico -devel, y probablemente se crea un wiki para la propuesta, y entonces todas las partes interesadas llevan a cabo comentarios y dan su opiniones por ejemplo cuando se proponían cambiar de CVS a SVN recolectaron argumentos entre los desarrolladores en pro y en contra de ambos, para tomar posteriormente una decisión con respecto a cual usarían basados en los mismos.


[editar] Estado Actual del Proyecto

Con el paso del tiempo ScummVM se ha convertido de un intento de escribir un interprete de la Scumm de LucasArts en un programa libre y portable que te permite jugar las aventuras gráficas de siempre como por ejemplo Simon the Sorcerer 1 & 2 (Adventure Soft), Monkey Island (LucasArts), Día del tentáculo (LucasArts), Sam and Max (LucasArts) y cualquier otro juego basado en la Scumm en diversos sistemas operativos o plataformas y la mayoría de los idiomas en que fueron lanzados manteniendo la fidelidad original del título.


Actualmente la última versión de ScummVM liberada fue la 0.9.0 bajo licencia GPL, la cual cuenta con soporte para más de 60 juegos y 20 plataformas soportadas y otras más en versiones experimentales no soportadas y cuenta además con trabajos en desarrollo para soportar nuevos juegos y en proceso el desarrollo de un nuevo ambiente GUI para la misma.

[editar] Analisís del Código Fuente

Al proyecto ScummVM en su versión 0.8.2 se le ha aplicado el modelo COCOMO para estimar la inversión y esfuerzo que seria necesario emplear en la generación de un software de idéntico tamaño, así como también se ha procedido a estudiar su repositorio SVN de código fuente para obtener algunas de sus estadísticas.


Tabla 1-1. Estado Actual del proyecto ScummVM
Página Web http://www.scummvm.org
Inicio del Proyecto 2001
Licencia GPL v2 o posterior
Versión Actual 0.8.2
Líneas de código fuente 299.729
Estimación de coste $ 10.769.780
Esfuerzo estimado de desarrollo 79,73 persona/años (956,70 persona/meses)
Estimación de tiempo de ejecución 2,83 años (33,93 meses)
Estimación del número aproximado de desarrolladores 28,19
Número aproximado de desarrolladores 41
Herramientas de ayuda al desarrollo CVS al principio, SVN actualmente, listas de correo, foros, wikis.


Según las estimaciones del modelo COCOMO, una compañía que quisiera crear un software de aproximadamente 300.000 líneas de código como la ScummVM tendría invertir casi 11 millones de dólares para obtenerlo. El tiempo que habría que esperar se sitúa en torno a los tres años, el número medio de programadores a tiempo completo que debería emplear rondaría los 140 y el esfuerzo estimado de desarrollo seria de 79,73 persona/años.


Tabla 1-2. Lenguajes de programación utilizados en SCUMMVM
Lenguaje de Programación Líneas de Código Porcentaje
C++ 268319 89.52%
C 24396 8.14%
Ensamblador 4139 1.38%
Shell 2362 0.79%
Perl 513 0.17%


En cuanto a los lenguajes de programación, C++ y C son correspondientemente los lenguajes más utilizados (como se explico en el apartado Desarrollo ScummVM), esto se debe a que el proyecto hace uso de código C++ para llevar a cabo una implementación orientada a objetos del software, también se nota que un lenguaje usado con cierta regularidad es el ensamblador y los otros cumplen labores extras como ayudar en su instalación/compilación.


Como último punto este proyecto cuenta con snapshots diarios y pruebas de finalización de juegos, y además posee la siguiente actividad en sus repositorio de SVN (al cual se migraron el 6 de Febrero del 2006) al 25 de febrero del 2006 a las 19:00 horas:


Tabla 1-3. Actividad repositorio SVN ScummVM
Categoría Valor
Commits del día 47
Commits del día anterior 50
Commits de la semana 154
Total Commits realizados 243
Tiempo de vida del repositorio 1,6 Semanas (SVN cuando en esa fecha)
Tiempo promedio estimado entre commits 1,1 horas entre mensajes

[editar] Plataformas soportadas por la versión oficial

Con la portabilidad como meta, existen versiones oficiales de ScummVM para las siguientes plataformas:

[editar] Plataformas soportadas por versiones no oficiales

[editar] Juegos soportados

Para una lista completa y actualizada, vea la lista oficial de compatibilidad (en inglés).

[editar] Juegos SCUMM de LucasArts

[editar] Juegos de otros desarrolladores

Varios juegos de Humongous Entertainment usan el motor SCUMM, por lo que se añadió soporte para ellos. Además, estos juegos también están soportados:

[editar] Obteniendo los juegos

Debido a restricciones de copyright, ScummVM no incluye los datos de los juegos, así que los usuarios deben disponer de los juegos originales.

Durante el ciclo de desarrollo de la versión 0.5.0 que vio la luz el 2 de agosto de 2003, Revolution Software ayudó a los desarrolladores de ScummVM a añadir soporte para Beneath a Steel Sky regalándoles el código fuente original. Además, decidieron ofrecer el juego de manera gratuita, disponible para descarga desde la web de ScummVM. Unos pocos meses más tarde, los dueños de Flight of the Amazon Queen hicieron algo similar.

Desafortunadamente, los escenas de video de Broken Sword 1 y 2 no funcionan tal cual vienen en los discos originales. Esto es debido a que las escenas están codificadas usando el formato de video Smacker, que requiere un software especializado para ser decodificado. RAD Game Tools no parece interesado en ofrecer el código fuente de versiones viejas de su formato, y ha pedido expresamente al equipo de ScummVM que no haga ingeniería inversa. Sin embargo, Revolution Software ha permitido la recodificación de los videos y su alojamiento en la página de ScummVM.


[editar] Véase también

[editar] Enlaces externos

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu